Vai al contenuto principale

Documentation Index

Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt

Use this file to discover all available pages before exploring further.

Usa il polling come base per la generazione video perché ogni job asincrono restituisce un ID attività che puoi interrogare. Aggiungi i webhook solo quando l’endpoint video selezionato supporta gli URL di callback e mantieni il polling come fonte di verità per le callback non recapitate o specifiche del provider.

Crea un’attività video

La seguente richiesta crea un’attività video minimale e memorizza l’ID restituito. Aggiungi i campi di durata, risoluzione o callback solo quando la pagina del modello selezionato documenta tali campi.
curl https://api.cometapi.com/v1/videos \
  -H "Authorization: Bearer $COMETAPI_KEY" \
  -F "model=doubao-seedance-2-0" \
  -F "prompt=A cinematic shot of a paper airplane crossing a desk"
La risposta include un ID attività e lo stato:
{
  "id": "task_example",
  "task_id": "task_example",
  "object": "video",
  "model": "doubao-seedance-2-0",
  "status": "queued",
  "progress": 0,
  "created_at": 1779872000
}

Controlla lo stato con polling

La seguente richiesta controlla lo stato dell’attività video:
curl https://api.cometapi.com/v1/videos/task_example \
  -H "Authorization: Bearer $COMETAPI_KEY"
La risposta cambia man mano che l’attività avanza. Le risposte completate possono includere video_url quando l’adapter del modello ha un URL del risultato; altrimenti usa i campi di risultato specifici del modello o la route di contenuto /v1/videos/{id}/content quando quel modello supporta i download proxy.
{
  "id": "task_example",
  "object": "video",
  "model": "doubao-seedance-2-0",
  "status": "completed",
  "progress": 100,
  "completed_at": 1779872300,
  "video_url": "<generated-video-url>"
}

Ricevi un webhook

CometAPI non definisce un payload di callback universale per ogni modello video. Tratta le callback come eventi pass-through specifici del provider, memorizza il body grezzo e riconcilia lo stato finale con il polling. Il seguente handler Express accetta una callback video e memorizza l’evento:
import express from "express";

const app = express();
app.use(express.json({ limit: "2mb" }));

app.post("/cometapi/video-webhook", async (request, response) => {
  const event = request.body;

  console.log("Task ID:", event.task_id || event.id);
  console.log("Status:", event.status);

  response.status(200).json({ received: true });
});

app.listen(3000);
Un payload di callback include comunemente i campi di identità dell’attività e di stato, ma la struttura esatta dipende dal modello o provider selezionato:
{
  "task_id": "task_example",
  "status": "completed",
  "progress": 100,
  "result": {
    "video_url": "https://example.com/result.mp4"
  }
}

Errori comuni

ErroreCorrezione
Callback persaEsegui il polling tramite ID attività finché la tua app non ha memorizzato uno stato terminale.
Callback duplicataRendi la gestione della callback idempotente tramite ID attività.
Callback rifiutataRestituisci rapidamente una risposta 2xx, quindi elabora il job in background.
Mancata corrispondenza del payload specifico del providerMemorizza il payload grezzo della callback e normalizzalo nella tua app.
video_url mancanteTratta video_url come facoltativo e usa il polling più i campi di risultato specifici del modello o /v1/videos/{id}/content quando disponibile.
Last modified on May 28, 2026