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

# Créer une vidéo

> OpenAI Sora interface de génération vidéo compatible avec les formats. Prend en charge la génération texte-vers-vidéo ainsi que les modes de génération à partir d’une image/vidéo de référence.

- `POST /v1/videos` : Créer une tâche vidéo
- `GET /v1/videos/{video_id}` : Consulter l'état de la tâche
- `GET /v1/videos/{video_id}/content` : obtenir le contenu binaire de la vidéo

Actuellement non disponible pour les utilisateurs externes :
- `GET /v1/videos`
- `POST /v1/videos/{video_id}/remix`

En-têtes d'authentification standard :
- `Content-Type: application/json`

1. Créez une tâche via `POST /v1/videos` et obtenez `id`
2. Interrogez `GET /v1/videos/{id}` jusqu’à `completed` ou `failed`
3. Une fois terminé, utilisez en priorité `video_url` renvoyé dans la réponse
4. Si un téléchargement unifié est nécessaire, appelez `GET /v1/videos/{id}/content`

Paramètres principaux :
- `model: string` : requis, nom du modèle exposé
- `prompt: string` : recommandé, description de génération de la vidéo
- `seconds: number|string` : facultatif, durée cible
- `duration: number|string` : facultatif, alias de durée
- `size: string` : facultatif, taille de sortie
- `mode: string` : facultatif, valeurs courantes `t2v` `i2v` `i2v_first_last` `reference_material`

Paramètres de compatibilité courants :
- `aspect_ratio`
- `ratio`
- `quality`
- `resolution`
- `fps`
- `image`
- `image_url`
- `image_urls`
- `images`
- `reference_images`
- `input_reference`
- `end_image_url`
- `last_image_url`
- `video_urls`
- `audio_urls`
- `function_mode`
- `content`
- `callback_url`
- `external_task_id`

Paramètres d’extension courants de Kling :
- `model_name`
- `negative_prompt`
- `cfg_scale`
- `sound`
- `camera_control`
- `image_list`
- `video_id`
- `task_id`
- `watermark_info`

### 4.1 série Veo

Remarque : `stable`, `official`, etc. indiquent différents groupes et ne sont pas des suffixes `model` exposés à l’extérieur ; lors de l’appel, veuillez conserver `model` comme nom de modèle de base, et le groupe réellement utilisé sera déterminé par le groupe du compte ou du jeton.

#### modèle principal Veo 3.x

- `veo3`
- `veo3-fast`
- `veo3-fast-frames`
- `veo3-frames`
- `veo3-pro`
- `veo3-pro-frames`
- `veo3.1`
- `veo3.1-fast`
- `veo3.1-pro`
- `veo3.1-components`
- `veo3.1-4k`
- `veo3.1-pro-4k`

Recommandations :
- Pour la génération de vidéo à partir de texte seul, utilisez en priorité les modèles principaux `veo3*` / `veo3.1*`
- Pour les scénarios de génération de vidéo à partir d’image ou avec image de référence, il est recommandé de transmettre explicitement `mode + image_url/reference_images`

### 4.2 série Sora

Modèles de base :
- `sora-2`
- `sora-2-pro`

Recommandations :
- `sora-2*` convient aux appels généraux
- Si vous devez utiliser des groupes tels que `stable` / `official`, veuillez conserver `model` comme nom de modèle de base et ne pas ajouter de suffixe au nom du modèle.

Exemple de requête :

```json
{
  "size": "1280x720",
  "images": [
    "https://example.png"
  ],
  "model": "sora-2",
  "prompt": "this is an example",
  "duration": 12,
  "fps": "24",
  "seed": "20231024",
  "mode": "i2v"
}
```

### 4.3 Série HappyHorse

Modèle exposé :
- `happyhorse-1.0`

Recommandations :
- `happyhorse-1.0` différenciés par `mode` : `t2v`, `i2v`, `r2v` et `video_edit`.
- Dans le format compatible Sora, il est recommandé d’utiliser un tableau `content` pour transmettre les éléments multimédias.
- Les éléments texte utilisent `type=text`, les éléments multimédias utilisent `type=image_url` et peuvent être associés à `role` et `name` pour indiquer l’usage du contenu.

Exemple de requête :

```json
{
  "size": "720x1280",
  "model": "happyhorse-1.0",
  "mode": "r2v",
  "prompt": "this is an example",
  "duration": 15,
  "content": [
    {
      "type": "text",
      "text": "this is an example"
    },
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.png"
      },
      "role": "reference_image",
      "name": "image1"
    }
  ],
  "parameters": {
    "resolution": "720P",
    "ratio": "9:16",
    "duration": 15,
    "seed": 1
  }
}
```

### 4.4 Série Seedance

Modèle exposé :
- `doubao-seedance-1-0-lite-t2v-250428`
- `doubao-seedance-1-0-lite-i2v-250428`
- `doubao-seedance-1-0-pro-250528`
- `doubao-seedance-1-0-pro-fast-251015`
- `doubao-seedance-1-5-pro-251215`
- `doubao-seedance-2-0-260128`
- `doubao-seedance-2-0-fast-260128`

