> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Génération de Vidéo

> Générez des vidéos avec des opérations publiques explicites, un polling asynchrone et des entrées multimédias spécifiques au modèle.

La génération de vidéo est asynchrone. `POST /v1/videos/generations` renvoie une identité de tâche publique et généralement un `poll_url` ; la vidéo finale apparaît dans les réponses de statut ultérieures.

Lorsque le modèle Seedance sélectionné peut utiliser la bibliothèque de matériaux TokenLab, les URL d’image et les data URL inline compatibles sont préparées comme matériaux TokenLab réutilisables avant la génération. Si la préparation dépasse 60 secondes, réessayez lorsque les `auto_material_asset_ids` renvoyés sont `ACTIVE`. Si le modèle sélectionné ne peut pas utiliser la bibliothèque, les images ordinaires continuent sur le chemin image habituel.

## Opérations prises en charge

Utilisez une `operation` explicite en production. TokenLab peut inférer certaines opérations à partir des entrées, mais des valeurs d'opération explicites rendent la validation, le support et les réessais plus clairs.

| Opération            | Entrée requise ou typique                                                                   | Cas d'utilisation                                         |
| -------------------- | ------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| `text-to-video`      | `prompt`                                                                                    | Générer uniquement à partir de texte                      |
| `image-to-video`     | `image_url` ou `image` compatible                                                           | Animer une image de départ                                |
| `reference-to-video` | `reference_images` et `video_urls` / `audio_urls` optionnels sur les modèles pris en charge | Conserver l'identité, le style ou les références d'actifs |
| `start-end-to-video` | `start_image`, `end_image`                                                                  | Contrôler les premières et dernières images               |
| `video-to-video`     | `video_url` ou `task_id` spécifique au modèle                                               | Transformer ou améliorer un clip existant                 |
| `motion-control`     | `image_url` plus `video_url`                                                                | Appliquer une référence de mouvement à un sujet           |
| `audio-to-video`     | `audio_url`                                                                                 | Flux vidéo conditionnés par l'audio                       |
| `video-extension`    | `task_id`, `extend_at`, ou champs d'extension spécifiques au modèle                         | Continuer une vidéo générée                               |

## Découverte de Modèle

```bash theme={null}
curl "https://api.tokenlab.sh/v1/models?recommended_for=video" \\
  -H "Authorization: Bearer sk-your-api-key"
```

Utilisez les IDs de modèle affichés par TokenLab dans `model`, puis choisissez les variantes de fonctionnalité avec `operation` et les entrées média correspondantes. Exemples : `wan-2.7`, `happyhorse-1.0`, `viduq3`, `viduq3-mix`, `pixverse-v6`, `kling-3.0-video`, `veo3.1` et `seedance-2.0`; n’utilisez pas de suffixes propres à une opération comme noms de modèles TokenLab.

Lisez les détails du modèle sélectionné avant de vous fier à des champs spécialisés tels que `reference_images`, `kling_elements`, `output_audio`, `duration`, `resolution`, ou `aspect_ratio`.

## Créer une Demande

```bash theme={null}
curl https://api.tokenlab.sh/v1/videos/generations \\
  -H "Authorization: Bearer sk-your-api-key" \\
  -H "Content-Type: application/json" \\
  -d '{
    "model": "veo3.1",
    "operation": "text-to-video",
    "prompt": "Une prise de vue cinématographique calme d'un chat marchant dans un jardin ensoleillé",
    "duration": 4,
    "aspect_ratio": "16:9"
  }'
```

Pour les entrées multimédias en production, préférez les URL publiques `https` aux URL `data:` en ligne. Si vous utilisez des URL temporaires, gardez-les valides jusqu’à ce que TokenLab ait terminé la création de la tâche.

## Entrées et Champs Spécifiques au Modèle

* Les demandes de la famille Veo 3 sont par défaut audio activé lorsque `output_audio` est omis. Définissez-le explicitement lorsque le modèle prend en charge le basculement et que votre UX dépend du son.
* `kling_elements` est pour les demandes d'images conditionnées `kling-3.0-video`. Référencez chaque élément dans `prompt` comme `@name` ; ne le combinez pas avec `output_audio=true`.
* Pour la famille Seedance 2.0, lisez le [guide des modèles vidéo Seedance 2.0](/fr/guides/seedance-2-video) avant d’utiliser la sortie 4K, les limites Fast/Mini ou les entrées de référence multimodales.
* Pour `grok-imagine-video`, la vidéo à vidéo utilise une `video_url` publique `.mp4` ; les limites spécifiques au modèle telles que `duration` et `resolution` doivent provenir du détail du modèle.

