Saltar para o conteúdo principal
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
}
Use este endpoint para ler o estado de uma tarefa criada por meio de Criar um vídeo Seedance. O id no caminho é o valor retornado pela chamada de criação, independentemente de qual modelo Seedance produziu a tarefa.

Máquina de status

A tarefa passa por um dos estados abaixo. SUBMITTED e IN_PROGRESS não são terminais; SUCCESS, FAILED e ERROR são terminais e a tarefa não mudará novamente.
StatusSignificadoTerminal
SUBMITTEDAceita e enfileirada para renderização.não
IN_PROGRESSRenderização em andamento.não
SUCCESSConcluída. video_url está presente na resposta.sim
FAILEDO provedor rejeitou a tarefa.sim
ERRORUm erro interno impediu a conclusão.sim

Cadência de polling

Faça polling a cada 10 a 20 segundos. A maioria dos jobs termina em 1 a 3 minutos, dependendo do modelo, da duração e da resolução.
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)

Campos para monitorar

  • status — define a condição de parada do seu loop de polling.
  • progress — inteiro de 0 a 100 que você pode exibir em uma UI.
  • video_url — URL de download assinada, presente apenas em SUCCESS. A assinatura tem tempo limitado; baixe ou hospede novamente o arquivo antes que a assinatura expire.
  • completed_at — timestamp Unix preenchido assim que a tarefa atinge um status terminal.
  • model — repete o model ID do Seedance usado quando a tarefa foi criada.

Erros comuns

  • HTTP 400 com message: "task_not_exist" significa que o id é desconhecido. Confirme que você capturou o id de uma resposta POST /v1/videos bem-sucedida e que o usa literalmente.
  • HTTP 401 significa que o bearer token está ausente ou é inválido. Verifique se o cabeçalho da requisição é Authorization: Bearer <COMETAPI_KEY>.

Autorizações

Authorization
string
header
obrigatório

Bearer token authentication. Use your CometAPI key.

Parâmetros de caminho

id
string
obrigatório

Task id returned by POST /v1/videos.

Resposta

Current task state.

id
string
obrigatório

Task id.

object
string
obrigatório

Object type, always video.

model
string
obrigatório

Model id that generated the task.

status
enum<string>
obrigatório

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

Opções disponíveis:
SUBMITTED,
IN_PROGRESS,
SUCCESS,
FAILED,
ERROR
progress
integer
obrigatório

Completion percentage.

Intervalo necessário: 0 <= x <= 100
created_at
integer
obrigatório

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.