Chat completions return in milliseconds. Image generation returns in seconds. Video generation takes 30 seconds to several minutes. Your pipeline needs async task management -- not simple request-response.
import requests
r = requests.post("https://api.aiapi-pro.com/v1/video/generations",
headers={"Authorization": "Bearer " + KEY},
json={"model":"doubao-seedance-2.0","prompt":"Sunset drone shot",
"resolution":"1080p","duration":8})
task_id = r.json()["id"] # "cgt-20260714183705-5wkf5"
import time
while True:
r = requests.get(f"https://api.aiapi-pro.com/v1/video/generations/{task_id}",
headers={"Authorization": "Bearer " + KEY})
data = r.json()
if data["status"] in ("completed","failed"): break
print(f"Progress: {data.get('progress','processing')}")
time.sleep(5)
if data["status"]=="completed": print(f"Video: {data['video_url']}")
Seedance 2.0 accepts reference images, videos, and audio in one call for brand-consistent content:
{"model":"doubao-seedance-2.0",
"content":[
{"type":"text","text":"First-person fruit tea commercial"},
{"type":"image_url","image_url":{"url":"https://cdn.example.com/product.jpg"},"role":"reference_image"},
{"type":"audio_url","audio_url":{"url":"https://cdn.example.com/bgm.mp3"},"role":"reference_audio"}
],"resolution":"1080p","duration":10}
Use async task submission: POST to /v1/video/generations with your prompt and parameters, then poll the task status endpoint or set up a webhook for completion notification. NovAI provides OpenAI-compatible endpoints for Seedance 2.0.
A 10-second 1080p video typically takes 30-60 seconds to generate via Seedance 2.0. The API returns a task ID immediately, and you poll for status until completion.
Yes, NovAI supports webhook delivery for video generation tasks. When the video is ready, NovAI sends a POST request to your callback URL with the video URL and metadata.
20 Chinese AI models -- Chat, Image Gen, Video Gen -- one API, $2 free credit.
Get Free $2Browse Models