## PixVerse et HappyHorse

| Modèle                       | Opérations                                                                    | Entrées                                                                     | Résolution              | Durée                                                                                                  | Sélecteur audio                    |
| ---------------------------- | ----------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------ | ---------------------------------- |
| `pixverse-c1`, `pixverse-v6` | `text-to-video`, `image-to-video`, `start-end-to-video`, `reference-to-video` | `prompt`; `image_url`; `start_image` + `end_image`; `reference_images`      | 360p, 540p, 720p, 1080p | Tout entier de 1 à 15 secondes                                                                         | `output_audio`, `false` par défaut |
| `pixverse-v5.6`              | `text-to-video`, `image-to-video`, `start-end-to-video`, `reference-to-video` | Mêmes champs que C1 et V6                                                   | 360p, 540p, 720p, 1080p | 5, 8 ou 10 secondes ; 1080p prend en charge 5 ou 8 secondes                                            | `output_audio`, `false` par défaut |
| `happyhorse-1.0`             | `text-to-video`, `image-to-video`, `reference-to-video`, `video-to-video`     | `prompt`; `image_url`; `reference_images`; `video_url` + `reference_images` | 720p, 1080p             | 3 à 15 secondes pour les opérations de génération ; la sortie video-to-video est limitée à 15 secondes | Ne pas envoyer `output_audio`      |

Sur TokenLab, les modèles PixVerse ci-dessus n'acceptent pas `operation=video-extension`.

```bash theme={null}
curl https://api.tokenlab.sh/v1/videos/generations \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "pixverse-v6",
    "operation": "image-to-video",
    "prompt": "A slow camera move through a neon-lit street",
    "image_url": "https://example.com/start.jpg",
    "resolution": "1080p",
    "duration": 5,
    "output_audio": true
  }'
```

## Polling des Résultats

Utilisez d'abord le `poll_url` renvoyé. Si vous avez besoin d'un point de terminaison fixe, utilisez `GET /v1/tasks/{id}` avec le même `id` / `task_id` de la réponse de création.

Les tâches vidéo terminées peuvent renvoyer `video_url`, `video` ou `videos` selon le modèle et le nombre de sorties. Traitez `billing_transaction_id` comme un identifiant de facturation, et non comme un identifiant de tâche.

## Pièges Courants

* Ne pas coder en dur les anciens chemins de statut vidéo ; préférez `poll_url`.
* Ne pas combiner les champs de première image avec des flux d'images de référence dédiés à moins que le détail du modèle ne le permette.
* Ne pas supposer que `duration` décrit la longueur de la vidéo de référence d'entrée ; il contrôle généralement la longueur de la sortie générée.
* Ne pas réessayer les demandes de création après un délai d'attente sans vérifier si une tâche a déjà été créée.

## Référence API

| Sujet                         | Référence                                                                 |
| ----------------------------- | ------------------------------------------------------------------------- |
| Créer une Vidéo               | [Créer une Vidéo](/fr/api-reference/video/create-video)                   |
| Obtenir le Statut de la Vidéo | [Obtenir le Statut de la Vidéo](/fr/api-reference/video/get-video-status) |
| Obtenir le Statut de la Tâche | [Obtenir le Statut de la Tâche](/fr/api-reference/tasks/get-task-status)  |
| Annuler la Tâche              | [Annuler la Tâche](/fr/api-reference/tasks/cancel-task)                   |
| Facturation & Tarification    | [Facturation & Tarification](/fr/guides/billing)                          |

## APIs vidéo style OpenAI et compatibles Volc

Utilisez `/v1/videos/generations` pour l’API vidéo unifiée de TokenLab sur plusieurs modèles. Si vous migrez une intégration Seedance 2.0 qui utilise déjà `content[]` ou des requêtes Action de style Volc, utilisez les endpoints de compatibilité Seedance sous `/api/v3`. Les deux styles utilisent les clés TokenLab Bearer et le polling asynchrone, mais leurs formes de requête et de réponse diffèrent.
