메인 콘텐츠로 건너뛰기
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 모델이 작업을 생성했는지와 관계없이 생성 호출에서 반환된 값입니다.

상태 머신

작업은 아래 상태 중 하나를 거칩니다. SUBMITTEDIN_PROGRESS는 비종료 상태이며, SUCCESS, FAILED, ERROR는 종료 상태로 작업이 더 이상 진행되지 않습니다.
StatusMeaningTerminal
SUBMITTED수락되어 렌더링 대기열에 들어간 상태입니다.아니요
IN_PROGRESS렌더링이 진행 중입니다.아니요
SUCCESS완료되었습니다. 응답에 video_url이 포함됩니다.
FAILED제공자가 작업을 거부했습니다.
ERROR내부 오류로 인해 완료되지 못했습니다.

폴링 주기

10초에서 20초 간격으로 폴링하세요. 대부분의 작업은 모델, 길이, 해상도에 따라 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 400에서 message: "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.