Zum Hauptinhalt springen

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.

Verwenden Sie Polling als Grundlage für die Videogenerierung, da jeder asynchrone Job eine task ID zurückgibt, die Sie abfragen können. Fügen Sie Webhooks nur dann hinzu, wenn der ausgewählte Video-Endpoint callback URLs unterstützt, und behalten Sie Polling als maßgebliche Quelle für verpasste oder anbieterspezifische Callback-Zustellungen bei.

Einen Video-Task erstellen

Die folgende Anfrage erstellt einen minimalen Video-Task und speichert die zurückgegebene ID. Fügen Sie duration-, resolution- oder callback-Felder nur dann hinzu, wenn die Seite des ausgewählten Modells diese Felder dokumentiert.
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"
Die Antwort enthält eine task ID und einen status:
{
  "id": "task_example",
  "task_id": "task_example",
  "object": "video",
  "model": "doubao-seedance-2-0",
  "status": "queued",
  "progress": 0,
  "created_at": 1779872000
}

Status abfragen

Die folgende Anfrage prüft den Status des Video-Tasks:
curl https://api.cometapi.com/v1/videos/task_example \
  -H "Authorization: Bearer $COMETAPI_KEY"
Die Antwort ändert sich, während der Task fortschreitet. Abgeschlossene Antworten können video_url enthalten, wenn der Modell-Adapter eine Ergebnis-URL hat; andernfalls verwenden Sie modellspezifische Ergebnisfelder oder die Content-Route /v1/videos/{id}/content, wenn dieses Modell Proxy-Downloads unterstützt.
{
  "id": "task_example",
  "object": "video",
  "model": "doubao-seedance-2-0",
  "status": "completed",
  "progress": 100,
  "completed_at": 1779872300,
  "video_url": "<generated-video-url>"
}

Einen Webhook empfangen

CometAPI definiert kein universelles Callback-Payload für jedes Videomodell. Behandeln Sie Callbacks als anbieterspezifische Pass-through-Ereignisse, speichern Sie den unveränderten Body und gleichen Sie den finalen Zustand per Polling ab. Der folgende Express-Handler akzeptiert einen Video-Callback und speichert das Ereignis:
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);
Ein Callback-Payload enthält üblicherweise Felder für die Task-Identität und den Status, aber die genaue Verschachtelung hängt vom ausgewählten Modell oder Anbieter ab:
{
  "task_id": "task_example",
  "status": "completed",
  "progress": 100,
  "result": {
    "video_url": "https://example.com/result.mp4"
  }
}

Häufige Fehler

FehlerLösung
Verlorener CallbackFragen Sie per task ID ab, bis Ihre App einen Endzustand gespeichert hat.
Doppelter CallbackGestalten Sie die Callback-Verarbeitung anhand der task ID idempotent.
Callback abgelehntGeben Sie schnell eine 2xx-Antwort zurück und verarbeiten Sie den Job dann im Hintergrund.
Anbieterspezifische Payload stimmt nicht übereinSpeichern Sie das unveränderte Callback-Payload und normalisieren Sie es in Ihrer App.
Fehlende video_urlBehandeln Sie video_url als optional und verwenden Sie Polling plus modellspezifische Ergebnisfelder oder /v1/videos/{id}/content, wenn verfügbar.
Last modified on May 28, 2026