Ana içeriğe atla

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.

Video generation için polling’i temel yaklaşım olarak kullanın; çünkü her async iş sorgulayabileceğiniz bir task ID döndürür. Webhooks’u yalnızca seçilen video endpoint callback URL’lerini desteklediğinde ekleyin ve kaçırılan veya sağlayıcıya özgü callback teslimleri için polling’i doğruluk kaynağı olarak tutun.

Bir video task oluşturun

Aşağıdaki istek, minimal bir video task oluşturur ve döndürülen ID’yi saklar. duration, resolution veya callback alanlarını yalnızca seçilen model sayfası bu alanları belgeliyorsa ekleyin.
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"
Yanıt bir task ID ve durum içerir:
{
  "id": "task_example",
  "task_id": "task_example",
  "object": "video",
  "model": "doubao-seedance-2-0",
  "status": "queued",
  "progress": 0,
  "created_at": 1779872000
}

Durumu polling ile kontrol edin

Aşağıdaki istek video task durumunu kontrol eder:
curl https://api.cometapi.com/v1/videos/task_example \
  -H "Authorization: Bearer $COMETAPI_KEY"
Yanıt, task ilerledikçe değişir. Tamamlanan yanıtlar, model adapter bir sonuç URL’sine sahipse video_url içerebilir; aksi halde modele özgü sonuç alanlarını veya model proxied indirmeleri destekliyorsa /v1/videos/{id}/content content rotasını kullanın.
{
  "id": "task_example",
  "object": "video",
  "model": "doubao-seedance-2-0",
  "status": "completed",
  "progress": 100,
  "completed_at": 1779872300,
  "video_url": "<generated-video-url>"
}

Bir webhook alın

CometAPI her video model için tek bir evrensel callback payload tanımlamaz. Callback’leri sağlayıcıya özgü pass-through event’ler olarak ele alın, ham body’yi saklayın ve son durumu polling ile uzlaştırın. Aşağıdaki Express handler bir video callback kabul eder ve event’i saklar:
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);
Bir callback payload genellikle task kimliği ve durum alanlarını içerir, ancak tam iç içe yapı seçilen modele veya sağlayıcıya bağlıdır:
{
  "task_id": "task_example",
  "status": "completed",
  "progress": 100,
  "result": {
    "video_url": "https://example.com/result.mp4"
  }
}

Yaygın hatalar

HataÇözüm
Kaybolan callbackUygulamanız terminal bir durumu kaydedene kadar task ID ile polling yapın.
Yinelenen callbackCallback işlemeyi task ID’ye göre idempotent hale getirin.
Callback reddedildiHızlıca bir 2xx yanıtı döndürün, ardından işi arka planda işleyin.
Sağlayıcıya özgü payload uyumsuzluğuHam callback payload’unu saklayın ve uygulamanızda normalize edin.
Eksik video_urlvideo_url alanını isteğe bağlı kabul edin ve mevcut olduğunda polling ile birlikte modele özgü sonuç alanlarını veya /v1/videos/{id}/content kullanın.

İlgili bağlantılar

Last modified on May 28, 2026