Перейти к основному содержанию
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
}
Используйте этот endpoint, чтобы получить состояние задачи, созданной через Create a Seedance video. id в пути — это значение, возвращённое вызовом создания, независимо от того, какая модель Seedance создала задачу.

Машина состояний

Задача проходит через одно из состояний ниже. SUBMITTED и IN_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 — целое число от 0 до 100, которое можно отображать в UI.
  • video_url — подписанный URL для скачивания, присутствует только при SUCCESS. Срок действия подписи ограничен по времени; скачайте файл или разместите его у себя до истечения срока подписи.
  • completed_at — Unix timestamp, который заполняется, как только задача достигает терминального статуса.
  • model — возвращает model ID Seedance, использованный при создании задачи.

Распространённые ошибки

  • HTTP 400 с message: "task_not_exist" означает, что id неизвестен. Убедитесь, что вы сохранили id из успешного ответа POST /v1/videos и используете его без изменений.
  • 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.