跳轉到主要內容

Documentation Index

Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt

Use this file to discover all available pages before exploring further.

將輪詢作為影片生成的基礎做法,因為每個非同步工作都會回傳可供查詢的 task ID。只有在所選的影片端點支援 callback URL 時,才加入 webhook,並持續以輪詢作為遺漏回呼或供應商特定回呼傳遞情況的事實來源。

建立影片任務

以下請求會建立一個最小化的影片任務,並儲存回傳的 ID。只有在所選模型頁面有說明這些欄位時,才加入 duration、resolution 或 callback 欄位。
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"
回應會包含 task ID 與狀態:
{
  "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"
回應會隨著任務進度而變化。完成的回應在模型轉接器提供結果 URL 時可包含 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>"
}

接收 webhook

CometAPI 並未為每個影片模型定義一種通用的 callback payload。請將回呼視為供應商特定的直通事件,儲存原始 request body,並透過輪詢核對最終狀態。 以下 Express handler 會接收影片回呼並儲存事件:
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);
回呼 payload 通常會包含任務識別與狀態欄位,但實際的巢狀結構取決於所選模型或供應商:
{
  "task_id": "task_example",
  "status": "completed",
  "progress": 100,
  "result": {
    "video_url": "https://example.com/result.mp4"
  }
}

常見錯誤

錯誤修正方式
遺失回呼依 task ID 持續輪詢,直到你的應用程式已儲存終止狀態。
重複回呼以 task ID 讓回呼處理具備冪等性。
回呼被拒絕迅速回傳 2xx 回應,然後在背景處理該工作。
供應商特定 payload 不匹配儲存原始回呼 payload,並在你的應用程式中將其正規化。
缺少 video_urlvideo_url 視為可選欄位,並在可用時搭配輪詢與模型特定結果欄位或 /v1/videos/{id}/content

相關連結

Last modified on May 28, 2026