Langsung ke konten utama

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.

Gunakan polling sebagai dasar untuk pembuatan video karena setiap pekerjaan async mengembalikan task ID yang dapat Anda query. Tambahkan webhook hanya ketika endpoint video yang dipilih mendukung callback URL, dan tetap gunakan polling sebagai sumber kebenaran untuk callback yang terlewat atau pengiriman callback yang spesifik provider.

Buat task video

Permintaan berikut membuat task video minimal dan menyimpan ID yang dikembalikan. Tambahkan field durasi, resolusi, atau callback hanya ketika halaman model yang dipilih mendokumentasikan field tersebut.
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"
Respons menyertakan task ID dan status:
{
  "id": "task_example",
  "task_id": "task_example",
  "object": "video",
  "model": "doubao-seedance-2-0",
  "status": "queued",
  "progress": 0,
  "created_at": 1779872000
}

Cek status dengan polling

Permintaan berikut memeriksa status task video:
curl https://api.cometapi.com/v1/videos/task_example \
  -H "Authorization: Bearer $COMETAPI_KEY"
Respons berubah seiring progres task. Respons yang selesai dapat menyertakan video_url ketika adapter model memiliki result URL; jika tidak, gunakan field hasil spesifik model atau rute konten /v1/videos/{id}/content ketika model tersebut mendukung download yang diproksikan.
{
  "id": "task_example",
  "object": "video",
  "model": "doubao-seedance-2-0",
  "status": "completed",
  "progress": 100,
  "completed_at": 1779872300,
  "video_url": "<generated-video-url>"
}

Menerima webhook

CometAPI tidak mendefinisikan satu payload callback universal untuk setiap model video. Perlakukan callback sebagai event pass-through yang spesifik provider, simpan body mentahnya, dan rekonsiliasikan status akhir dengan polling. Handler Express berikut menerima callback video dan menyimpan event:
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 callback umumnya menyertakan identitas task dan field status, tetapi struktur nesting yang tepat bergantung pada model atau provider yang dipilih:
{
  "task_id": "task_example",
  "status": "completed",
  "progress": 100,
  "result": {
    "video_url": "https://example.com/result.mp4"
  }
}

Error umum

ErrorPerbaikan
Callback hilangLakukan polling berdasarkan task ID sampai aplikasi Anda menyimpan status terminal.
Callback duplikatBuat penanganan callback idempoten berdasarkan task ID.
Callback ditolakKembalikan respons 2xx dengan cepat, lalu proses pekerjaan di background.
Ketidakcocokan payload spesifik providerSimpan payload callback mentah dan normalkan di aplikasi Anda.
video_url hilangPerlakukan video_url sebagai opsional dan gunakan polling plus field hasil spesifik model atau /v1/videos/{id}/content jika tersedia.

Tautan terkait

Last modified on May 28, 2026