Naar hoofdinhoud gaan

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.

Gebruik polling als basis voor videogeneratie, omdat elke async job een task ID teruggeeft die je kunt opvragen. Voeg webhooks alleen toe wanneer het geselecteerde video-endpoint callback-URL’s ondersteunt, en behoud polling als de bron van waarheid voor gemiste of providerspecifieke callback-aflevering.

Maak een videotask aan

Het volgende verzoek maakt een minimale videotask aan en slaat de geretourneerde ID op. Voeg alleen duration-, resolution- of callback-velden toe wanneer de pagina van het geselecteerde model deze velden documenteert.
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"
De response bevat een task ID en status:
{
  "id": "task_example",
  "task_id": "task_example",
  "object": "video",
  "model": "doubao-seedance-2-0",
  "status": "queued",
  "progress": 0,
  "created_at": 1779872000
}

Status opvragen

Het volgende verzoek controleert de status van de videotask:
curl https://api.cometapi.com/v1/videos/task_example \
  -H "Authorization: Bearer $COMETAPI_KEY"
De response verandert naarmate de task vordert. Voltooide responses kunnen video_url bevatten wanneer de modeladapter een resultaat-URL heeft; gebruik anders modelspecifieke resultaatvelden of de /v1/videos/{id}/content-contentroute wanneer dat model proxied downloads ondersteunt.
{
  "id": "task_example",
  "object": "video",
  "model": "doubao-seedance-2-0",
  "status": "completed",
  "progress": 100,
  "completed_at": 1779872300,
  "video_url": "<generated-video-url>"
}

Ontvang een webhook

CometAPI definieert niet één universele callback-payload voor elk videomodel. Behandel callbacks als providerspecifieke pass-through-events, sla de ruwe body op en stem de uiteindelijke status af met polling. De volgende Express-handler accepteert een video-callback en slaat het event op:
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);
Een callback-payload bevat vaak velden voor task-identiteit en status, maar de exacte nesting hangt af van het geselecteerde model of de provider:
{
  "task_id": "task_example",
  "status": "completed",
  "progress": 100,
  "result": {
    "video_url": "https://example.com/result.mp4"
  }
}

Veelvoorkomende fouten

ErrorOplossing
Verloren callbackPoll op task ID totdat je app een eindstatus heeft opgeslagen.
Dubbele callbackMaak callback-verwerking idempotent op basis van task ID.
Callback geweigerdRetourneer snel een 2xx-response en verwerk daarna de job op de achtergrond.
Mismatch in providerspecifieke payloadSla de ruwe callback-payload op en normaliseer deze in je app.
Ontbrekende video_urlBehandel video_url als optioneel en gebruik polling plus modelspecifieke resultaatvelden of /v1/videos/{id}/content wanneer beschikbaar.
Last modified on May 28, 2026