Перейти до основного вмісту

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.

Використовуйте polling як базовий підхід для генерації відео, оскільки кожне асинхронне завдання повертає task ID, який можна запитати. Додавайте webhooks лише тоді, коли вибраний video endpoint підтримує callback URL, і залишайте polling джерелом істини для пропущених callback або специфічної для провайдера доставки callback.

Створіть video task

Наведений нижче запит створює мінімальний video task і зберігає повернений ID. Додавайте поля duration, resolution або callback лише тоді, коли сторінка вибраної моделі документує ці поля.
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"
Відповідь містить task ID і status:
{
  "id": "task_example",
  "task_id": "task_example",
  "object": "video",
  "model": "doubao-seedance-2-0",
  "status": "queued",
  "progress": 0,
  "created_at": 1779872000
}

Опитуйте status

Наведений нижче запит перевіряє status video task:
curl https://api.cometapi.com/v1/videos/task_example \
  -H "Authorization: Bearer $COMETAPI_KEY"
Відповідь змінюється в міру виконання task. Завершені відповіді можуть містити video_url, коли адаптер моделі має URL результату; інакше використовуйте специфічні для моделі поля результату або content route /v1/videos/{id}/content, якщо ця модель підтримує проксійні завантаження.
{
  "id": "task_example",
  "object": "video",
  "model": "doubao-seedance-2-0",
  "status": "completed",
  "progress": 100,
  "completed_at": 1779872300,
  "video_url": "<generated-video-url>"
}

Отримання webhook

CometAPI не визначає один універсальний callback payload для кожної video model. Розглядайте callback як наскрізні події, специфічні для провайдера, зберігайте сире тіло запиту та звіряйте фінальний стан за допомогою polling. Наведений нижче обробник Express приймає video callback і зберігає подію:
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 зазвичай містить поля ідентифікації task і status, але точна вкладеність залежить від вибраної моделі або провайдера:
{
  "task_id": "task_example",
  "status": "completed",
  "progress": 100,
  "result": {
    "video_url": "https://example.com/result.mp4"
  }
}

Поширені помилки

ПомилкаВиправлення
Втрачений callbackВиконуйте polling за task ID, доки ваш застосунок не збереже термінальний стан.
Дубльований callbackЗробіть обробку callback ідемпотентною за task ID.
Callback відхиленоШвидко повертайте відповідь 2xx, а потім обробляйте завдання у фоновому режимі.
Невідповідність payload, специфічного для провайдераЗберігайте сирий callback payload і нормалізуйте його у своєму застосунку.
Відсутній video_urlВважайте video_url необов’язковим і використовуйте polling разом зі специфічними для моделі полями результату або /v1/videos/{id}/content, якщо доступно.

Пов’язані посилання

Last modified on May 28, 2026