> ## 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.

# Bruk polling og webhooks for videogenerering

> Spor CometAPI-videogenerering med polling og webhooks ved å lagre task ID-er, sjekke task-status og håndtere feil ved levering av callbacks.

Bruk polling som grunnlinje for videogenerering fordi hver async jobb returnerer en task ID som du kan spørre etter. Legg til webhooks bare når det valgte videoendepunktet støtter callback-URL-er, og behold polling som sannhetskilden for manglende eller leverandørspesifikk levering av callbacks.

## Opprett en video-task

Følgende forespørsel oppretter en minimal video-task og lagrer den returnerte ID-en. Legg til felt for varighet, oppløsning eller callback bare når siden for den valgte modellen dokumenterer disse feltene.

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

Svaret inkluderer en task ID og 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
}
```

## Poll status

Følgende forespørsel sjekker status for video-tasken:

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

Svaret endres etter hvert som tasken går fremover. Fullførte svar kan inkludere `video_url` når modelladapteren har en resultat-URL; ellers bruker du modellspesifikke resultatfelt eller innholdsruten `/v1/videos/{id}/content` når den modellen støtter proxied nedlastinger.

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

## Motta en webhook

CometAPI definerer ikke én universell callback-payload for hver videomodell. Behandle callbacks som leverandørspesifikke pass-through-hendelser, lagre rå body, og avstem endelig tilstand med polling.

Følgende Express-handler godtar en video-callback og lagrer hendelsen:

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

En callback-payload inkluderer vanligvis task-identitet og statusfelt, men nøyaktig nesting avhenger av den valgte modellen eller leverandøren:

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

## Vanlige feil

| Error                                    | Fix                                                                                                                                                |
| ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| Mistet callback                          | Poll med task ID til appen din har lagret en terminal tilstand.                                                                                    |
| Duplisert callback                       | Gjør håndtering av callbacks idempotent per task ID.                                                                                               |
| Callback avvist                          | Returner raskt et `2xx`-svar, og behandle deretter jobben i bakgrunnen.                                                                            |
| Leverandørspesifikk payload stemmer ikke | Lagre rå callback-payload og normaliser den i appen din.                                                                                           |
| Manglende `video_url`                    | Behandle `video_url` som valgfri og bruk polling sammen med modellspesifikke resultatfelt eller `/v1/videos/{id}/content` når det er tilgjengelig. |

## Relaterte lenker

* [Videomodeller](/api/video)
* [Opprett video](/api/video/sora-2/create)
* [Hent video](/api/video/sora-2/retrieve)
* [Modellside](/no/overview/models)
* [Modellkatalog](https://www.cometapi.com/models/)
* [Priser](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": "Hvordan bruker jeg webhooks og polling for videogenerering?",
        "description": "Bruk polling og webhooks for CometAPI-videogenerering ved å lagre oppgave-ID-er, kontrollere oppgavestatus og håndtere feil ved levering av callback.",
        "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-dokumentasjon",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Guider",
            "item": "https://apidoc.cometapi.com/guides/use-cometapi-with-openai-sdk"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "Hvordan bruker jeg webhooks og polling for videogenerering?",
            "item": "https://apidoc.cometapi.com/guides/webhook-and-polling-for-video-generation"
          }
        ]
      }
    ]
    }
    `}
</script>
