> ## 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 und Webhooks für die Videogenerierung verwenden

> Verfolgen Sie die CometAPI-Videogenerierung mit Polling und Webhooks, indem Sie task IDs speichern, den Task-Status prüfen und Fehler bei der Zustellung von Callbacks behandeln.

Verwenden Sie Polling als Grundlage für die Videogenerierung, da jeder asynchrone Job eine task ID zurückgibt, die Sie abfragen können. Fügen Sie Webhooks nur hinzu, wenn der ausgewählte Video-Endpoint Callback-URLs unterstützt, und behalten Sie Polling als maßgebliche Quelle für verpasste oder anbieterspezifische Callback-Zustellungen bei.

## Einen Video-Task erstellen

Die folgende Anfrage erstellt einen minimalen Video-Task und speichert die zurückgegebene ID. Fügen Sie Felder für duration, resolution oder callback nur hinzu, wenn die Seite des ausgewählten Modells diese Felder dokumentiert.

```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"
```

Die Antwort enthält eine task ID und einen 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
}
```

## Status abfragen

Die folgende Anfrage prüft den Status des Video-Tasks:

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

Die Antwort ändert sich, während der Task fortschreitet. Abgeschlossene Antworten können `video_url` enthalten, wenn der Modell-Adapter eine Ergebnis-URL hat; andernfalls verwenden Sie modellspezifische Ergebnisfelder oder die Content-Route `/v1/videos/{id}/content`, wenn dieses Modell Proxy-Downloads unterstützt.

```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>"
}
```

## Einen Webhook empfangen

CometAPI definiert kein universelles Callback-Payload für jedes Videomodell. Behandeln Sie Callbacks als anbieterspezifische Pass-through-Ereignisse, speichern Sie den Rohtext des Bodys und gleichen Sie den Endstatus mit Polling ab.

Der folgende Express-Handler akzeptiert einen Video-Callback und speichert das Ereignis:

```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);
```

Ein Callback-Payload enthält üblicherweise Felder zur Task-Identität und zum Status, aber die genaue Verschachtelung hängt vom ausgewählten Modell oder Anbieter ab:

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

## Häufige Fehler

| Error                                            | Fix                                                                                                                                                     |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Verlorener Callback                              | Führen Sie Polling per task ID durch, bis Ihre App einen Endzustand gespeichert hat.                                                                    |
| Doppelter Callback                               | Gestalten Sie die Callback-Verarbeitung per task ID idempotent.                                                                                         |
| Callback abgelehnt                               | Geben Sie schnell eine `2xx`-Antwort zurück und verarbeiten Sie den Job dann im Hintergrund.                                                            |
| Anbieterspezifische Payload stimmt nicht überein | Speichern Sie das rohe Callback-Payload und normalisieren Sie es in Ihrer App.                                                                          |
| Fehlende `video_url`                             | Behandeln Sie `video_url` als optional und verwenden Sie Polling sowie modellspezifische Ergebnisfelder oder `/v1/videos/{id}/content`, wenn verfügbar. |

## Verwandte Links

* [Video Models](/api/video)
* [Video erstellen](/api/video/sora-2/create)
* [Video abrufen](/api/video/sora-2/retrieve)
* [Modelle-Seite](/de/overview/models)
* [Model directory](https://www.cometapi.com/models/)
* [Preise](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": "Wie verwende ich Webhooks und Polling für die Videogenerierung?",
        "description": "Verwenden Sie Polling und Webhooks für die CometAPI-Videogenerierung, indem Sie task IDs speichern, den Task-Status prüfen und Fehler bei der Callback-Zustellung behandeln.",
        "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": "CometAPI-Dokumentation",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Anleitungen",
            "item": "https://apidoc.cometapi.com/guides/use-cometapi-with-openai-sdk"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "Wie verwende ich Webhooks und Polling für die Videogenerierung?",
            "item": "https://apidoc.cometapi.com/guides/webhook-and-polling-for-video-generation"
          }
        ]
      }
    ]
    }
    `}
</script>
