Passer au contenu principal

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.

Utilisez le polling comme base pour la génération de vidéos, car chaque tâche asynchrone renvoie un ID de tâche que vous pouvez interroger. Ajoutez des webhooks uniquement lorsque l’endpoint vidéo sélectionné prend en charge les URL de callback, et conservez le polling comme source de vérité pour les callbacks manqués ou les problèmes de livraison spécifiques au provider.

Créer une tâche vidéo

La requête suivante crée une tâche vidéo minimale et stocke l’ID renvoyé. Ajoutez des champs de durée, de résolution ou de callback uniquement lorsque la page du modèle sélectionné documente ces champs.
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 réponse inclut un ID de tâche et un statut :
{
  "id": "task_example",
  "task_id": "task_example",
  "object": "video",
  "model": "doubao-seedance-2-0",
  "status": "queued",
  "progress": 0,
  "created_at": 1779872000
}

Interroger le statut

La requête suivante vérifie le statut de la tâche vidéo :
curl https://api.cometapi.com/v1/videos/task_example \
  -H "Authorization: Bearer $COMETAPI_KEY"
La réponse évolue à mesure que la tâche progresse. Les réponses terminées peuvent inclure video_url lorsque l’adaptateur de modèle dispose d’une URL de résultat ; sinon, utilisez les champs de résultat spécifiques au modèle ou la route de contenu /v1/videos/{id}/content lorsque ce modèle prend en charge les téléchargements proxy.
{
  "id": "task_example",
  "object": "video",
  "model": "doubao-seedance-2-0",
  "status": "completed",
  "progress": 100,
  "completed_at": 1779872300,
  "video_url": "<generated-video-url>"
}

Recevoir un webhook

CometAPI ne définit pas une charge utile de callback universelle pour chaque modèle vidéo. Traitez les callbacks comme des événements pass-through spécifiques au provider, stockez le body brut et rapprochez l’état final avec le polling. Le gestionnaire Express suivant accepte un callback vidéo et stocke l’événement :
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);
Une charge utile de callback inclut généralement des champs d’identification de tâche et de statut, mais l’imbrication exacte dépend du modèle ou du provider sélectionné :
{
  "task_id": "task_example",
  "status": "completed",
  "progress": 100,
  "result": {
    "video_url": "https://example.com/result.mp4"
  }
}

Erreurs courantes

ErreurCorrection
Callback perduInterrogez par ID de tâche jusqu’à ce que votre application ait stocké un état terminal.
Callback en doubleRendez le traitement des callbacks idempotent par ID de tâche.
Callback rejetéRenvoyez rapidement une réponse 2xx, puis traitez la tâche en arrière-plan.
Incompatibilité de charge utile spécifique au providerStockez la charge utile brute du callback et normalisez-la dans votre application.
video_url manquantTraitez video_url comme facultatif et utilisez le polling ainsi que les champs de résultat spécifiques au modèle ou /v1/videos/{id}/content lorsque disponible.

Liens associés

Last modified on May 28, 2026