Recommandations :
- Pour la génération de vidéo à partir de texte, privilégiez `*-t2v-*` ou `pro / fast`
- Pour la génération de vidéo à partir d'image, privilégiez `*-i2v-*`
- Pour les scénarios avec des éléments de référence complexes, utilisez en priorité `content`

Exemple de requête :

```json
{
  "size": "1280x720",
  "model": "doubao-seedance-2-0-fast-260128",
  "prompt": "this is an example",
  "duration": 15,
  "fps": "24",
  "seed": "20231024",
  "mode": "reference_material",
  "content": [
    {
      "type": "text",
      "text": "this is an example"
    },
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.png"
      },
      "role": "reference_image",
      "name": "image1"
    },
    {
      "type": "audio_url",
      "audio_url": {
        "url": "https://example.mp3"
      },
      "role": "reference_audio",
      "name": "audio1"
    }
  ]
}
```

### 4.5 Série vidéo Grok

Modèle exposé :
- `grok-imagine-1.0-video`
- `grok-imagine-video-1.5-preview`
- `grok-video-3`

Paramètres courants :
- `prompt`
- `ratio` / `aspect_ratio`
- `resolution` / `size`
- `seconds` / `duration`
- `image` / `image_url` / `input_reference`
- `reference_images`

Exemple :

```json
{
  "model": "grok-imagine-1.0-video",
  "prompt": "雨夜霓虹街道上的电影感推镜，光影丰富，运动自然",
  "reference_images": [
    "https://example.com/ref-1.jpg"
  ],
  "seconds": 10,
  "aspect_ratio": "16:9",
  "resolution": "720P"
}
```

### 4.6 Modèle principal vidéo Kling

Modèle principal exposé :
- `kling-video`

Obligatoire :
- `model`
- `model_name`

`model_name` pris en charge :
- `kling-v1`
- `kling-v1-5`
- `kling-v1-6`
- `kling-v2-master`
- `kling-v2-1`
- `kling-v2-1-master`
- `kling-v2-5-turbo`
- `kling-v2-6`
- `kling-v3`

`mode` courants :
- `t2v`
- `i2v`
- `multi_i2v`
- `extend`

Paramètres d’entrée minimaux :
- Génération de vidéo à partir de texte : `model + model_name + prompt + mode=t2v`
- Génération de vidéo à partir d'image : `model + model_name + prompt + mode=i2v + image`
- Référence multi-image : `model + model_name + prompt + mode=multi_i2v + image_list`
- Extension de vidéo : `model + model_name + mode=extend + video_id`

Exemple :

```json
{
  "model": "kling-video",
  "model_name": "kling-v2-6",
  "mode": "t2v",
  "prompt": "海边日落镜头，电影感，风吹长发",
  "duration": 5,
  "aspect_ratio": "16:9"
}
```

### 4.7 Série vidéo MiniMax / Hailuo

Modèle exposé :
- `minimax-h3`
- `hailuo-2.3`

Recommandations :
- `minimax-h3` prend en charge la génération de vidéo à partir de texte, les références d’image et les références audio ; il est recommandé d’utiliser `content` pour mélanger texte et ressources ; vous pouvez aussi utiliser des champs compatibles tels que `image_urls` et `audio_urls`.
- `hailuo-2.3` nécessite une image de première image ; il est recommandé de transmettre l’élément `image_url` de `role=first_frame` dans `content`, ou d’utiliser `image_urls` pour transmettre l’image de première image.
- `minimax-h3` utilise généralement `duration=5~15` et `resolution=1440p` ; `hailuo-2.3` utilise généralement `duration=6` ou `10` et `resolution=768p`.

Exemple `minimax-h3` :

```json
{
  "model": "minimax-h3",
  "prompt": "A cinematic product video with smooth camera motion",
  "content": [
    {
      "type": "text",
      "text": "Use the product image as reference and match the rhythm of the audio."
    },
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.com/product.jpg"
      },
      "role": "reference_image",
      "name": "product"
    },
    {
      "type": "audio_url",
      "audio_url": {
        "url": "https://example.com/music.mp3"
      },
      "role": "reference_audio",
      "name": "music"
    }
  ],
  "duration": 8,
  "resolution": "1440p",
  "aspect_ratio": "16:9",
  "generate_audio": true
}
```

Exemple `hailuo-2.3` :

```json
{
  "model": "hailuo-2.3",
  "prompt": "The camera slowly pushes in, natural motion and cinematic lighting.",
  "content": [
    {
      "type": "text",
      "text": "The camera slowly pushes in, natural motion and cinematic lighting."
    },
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.com/first-frame.jpg"
      },
      "role": "first_frame",
      "name": "first"
    }
  ],
  "duration": 10,
  "resolution": "768p",
  "aspect_ratio": "16:9"
}
```

- `mode=t2v`
- Entrée minimale : `model + prompt`

- `mode=i2v`
- Entrée minimale : `model + prompt + image_url`

- `mode=i2v_first_last`
- Entrée minimale : `model + prompt + image_url + end_image_url`

- `mode=reference_images`
- Entrée minimale : `model + prompt + reference_images`

- `mode=reference_material`
- Entrée minimale : `model + prompt + (image_urls/video_urls/audio_urls 至少一种)`

