メインコンテンツへスキップ
GET
/
v1
/
videos
/
{id}
cURL
curl https://api.cometapi.com/v1/videos/<TASK_ID> \
  -H "Authorization: Bearer <COMETAPI_KEY>"
{
  "id": "task_abc123",
  "model": "doubao-seedance-2-0-fast",
  "object": "video",
  "status": "IN_PROGRESS",
  "progress": 45,
  "created_at": 1776567610,
  "completed_at": null
}
このエンドポイントは、Seedance 動画を作成する で作成したタスクの状態を取得するために使用します。パス内の id は、どの Seedance モデルがタスクを生成したかにかかわらず、作成 API の呼び出しで返された値です。

ステータスマシン

タスクは以下のいずれかの状態を経由します。SUBMITTEDIN_PROGRESS は終端状態ではありません。SUCCESSFAILEDERROR は終端状態であり、タスクはそれ以降変化しません。
Status意味終端
SUBMITTED受け付けられ、レンダリング待ちのキューに入っています。いいえ
IN_PROGRESSレンダリング中です。いいえ
SUCCESS完了しました。レスポンスに video_url が含まれます。はい
FAILEDプロバイダーがタスクを拒否しました。はい
ERROR内部エラーにより完了できませんでした。はい

ポーリング間隔

10 秒から 20 秒ごとにポーリングしてください。ほとんどのジョブは、model、duration、resolution に応じて 1 ~ 3 分以内に完了します。
import time
import requests

TASK_ID = "<TASK_ID>"
headers = {"Authorization": "Bearer <COMETAPI_KEY>"}
TERMINAL = {"SUCCESS", "FAILED", "ERROR"}

while True:
    response = requests.get(
        f"https://api.cometapi.com/v1/videos/{TASK_ID}",
        headers=headers,
        timeout=15,
    )
    response.raise_for_status()
    data = response.json()
    if data["status"] in TERMINAL:
        print(data.get("video_url"))
        break
    time.sleep(10)

確認すべきフィールド

  • status — ポーリングループを停止する条件を決定します。
  • progress — UI に表示できる 0 から 100 の整数です。
  • video_url — 署名付きダウンロード URL で、SUCCESS の場合にのみ存在します。署名には有効期限があるため、期限切れになる前にファイルをダウンロードするか再ホストしてください。
  • completed_at — タスクが終端状態に達すると設定される Unix タイムスタンプです。
  • model — タスク作成時に使用された Seedance model id をそのまま返します。

よくあるエラー

  • HTTP 400message: "task_not_exist" の場合、id が不明であることを意味します。POST /v1/videos の成功レスポンスから id を取得したこと、およびそれをそのまま使用していることを確認してください。
  • HTTP 401 は、bearer token が欠落しているか無効であることを意味します。リクエストヘッダーが Authorization: Bearer <COMETAPI_KEY> になっていることを確認してください。

承認

Authorization
string
header
必須

Bearer token authentication. Use your CometAPI key.

パスパラメータ

id
string
必須

Task id returned by POST /v1/videos.

レスポンス

Current task state.

id
string
必須

Task id.

object
string
必須

Object type, always video.

model
string
必須

Model id that generated the task.

status
enum<string>
必須

Task status. SUBMITTED and IN_PROGRESS are non-terminal. SUCCESS, FAILED, and ERROR are terminal.

利用可能なオプション:
SUBMITTED,
IN_PROGRESS,
SUCCESS,
FAILED,
ERROR
progress
integer
必須

Completion percentage.

必須範囲: 0 <= x <= 100
created_at
integer
必須

Task creation time as a Unix timestamp in seconds.

video_url
string | null

Signed download URL for the finished video. Present only when status is SUCCESS. The signature is time-limited, so download or re-upload the file to your own storage soon after you receive it.

completed_at
integer | null

Task completion time as a Unix timestamp in seconds. null while the task is non-terminal.