Przejdź do głównej treści

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.

Używaj pollingu jako podstawy generowania wideo, ponieważ każde zadanie async zwraca ID zadania, które możesz odpytywać. Dodaj webhooki tylko wtedy, gdy wybrany endpoint wideo obsługuje callback URLs, i nadal traktuj polling jako źródło prawdy na wypadek pominiętych callbacków lub dostarczania zależnego od dostawcy.

Utwórz zadanie wideo

Poniższe żądanie tworzy minimalne zadanie wideo i zapisuje zwrócone ID. Dodawaj pola duration, resolution lub callback tylko wtedy, gdy dokumentacja strony wybranego modelu opisuje te pola.
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"
Odpowiedź zawiera ID zadania i status:
{
  "id": "task_example",
  "task_id": "task_example",
  "object": "video",
  "model": "doubao-seedance-2-0",
  "status": "queued",
  "progress": 0,
  "created_at": 1779872000
}

Odpytuj status

Poniższe żądanie sprawdza status zadania wideo:
curl https://api.cometapi.com/v1/videos/task_example \
  -H "Authorization: Bearer $COMETAPI_KEY"
Odpowiedź zmienia się wraz z postępem zadania. Zakończone odpowiedzi mogą zawierać video_url, gdy adapter modelu ma URL wyniku; w przeciwnym razie użyj pól wyniku specyficznych dla modelu lub ścieżki content /v1/videos/{id}/content, gdy dany model obsługuje proxy downloads.
{
  "id": "task_example",
  "object": "video",
  "model": "doubao-seedance-2-0",
  "status": "completed",
  "progress": 100,
  "completed_at": 1779872300,
  "video_url": "<generated-video-url>"
}

Odbierz webhook

CometAPI nie definiuje jednego uniwersalnego payload callbacku dla każdego modelu wideo. Traktuj callbacki jako zdarzenia pass-through specyficzne dla dostawcy, zapisuj surowe body i uzgadniaj stan końcowy za pomocą pollingu. Poniższy handler Express przyjmuje callback wideo i zapisuje zdarzenie:
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);
Payload callbacku zwykle zawiera pola tożsamości zadania i statusu, ale dokładna struktura zagnieżdżenia zależy od wybranego modelu lub dostawcy:
{
  "task_id": "task_example",
  "status": "completed",
  "progress": 100,
  "result": {
    "video_url": "https://example.com/result.mp4"
  }
}

Typowe błędy

BłądPoprawka
Utracony callbackOdpytuj po ID zadania, aż aplikacja zapisze stan końcowy.
Zduplikowany callbackSpraw, aby obsługa callbacków była idempotentna względem ID zadania.
Callback odrzuconySzybko zwróć odpowiedź 2xx, a następnie przetwarzaj zadanie w tle.
Niedopasowanie payloadu specyficznego dla dostawcyZapisz surowy payload callbacku i znormalizuj go w swojej aplikacji.
Brak video_urlTraktuj video_url jako opcjonalne i używaj pollingu wraz z polami wyniku specyficznymi dla modelu lub /v1/videos/{id}/content, gdy są dostępne.

Powiązane linki

Last modified on May 28, 2026