### Instructions d’appel Gemini Omni

- `gemini-omni` est le nom public du modèle vidéo de new-api, utilisable directement via `POST /v1/videos`.
- `mode=t2v` : génération texte-vers-vidéo, le paramètre d’entrée minimal est `model + prompt`.
- `mode=r2v` : génération à partir d’une image/ressource de référence ; l’image peut être placée dans `image`, `image_url`, `images`, `image_urls`, `reference_images`, `input_reference` ou `content`.
- `mode=edit` : édition vidéo ; la vidéo peut être placée dans `video`, `video_url`, `videos` ou `content`, et une image de référence peut également être fournie.
- Le champ de durée peut utiliser `seconds` ou `duration` ; il sera automatiquement aligné sur les paliers de 4 / 6 / 8 / 10 secondes.



## OpenAPI

````yaml api-reference/fr/openapi.json POST /v1/videos
openapi: 3.0.0
info:
  title: Documentation de référence de 出海营 API
  version: 1.0.0
  description: Public AI Gateway API Reference
servers:
  - url: https://api.aiid.edu.kg
security:
  - BearerAuth: []
tags:
  - name: OpenAIFormat (Chat)
  - name: Format OpenAI(Responses)
  - name: Format Gemini pour la génération d’images
  - name: Génération d’imagesOpenAI au format DALL-E
  - name: Obtenir la liste des modèles
  - name: Génération vidéoHappyHorse avec Wan
  - name: Format de génération vidéo Kling
  - name: Format Omni de génération vidéo et Veo
  - name: Génération vidéo Seedance
  - name: Formats compatibles avec la génération de vidéosSora
  - name: Génération vidéo Vidu
  - name: Format de tâche de génération musicale
