> ## 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 i webhooków do generowania wideo

> Śledź generowanie wideo w CometAPI za pomocą pollingu i webhooków, przechowując identyfikatory zadań, sprawdzając status zadań i obsługując błędy dostarczania callbacków.

Używaj pollingu jako podstawy dla generowania wideo, ponieważ każde zadanie asynchroniczne zwraca identyfikator zadania, który możesz odpytywać. Dodawaj webhooki tylko wtedy, gdy wybrany endpoint wideo obsługuje callback URLs, i traktuj polling jako źródło prawdy w przypadku pominiętych lub specyficznych dla dostawcy dostarczeń callbacków.

## Utwórz zadanie wideo

Poniższe żądanie tworzy minimalne zadanie wideo i zapisuje zwrócony identyfikator. Dodawaj pola duration, resolution lub callback tylko wtedy, gdy strona wybranego modelu dokumentuje te pola.

```bash theme={null}
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 identyfikator zadania i status:

```json theme={null}
{
  "id": "task_example",
  "task_id": "task_example",
  "object": "video",
  "model": "doubao-seedance-2-0",
  "status": "queued",
  "progress": 0,
  "created_at": 1779872000
}
```

## Sprawdzaj status przez polling

Poniższe żądanie sprawdza status zadania wideo:

```bash theme={null}
curl https://api.cometapi.com/v1/videos/task_example \
  -H "Authorization: Bearer $COMETAPI_KEY"
```

Odpowiedź zmienia się w miarę postępu 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 ten model obsługuje proxy downloads.

```json theme={null}
{
  "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 payloadu 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:

```javascript theme={null}
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:

```json theme={null}
{
  "task_id": "task_example",
  "status": "completed",
  "progress": 100,
  "result": {
    "video_url": "https://example.com/result.mp4"
  }
}
```

## Typowe błędy

| Error                                           | Fix                                                                                                                                                   |
| ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| Utracony callback                               | Odpytuj po identyfikatorze zadania, dopóki Twoja aplikacja nie zapisze stanu końcowego.                                                               |
| Zduplikowany callback                           | Zapewnij idempotentną obsługę callbacków na podstawie identyfikatora zadania.                                                                         |
| Odrzucony callback                              | Szybko zwróć odpowiedź `2xx`, a następnie przetwórz zadanie w tle.                                                                                    |
| Niezgodność payloadu specyficznego dla dostawcy | Zapisz surowy payload callbacku i znormalizuj go w swojej aplikacji.                                                                                  |
| Brak `video_url`                                | Traktuj `video_url` jako opcjonalne i używaj pollingu wraz z polami wyniku specyficznymi dla modelu lub `/v1/videos/{id}/content`, gdy jest dostępne. |

## Powiązane linki

* [Modele wideo](/api/video)
* [Tworzenie wideo](/api/video/sora-2/create)
* [Pobieranie wideo](/api/video/sora-2/retrieve)
* [Strona modeli](/pl/overview/models)
* [Katalog modeli](https://www.cometapi.com/models/)
* [Cennik](https://www.cometapi.com/pricing/)

<script type="application/ld+json">
  {`
    {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "TechArticle",
        "@id": "https://apidoc.cometapi.com/guides/webhook-and-polling-for-video-generation",
        "headline": "Jak używać webhooków i polling do generowania wideo?",
        "description": "Używaj polling i webhooków do generowania wideo w CometAPI, zapisując identyfikatory zadań, sprawdzając status zadania i obsługując błędy dostarczania callbacków.",
        "url": "https://apidoc.cometapi.com/guides/webhook-and-polling-for-video-generation",
        "author": {
          "@type": "Organization",
          "name": "CometAPI"
        },
        "publisher": {
          "@type": "Organization",
          "name": "CometAPI",
          "url": "https://www.cometapi.com"
        }
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Dokumentacja CometAPI",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Przewodniki",
            "item": "https://apidoc.cometapi.com/guides/use-cometapi-with-openai-sdk"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "Jak używać webhooków i polling do generowania wideo?",
            "item": "https://apidoc.cometapi.com/guides/webhook-and-polling-for-video-generation"
          }
        ]
      }
    ]
    }
    `}
</script>
