Saltar al contenido 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
}
Usa este endpoint para consultar el estado de una tarea creada mediante Crear un video de Seedance. El id en la ruta es el valor devuelto por la llamada de creación, independientemente de qué modelo de Seedance produjo la tarea.

Máquina de estados

La tarea pasa por uno de los siguientes estados. SUBMITTED e IN_PROGRESS no son terminales; SUCCESS, FAILED y ERROR son terminales y la tarea no volverá a cambiar.
StatusMeaningTerminal
SUBMITTEDAceptada y en cola para renderizarse.no
IN_PROGRESSRenderizado en curso.no
SUCCESSFinalizada. video_url está presente en la respuesta.
FAILEDEl proveedor rechazó la tarea.
ERRORUn error interno impidió la finalización.

Cadencia de consulta

Consulta cada 10 a 20 segundos. La mayoría de los trabajos terminan en 1 a 3 minutos, según el modelo, la duración y la resolución.
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 a observar

  • status — determina la condición de parada de tu bucle de consulta.
  • progress — entero de 0 a 100 que puedes mostrar en una UI.
  • video_url — URL de descarga firmada, presente solo en SUCCESS. La firma tiene un tiempo de validez limitado; descarga o vuelve a alojar el archivo antes de que la firma expire.
  • completed_at — marca de tiempo Unix que se completa una vez que la tarea alcanza un estado terminal.
  • model — refleja el model id de Seedance usado cuando se creó la tarea.

Errores comunes

  • HTTP 400 con message: "task_not_exist" significa que el id es desconocido. Confirma que capturaste el id de una respuesta POST /v1/videos exitosa y que lo usas literalmente.
  • HTTP 401 significa que falta el bearer token o no es válido. Verifica que el encabezado de la solicitud sea Authorization: Bearer <COMETAPI_KEY>.

Autorizaciones

Authorization
string
header
requerido

Bearer token authentication. Use your CometAPI key.

Parámetros de ruta

id
string
requerido

Task id returned by POST /v1/videos.

Respuesta

Current task state.

id
string
requerido

Task id.

object
string
requerido

Object type, always video.

model
string
requerido

Model id that generated the task.

status
enum<string>
requerido

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

Opciones disponibles:
SUBMITTED,
IN_PROGRESS,
SUCCESS,
FAILED,
ERROR
progress
integer
requerido

Completion percentage.

Rango requerido: 0 <= x <= 100
created_at
integer
requerido

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.