Vai al contenuto principale
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 questo endpoint per leggere lo stato di un task creato tramite Create a Seedance video. L’id nel path è il valore restituito dalla chiamata di creazione, indipendentemente dal modello Seedance che ha generato il task.

Macchina degli stati

Il task passa attraverso uno degli stati seguenti. SUBMITTED e IN_PROGRESS non sono terminali; SUCCESS, FAILED e ERROR sono terminali e il task non cambierà più stato.
StatusMeaningTerminal
SUBMITTEDAccettato e messo in coda per il rendering.no
IN_PROGRESSRendering in corso.no
SUCCESSCompletato. video_url è presente nella risposta.
FAILEDIl provider ha rifiutato il task.
ERRORUn errore interno ha impedito il completamento.

Frequenza di polling

Esegui il polling ogni 10-20 secondi. La maggior parte dei job viene completata entro 1-3 minuti, a seconda del modello, della durata e della risoluzione.
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)

Campi da monitorare

  • status — determina la condizione di arresto del tuo ciclo di polling.
  • progress — intero da 0 a 100 che puoi mostrare in un’interfaccia utente.
  • video_url — URL di download firmato, presente solo in caso di SUCCESS. La firma ha una durata limitata nel tempo; scarica o ripubblica il file prima che scada.
  • completed_at — timestamp Unix valorizzato quando il task raggiunge uno stato terminale.
  • model — riporta il model id Seedance usato quando è stato creato il task.

Errori comuni

  • HTTP 400 con message: "task_not_exist" significa che l’id è sconosciuto. Verifica di aver acquisito l’id da una risposta POST /v1/videos riuscita e di usarlo esattamente così com’è.
  • HTTP 401 significa che il bearer token manca o non è valido. Controlla che l’header della richiesta sia Authorization: Bearer <COMETAPI_KEY>.

Autorizzazioni

Authorization
string
header
obbligatorio

Bearer token authentication. Use your CometAPI key.

Parametri del percorso

id
string
obbligatorio

Task id returned by POST /v1/videos.

Risposta

Current task state.

id
string
obbligatorio

Task id.

object
string
obbligatorio

Object type, always video.

model
string
obbligatorio

Model id that generated the task.

status
enum<string>
obbligatorio

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

Opzioni disponibili:
SUBMITTED,
IN_PROGRESS,
SUCCESS,
FAILED,
ERROR
progress
integer
obbligatorio

Completion percentage.

Intervallo richiesto: 0 <= x <= 100
created_at
integer
obbligatorio

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.