paths:
  /v1/videos:
    post:
      tags:
        - Formats compatibles avec la génération de vidéosSora
      summary: Créer une vidéo
      description: "OpenAI Sora interface de génération vidéo compatible avec les formats. Prend en charge la génération texte-vers-vidéo ainsi que les modes de génération à partir d’une image/vidéo de référence.\n\n- `POST /v1/videos` : Créer une tâche vidéo\n- `GET /v1/videos/{video_id}` : Consulter l'état de la tâche\n- `GET /v1/videos/{video_id}/content` : obtenir le contenu binaire de la vidéo\n\nActuellement non disponible pour les utilisateurs externes :\n- `GET /v1/videos`\n- `POST /v1/videos/{video_id}/remix`\n\nEn-têtes d'authentification standard :\n- `Content-Type: application/json`\n\n1. Créez une tâche via `POST /v1/videos` et obtenez `id`\n2. Interrogez `GET /v1/videos/{id}` jusqu’à `completed` ou `failed`\n3. Une fois terminé, utilisez en priorité `video_url` renvoyé dans la réponse\n4. Si un téléchargement unifié est nécessaire, appelez `GET /v1/videos/{id}/content`\n\nParamètres principaux :\n- `model: string` : requis, nom du modèle exposé\n- `prompt: string` : recommandé, description de génération de la vidéo\n- `seconds: number|string` : facultatif, durée cible\n- `duration: number|string` : facultatif, alias de durée\n- `size: string` : facultatif, taille de sortie\n- `mode: string` : facultatif, valeurs courantes `t2v` `i2v` `i2v_first_last` `reference_material`\n\nParamètres de compatibilité courants :\n- `aspect_ratio`\n- `ratio`\n- `quality`\n- `resolution`\n- `fps`\n- `image`\n- `image_url`\n- `image_urls`\n- `images`\n- `reference_images`\n- `input_reference`\n- `end_image_url`\n- `last_image_url`\n- `video_urls`\n- `audio_urls`\n- `function_mode`\n- `content`\n- `callback_url`\n- `external_task_id`\n\nParamètres d’extension courants de Kling :\n- `model_name`\n- `negative_prompt`\n- `cfg_scale`\n- `sound`\n- `camera_control`\n- `image_list`\n- `video_id`\n- `task_id`\n- `watermark_info`\n\n### 4.1 série Veo\n\nRemarque\_: `stable`, `official`, etc. indiquent différents groupes et ne sont pas des suffixes `model` exposés à l’extérieur\_; lors de l’appel, veuillez conserver `model` comme nom de modèle de base, et le groupe réellement utilisé sera déterminé par le groupe du compte ou du jeton.\n\n#### modèle principal Veo 3.x\n\n- `veo3`\n- `veo3-fast`\n- `veo3-fast-frames`\n- `veo3-frames`\n- `veo3-pro`\n- `veo3-pro-frames`\n- `veo3.1`\n- `veo3.1-fast`\n- `veo3.1-pro`\n- `veo3.1-components`\n- `veo3.1-4k`\n- `veo3.1-pro-4k`\n\nRecommandations :\n- Pour la génération de vidéo à partir de texte seul, utilisez en priorité les modèles principaux `veo3*` / `veo3.1*`\n- Pour les scénarios de génération de vidéo à partir d’image ou avec image de référence, il est recommandé de transmettre explicitement `mode + image_url/reference_images`\n\n### 4.2 série Sora\n\nModèles de base :\n- `sora-2`\n- `sora-2-pro`\n\nRecommandations :\n- `sora-2*` convient aux appels généraux\n- Si vous devez utiliser des groupes tels que `stable` / `official`, veuillez conserver `model` comme nom de modèle de base et ne pas ajouter de suffixe au nom du modèle.\n\nExemple de requête :\n\n```json\n{\n  \"size\": \"1280x720\",\n  \"images\": [\n    \"https://example.png\"\n  ],\n  \"model\": \"sora-2\",\n  \"prompt\": \"this is an example\",\n  \"duration\": 12,\n  \"fps\": \"24\",\n  \"seed\": \"20231024\",\n  \"mode\": \"i2v\"\n}\n```\n\n### 4.3 Série HappyHorse\n\nModèle exposé :\n- `happyhorse-1.0`\n\nRecommandations :\n- `happyhorse-1.0` différenciés par `mode` : `t2v`, `i2v`, `r2v` et `video_edit`.\n- Dans le format compatible Sora, il est recommandé d’utiliser un tableau `content` pour transmettre les éléments multimédias.\n- Les éléments texte utilisent `type=text`, les éléments multimédias utilisent `type=image_url` et peuvent être associés à `role` et `name` pour indiquer l’usage du contenu.\n\nExemple de requête :\n\n```json\n{\n  \"size\": \"720x1280\",\n  \"model\": \"happyhorse-1.0\",\n  \"mode\": \"r2v\",\n  \"prompt\": \"this is an example\",\n  \"duration\": 15,\n  \"content\": [\n    {\n      \"type\": \"text\",\n      \"text\": \"this is an example\"\n    },\n    {\n      \"type\": \"image_url\",\n      \"image_url\": {\n        \"url\": \"https://example.png\"\n      },\n      \"role\": \"reference_image\",\n      \"name\": \"image1\"\n    }\n  ],\n  \"parameters\": {\n    \"resolution\": \"720P\",\n    \"ratio\": \"9:16\",\n    \"duration\": 15,\n    \"seed\": 1\n  }\n}\n```\n\n### 4.4 Série Seedance\n\nModèle exposé :\n- `doubao-seedance-1-0-lite-t2v-250428`\n- `doubao-seedance-1-0-lite-i2v-250428`\n- `doubao-seedance-1-0-pro-250528`\n- `doubao-seedance-1-0-pro-fast-251015`\n- `doubao-seedance-1-5-pro-251215`\n- `doubao-seedance-2-0-260128`\n- `doubao-seedance-2-0-fast-260128`\n\nRecommandations :\n- Pour la génération de vidéo à partir de texte, privilégiez `*-t2v-*` ou `pro / fast`\n- Pour la génération de vidéo à partir d'image, privilégiez `*-i2v-*`\n- Pour les scénarios avec des éléments de référence complexes, utilisez en priorité `content`\n\nExemple de requête :\n\n```json\n{\n  \"size\": \"1280x720\",\n  \"model\": \"doubao-seedance-2-0-fast-260128\",\n  \"prompt\": \"this is an example\",\n  \"duration\": 15,\n  \"fps\": \"24\",\n  \"seed\": \"20231024\",\n  \"mode\": \"reference_material\",\n  \"content\": [\n    {\n      \"type\": \"text\",\n      \"text\": \"this is an example\"\n    },\n    {\n      \"type\": \"image_url\",\n      \"image_url\": {\n        \"url\": \"https://example.png\"\n      },\n      \"role\": \"reference_image\",\n      \"name\": \"image1\"\n    },\n    {\n      \"type\": \"audio_url\",\n      \"audio_url\": {\n        \"url\": \"https://example.mp3\"\n      },\n      \"role\": \"reference_audio\",\n      \"name\": \"audio1\"\n    }\n  ]\n}\n```\n\n### 4.5 Série vidéo Grok\n\nModèle exposé :\n- `grok-imagine-1.0-video`\n- `grok-imagine-video-1.5-preview`\n- `grok-video-3`\n\nParamètres courants :\n- `prompt`\n- `ratio` / `aspect_ratio`\n- `resolution` / `size`\n- `seconds` / `duration`\n- `image` / `image_url` / `input_reference`\n- `reference_images`\n\nExemple :\n\n```json\n{\n  \"model\": \"grok-imagine-1.0-video\",\n  \"prompt\": \"雨夜霓虹街道上的电影感推镜，光影丰富，运动自然\",\n  \"reference_images\": [\n    \"https://example.com/ref-1.jpg\"\n  ],\n  \"seconds\": 10,\n  \"aspect_ratio\": \"16:9\",\n  \"resolution\": \"720P\"\n}\n```\n\n### 4.6 Modèle principal vidéo Kling\n\nModèle principal exposé :\n- `kling-video`\n\nObligatoire :\n- `model`\n- `model_name`\n\n`model_name` pris en charge :\n- `kling-v1`\n- `kling-v1-5`\n- `kling-v1-6`\n- `kling-v2-master`\n- `kling-v2-1`\n- `kling-v2-1-master`\n- `kling-v2-5-turbo`\n- `kling-v2-6`\n- `kling-v3`\n\n`mode` courants :\n- `t2v`\n- `i2v`\n- `multi_i2v`\n- `extend`\n\nParamètres d’entrée minimaux :\n- Génération de vidéo à partir de texte : `model + model_name + prompt + mode=t2v`\n- Génération de vidéo à partir d'image : `model + model_name + prompt + mode=i2v + image`\n- Référence multi-image : `model + model_name + prompt + mode=multi_i2v + image_list`\n- Extension de vidéo : `model + model_name + mode=extend + video_id`\n\nExemple :\n\n```json\n{\n  \"model\": \"kling-video\",\n  \"model_name\": \"kling-v2-6\",\n  \"mode\": \"t2v\",\n  \"prompt\": \"海边日落镜头，电影感，风吹长发\",\n  \"duration\": 5,\n  \"aspect_ratio\": \"16:9\"\n}\n```\n\n### 4.7 Série vidéo MiniMax / Hailuo\n\nModèle exposé :\n- `minimax-h3`\n- `hailuo-2.3`\n\nRecommandations :\n- `minimax-h3` prend en charge la génération de vidéo à partir de texte, les références d’image et les références audio ; il est recommandé d’utiliser `content` pour mélanger texte et ressources ; vous pouvez aussi utiliser des champs compatibles tels que `image_urls` et `audio_urls`.\n- `hailuo-2.3` nécessite une image de première image ; il est recommandé de transmettre l’élément `image_url` de `role=first_frame` dans `content`, ou d’utiliser `image_urls` pour transmettre l’image de première image.\n- `minimax-h3` utilise généralement `duration=5~15` et `resolution=1440p` ; `hailuo-2.3` utilise généralement `duration=6` ou `10` et `resolution=768p`.\n\nExemple `minimax-h3` :\n\n```json\n{\n  \"model\": \"minimax-h3\",\n  \"prompt\": \"A cinematic product video with smooth camera motion\",\n  \"content\": [\n    {\n      \"type\": \"text\",\n      \"text\": \"Use the product image as reference and match the rhythm of the audio.\"\n    },\n    {\n      \"type\": \"image_url\",\n      \"image_url\": {\n        \"url\": \"https://example.com/product.jpg\"\n      },\n      \"role\": \"reference_image\",\n      \"name\": \"product\"\n    },\n    {\n      \"type\": \"audio_url\",\n      \"audio_url\": {\n        \"url\": \"https://example.com/music.mp3\"\n      },\n      \"role\": \"reference_audio\",\n      \"name\": \"music\"\n    }\n  ],\n  \"duration\": 8,\n  \"resolution\": \"1440p\",\n  \"aspect_ratio\": \"16:9\",\n  \"generate_audio\": true\n}\n```\n\nExemple `hailuo-2.3` :\n\n```json\n{\n  \"model\": \"hailuo-2.3\",\n  \"prompt\": \"The camera slowly pushes in, natural motion and cinematic lighting.\",\n  \"content\": [\n    {\n      \"type\": \"text\",\n      \"text\": \"The camera slowly pushes in, natural motion and cinematic lighting.\"\n    },\n    {\n      \"type\": \"image_url\",\n      \"image_url\": {\n        \"url\": \"https://example.com/first-frame.jpg\"\n      },\n      \"role\": \"first_frame\",\n      \"name\": \"first\"\n    }\n  ],\n  \"duration\": 10,\n  \"resolution\": \"768p\",\n  \"aspect_ratio\": \"16:9\"\n}\n```\n\n- `mode=t2v`\n- Entrée minimale : `model + prompt`\n\n- `mode=i2v`\n- Entrée minimale : `model + prompt + image_url`\n\n- `mode=i2v_first_last`\n- Entrée minimale : `model + prompt + image_url + end_image_url`\n\n- `mode=reference_images`\n- Entrée minimale : `model + prompt + reference_images`\n\n- `mode=reference_material`\n- Entrée minimale : `model + prompt + (image_urls/video_urls/audio_urls 至少一种)`\n\n### Instructions d’appel Gemini Omni\n\n- `gemini-omni` est le nom public du modèle vidéo de new-api, utilisable directement via `POST /v1/videos`.\n- `mode=t2v` : génération texte-vers-vidéo, le paramètre d’entrée minimal est `model + prompt`.\n- `mode=r2v` : génération à partir d’une image/ressource de référence ; l’image peut être placée dans `image`, `image_url`, `images`, `image_urls`, `reference_images`, `input_reference` ou `content`.\n- `mode=edit` : édition vidéo ; la vidéo peut être placée dans `video`, `video_url`, `videos` ou `content`, et une image de référence peut également être fournie.\n- Le champ de durée peut utiliser `seconds` ou `duration` ; il sera automatiquement aligné sur les paliers de 4 / 6 / 8 / 10 secondes."
      operationId: createVideo
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                model:
                  type: string
                  description: >-
                    Obligatoire, nom du modèle exposé à l’extérieur.
                    `gemini-omni` Peut être appelé via `/v1/videos`.
                  enum:
                    - sora-2
                    - sora-2-pro
                    - gemini-omni
                    - happyhorse-1.0
                    - happyhorse-1.0-i2v
                    - happyhorse-1.0-t2v
                    - happyhorse-1.0-r2v
                    - happyhorse-1.0-video-edit
                    - doubao-seedance-1-0-lite-i2v-250428
                    - doubao-seedance-1-0-lite-t2v-250428
                    - doubao-seedance-1-0-pro-250528
                    - doubao-seedance-1-0-pro-fast-251015
                    - doubao-seedance-1-5-pro-251215
                    - doubao-seedance-2-0-260128
                    - doubao-seedance-2-0-fast-260128
                    - veo3
                    - veo3-fast
                    - veo3-fast-frames
                    - veo3-frames
                    - veo3-pro
                    - veo3-pro-frames
                    - veo3.1
                    - veo3.1-4k
                    - veo3.1-components
                    - veo3.1-fast
                    - veo3.1-pro
                    - veo3.1-pro-4k
                    - kling-video
                    - grok-imagine-1.0-video
                    - grok-imagine-video-1.5-preview
                    - grok-video-3
                    - minimax-h3
                    - hailuo-2.3
                    - viduq3-turbo
                  example: sora-2
                prompt:
                  type: string
                  description: >-
                    Point d’entrée unifié pour les prompts. Requis pour la
                    plupart des modèles.
                image:
                  type: string
                  format: binary
                  description: >-
                    Point d'entrée pour image unique ; certains modes de
                    compatibilité seront mappés sur `images`.
                duration:
                  type: integer
                  description: >-
                    Paramètre de durée unifié ; certains modèles acceptent
                    également `seconds`.
                width:
                  type: integer
                  example: 512
                  description: Video width
                height:
                  type: integer
                  example: 512
                  description: Video height
                fps:
                  type: integer
                  example: 30
                  description: Video frame rate
                seed:
                  type: integer
                  example: 20231234
                  description: Random seed
                'n':
                  type: integer
                  example: 1
                  description: Number of videos to generate
                response_format:
                  type: string
                  example: url
                  description: Response format
                user:
                  type: string
                  example: user-1234
                  description: User identifier
                metadata:
                  type: object
                  additionalProperties: true
                  description: >-
                    Conteneur de champs d'extension dynamiques. De nombreux
                    champs spécifiques au modèle sont désérialisés à partir
                    d'ici.
                mode:
                  type: string
                  description: >-
                    Facultatif, mode de génération vidéo. `gemini-omni` prend en
                    charge `t2v`, `r2v` et `edit`.
                images:
                  type: array
                  description: >-
                    Point d’entrée unifié pour plusieurs images. Utilisé par
                    Vidu, Seedance, Veo, etc.
                  items:
                    type: string
                content:
                  type: array
                  items:
                    type: object
                    additionalProperties: true
                size:
                  type: string
                  description: >-
                    Point d’entrée unifié pour la taille, qui sera mappé vers
                    resolution/aspect_ratio, etc.
                seconds:
                  type: string
                  description: >-
                    Sora point d’entrée de compatibilité, au moment de
                    l’exécution, la valeur de secours sera duration.
                input_reference:
                  type: string
                  description: >-
                    Point d’entrée d’image de référence compatible Sora/Veo,
                    peut être un fichier multipart ou un objet compatible.
                parameters:
                  type: object
                  additionalProperties: true
              required:
                - model
                - prompt
            examples:
              openai_i2v_json:
                summary: OpenAI Sora i2v (application/json)
                value:
                  size: 1280x720
                  images:
                    - https://example.png
                  model: sora-2
                  prompt: this is an example
                  duration: 12
                  fps: '24'
                  seed: '20231024'
                  mode: i2v
              openai_i2v_input_reference:
                summary: OpenAI i2v (input_reference)
                value:
                  model: sora-2
                  prompt: A cinematic drone shot over snowy mountains at sunrise
                  input_reference:
                    image_url: https://example.com/input.jpg
                  seconds: '8'
                  size: 1280x720
                  response_format: url
              openai_alias_compat:
                summary: Alias兼容 (image_url/duration/aspect_ratio)
                value:
                  model: sora-2
                  prompt: A cinematic drone shot over snowy mountains at sunrise
                  image_url: https://example.com/input.jpg
                  duration: '8'
                  aspect_ratio: '16:9'
                  response_format: url
              gemini_omni_sora_t2v:
                summary: Gemini Omni Sora t2v
                value:
                  model: gemini-omni
                  mode: t2v
                  prompt: A cinematic product video with smooth camera motion
                  duration: 8
                  size: 1280x720
              gemini_omni_sora_r2v:
                summary: Gemini Omni Sora r2v
                value:
                  model: gemini-omni
                  mode: r2v
                  content:
                    - type: text
                      text: Keep the product consistent and create a short ad video
                    - type: image_url
                      image_url:
                        url: https://example.com/product.jpg
                  duration: 8
                  size: 1280x720
              gemini_omni_sora_edit:
                summary: Gemini Omni Sora edit
                value:
                  model: gemini-omni
                  mode: edit
                  content:
                    - type: text
                      text: Change the outfit color while keeping the motion natural
                    - type: video_url
                      video_url:
                        url: https://example.com/input.mp4
                    - type: image_url
                      image_url:
                        url: https://example.com/style.jpg
                  duration: 8
                  size: 1280x720
              happyhorse_sora_t2v:
                summary: HappyHorse Sora t2v
                value:
                  model: happyhorse-1.0
                  mode: t2v
                  content:
                    - type: text
                      text: >-
                        A cinematic white horse running through a neon city
                        street
                  duration: 5
                  resolution: 720P
                  ratio: '16:9'
              happyhorse_sora_i2v:
                summary: HappyHorse Sora i2v
                value:
                  model: happyhorse-1.0
                  mode: i2v
                  content:
                    - type: text
                      text: The camera slowly pushes in, natural motion
                    - type: image_url
                      image_url: https://example.com/first-frame.jpg
                  duration: 5
                  resolution: 720P
              happyhorse_sora_r2v:
                summary: HappyHorse Sora r2v
                value:
                  size: 720x1280
                  model: happyhorse-1.0
                  mode: r2v
                  prompt: this is an example
                  duration: 15
                  content:
                    - type: text
                      text: this is an example
                    - type: image_url
                      image_url:
                        url: https://example.png
                      role: reference_image
                      name: image1
                  parameters:
                    resolution: 720P
                    ratio: '9:16'
                    duration: 15
                    seed: 1
              happyhorse_sora_video_edit:
                summary: HappyHorse Sora video_edit
                value:
                  model: happyhorse-1.0
                  mode: video_edit
                  content:
                    - type: text
                      text: >-
                        Change the jacket to a striped sweater and keep the
                        motion natural
                    - type: video_url
                      video_url: https://example.com/input.mp4
                    - type: image_url
                      image_url: https://example.com/reference.jpg
                  resolution: 720P
              seedance_i2v_first:
                summary: Seedance i2v_first
                value:
                  model: doubao-seedance-1-0-lite-i2v-250428
                  mode: i2v_first
                  prompt: A panda skateboarding in a city street, cinematic
                  image_urls:
                    - https://example.com/first.jpg
                  seconds: '5'
                  size: 1280x720
              seedance_i2v_first_last:
                summary: Seedance i2v_first_last
                value:
                  model: doubao-seedance-1-0-lite-i2v-250428
                  mode: i2v_first_last
                  prompt: A camera moves from first frame to last frame naturally
                  image_urls:
                    - https://example.com/first.jpg
                  end_image_url: https://example.com/last.jpg
                  seconds: '5'
                  size: 1280x720
              seedance_reference_images:
                summary: Seedance reference_images
                value:
                  model: doubao-seedance-1-0-lite-i2v-250428
                  mode: reference_images
                  prompt: Stylized short video keeping character consistency
                  reference_images:
                    - https://example.com/ref-1.jpg
                    - https://example.com/ref-2.jpg
                  seconds: '5'
                  size: 1280x720
              seedance_reference_material:
                summary: Seedance mode de référence tout-en-un (reference_material)
                value:
                  model: doubao-seedance-1-0-lite-i2v-250428
                  mode: reference_material
                  prompt: >-
                    Blend image and short reference video into a coherent
                    cinematic clip
                  reference_images:
                    - https://example.com/ref-1.jpg
                    - https://example.com/ref-2.jpg
                  video_urls:
                    - https://example.com/ref-video.mp4
                  audio_urls:
                    - https://example.com/ref-audio.mp3
                  seconds: '5'
                  size: 1280x720
              seedance_volc_content:
                summary: Seedance Mode content de Volcengine Ark
                value:
                  size: 1280x720
                  model: doubao-seedance-2-0-fast-260128
                  prompt: this is an example
                  duration: 15
                  fps: '24'
                  seed: '20231024'
                  mode: reference_material
                  content:
                    - type: text
                      text: this is an example
                    - type: image_url
                      image_url:
                        url: https://example.png
                      role: reference_image
                      name: image1
                    - type: audio_url
                      audio_url:
                        url: https://example.mp3
                      role: reference_audio
                      name: audio1
              veo_first_last_frame:
                summary: Veo Mode image de début et de fin
                value:
                  model: veo3.1-fast
                  prompt: >-
                    A smooth transition from first frame to last frame,
                    cinematic motion
                  image_urls:
                    - https://example.com/first-frame.jpg
                  end_image_url: https://example.com/last-frame.jpg
                  seconds: '8'
                  size: 1280x720
              veo_reference_images_1to3:
                summary: Veo mode avec 1 à 3 images de référence
                value:
                  model: veo3.1-fast
                  prompt: >-
                    Use reference style and character consistency for a short ad
                    clip
                  reference_images:
                    - https://example.com/ref-1.jpg
                  seconds: '8'
                  size: 1280x720
              kling_text2video:
                summary: Kling Génération de vidéo à partir de texte
                value:
                  model: kling-video
                  prompt: A cat playing piano in the garden
                  duration: 5
                  size: 1280x720
                  metadata:
                    negative_prompt: blurry, low quality
                    mode: std
              kling_image2video:
                summary: Kling Image-vers-Vidéo
                value:
                  model: kling-video
                  prompt: A cat playing piano in the garden
                  image: https://example.com/input.jpg
                  duration: 5
                  size: 1280x720
                  metadata:
                    negative_prompt: blurry, low quality
                    mode: std
              grok_reference_video:
                summary: Grok Mode vidéo
                value:
                  model: grok-imagine-1.0-video
                  prompt: A dramatic cinematic shot with fast motion and rich lighting
                  reference_images:
                    - https://example.com/ref-1.jpg
                  seconds: 10
                  aspect_ratio: '16:9'
                  resolution: 720P
              minimax_h3_sora_reference:
                summary: Vidéo multi-sources MiniMax H3
                value:
                  model: minimax-h3
                  prompt: A cinematic product video with smooth camera motion
                  content:
                    - type: text
                      text: >-
                        Use the product image as reference and match the rhythm
                        of the audio.
                    - type: image_url
                      image_url:
                        url: https://example.com/product.jpg
                      role: reference_image
                      name: product
                    - type: audio_url
                      audio_url:
                        url: https://example.com/music.mp3
                      role: reference_audio
                      name: music
                  duration: 8
                  resolution: 1440p
                  aspect_ratio: '16:9'
                  generate_audio: true
              hailuo_2_3_sora_first_frame:
                summary: Hailuo 2.3 Génération de vidéo à partir de la première image
                value:
                  model: hailuo-2.3
                  prompt: >-
                    The camera slowly pushes in, natural motion and cinematic
                    lighting.
                  content:
                    - type: text
                      text: >-
                        The camera slowly pushes in, natural motion and
                        cinematic lighting.
                    - type: image_url
                      image_url:
                        url: https://example.com/first-frame.jpg
                      role: first_frame
                      name: first
                  duration: 10
                  resolution: 768p
                  aspect_ratio: '16:9'
              vidu_sora_t2v:
                summary: Vidu Sora t2v
                value:
                  model: viduq3-turbo
                  mode: t2v
                  content:
                    - type: text
                      text: A stylish product ad clip with cinematic lighting
                  duration: 5
                  resolution: 720p
                  aspect_ratio: '16:9'
              vidu_sora_i2v:
                summary: Vidu Sora i2v
                value:
                  model: viduq3-turbo
                  mode: i2v
                  content:
                    - type: text
                      text: A stylish ad clip from a product still image
                    - type: image_url
                      image_url: https://example.com/product.jpg
                  duration: 5
                  resolution: 720p
              vidu_sora_first_last:
                summary: Vidu Sora i2v_first_last
                value:
                  model: viduq3-turbo
                  mode: i2v_first_last
                  content:
                    - type: text
                      text: A smooth shot from start frame to end frame
                    - type: image_url
                      image_url: https://example.com/start.jpg
                    - type: image_url
                      image_url: https://example.com/end.jpg
                  duration: 5
                  resolution: 720p
              vidu_sora_reference:
                summary: Vidu Sora reference_images
                value:
                  model: viduq3-turbo
                  mode: reference_images
                  content:
                    - type: text
                      text: Maintain product style and character consistency
                    - type: image_url
                      image_url: https://example.com/ref-1.jpg
                    - type: image_url
                      image_url: https://example.com/ref-2.jpg
                    - type: image_url
                      image_url: https://example.com/ref-3.jpg
                  duration: 5
                  resolution: 720p
                  aspect_ratio: '16:9'
              hailuo_text2video:
                summary: Hailuo 2.3 Génération de vidéo à partir de la première image
                value:
                  model: hailuo-2.3
                  prompt: A cinematic travel shot over the coastline
                  image_urls:
                    - https://example.com/first-frame.jpg
                  duration: 6
                  resolution: 768p
                  aspect_ratio: '16:9'
      responses:
        '200':
          description: Tâche vidéo créée avec succès
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  task_id:
                    type: string
                    description: Compatible avec l'ancienne interface, bientôt obsolète
                  object:
                    type: string
                  model:
                    type: string
                  status:
                    type: string
                    description: >-
                      Should use VideoStatus constants: VideoStatusQueued,
                      VideoStatusInProgress, VideoStatusCompleted,
                      VideoStatusFailed
                    enum:
                      - queued
                      - in_progress
                      - completed
                      - failed
                      - video_url
                      - url
                      - completed_at
                  progress:
                    type: integer
                  created_at:
                    type: integer
                  completed_at:
                    type: integer
                  expires_at:
                    type: integer
                  seconds:
                    type: string
                  size:
                    type: string
                  remixed_from_video_id:
                    type: string
                  error:
                    type: object
                  metadata:
                    type: object
                    additionalProperties: true
                  output:
                    type: object
                  request_id:
                    type: string
                required:
                  - created_at
                  - id
                  - model
                  - object
                  - progress
                  - status
              example:
                id: video_abc123
                object: video
                model: sora-2
                status: queued
                progress: 0
                created_at: 1764347090922
                seconds: '8'
          headers: {}
        '400':
          description: Paramètres de requête non valides
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
      deprecated: false
      security:
        - BearerAuth: []
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              description: Message d'erreur
            type:
              type: string
              description: Type d'erreur
            param:
              type: string
              description: Paramètres associés
              nullable: true
            code:
              type: string
              description: Codes d'erreur
              nullable: true
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: |-
        Utilisez l'authentification Bearer Token.
        Format : `Authorization: Bearer sk-xxxxxx`

````