建立影片任務
以下請求會建立一個最小化的影片任務,並儲存回傳的 ID。只有在所選模型頁面有說明這些欄位時,才加入 duration、resolution 或 callback 欄位。輪詢狀態
以下請求會檢查影片任務狀態:video_url;否則請使用模型特定的結果欄位,或在該模型支援代理下載時使用 /v1/videos/{id}/content 內容路由。
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
透過儲存 task ID、檢查任務狀態,以及處理回呼傳送失敗,使用輪詢與 webhook 追蹤 CometAPI 影片生成。
curl https://api.cometapi.com/v1/videos \
-H "Authorization: Bearer $COMETAPI_KEY" \
-F "model=doubao-seedance-2-0" \
-F "prompt=A cinematic shot of a paper airplane crossing a desk"
{
"id": "task_example",
"task_id": "task_example",
"object": "video",
"model": "doubao-seedance-2-0",
"status": "queued",
"progress": 0,
"created_at": 1779872000
}
curl https://api.cometapi.com/v1/videos/task_example \
-H "Authorization: Bearer $COMETAPI_KEY"
video_url;否則請使用模型特定的結果欄位,或在該模型支援代理下載時使用 /v1/videos/{id}/content 內容路由。
{
"id": "task_example",
"object": "video",
"model": "doubao-seedance-2-0",
"status": "completed",
"progress": 100,
"completed_at": 1779872300,
"video_url": "<generated-video-url>"
}
import express from "express";
const app = express();
app.use(express.json({ limit: "2mb" }));
app.post("/cometapi/video-webhook", async (request, response) => {
const event = request.body;
console.log("Task ID:", event.task_id || event.id);
console.log("Status:", event.status);
response.status(200).json({ received: true });
});
app.listen(3000);
{
"task_id": "task_example",
"status": "completed",
"progress": 100,
"result": {
"video_url": "https://example.com/result.mp4"
}
}
| Error | Fix |
|---|---|
| 回呼遺失 | 依 task ID 持續輪詢,直到你的應用程式已儲存終態。 |
| 重複回呼 | 依 task ID 讓回呼處理具備冪等性。 |
| 回呼遭拒 | 先快速回傳 2xx 回應,再於背景處理該工作。 |
| 供應商特定 payload 不匹配 | 儲存原始回呼 payload,並在你的應用程式中將其正規化。 |
缺少 video_url | 將 video_url 視為可選欄位,並在可用時搭配輪詢以及模型特定結果欄位或 /v1/videos/{id}/content。 |