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

# Créer une vidéo Omni

> Créez une tâche vidéo Omni en bêta via CometAPI avec POST /v1/videos, puis interrogez la tâche et téléchargez le fichier MP4 terminé.

Utilisez ce endpoint bêta pour créer une tâche vidéo Omni. L’API renvoie immédiatement un ID de tâche, alors stockez l’`id` renvoyé et interrogez la tâche jusqu’à ce qu’elle atteigne un statut terminal.

<Badge color="orange" size="sm" shape="pill">Bêta</Badge>

`POST /v1/videos` utilise `multipart/form-data` ; transmettez les contrôles scalaires comme champs de formulaire.

## Choisir un mode d’entrée

| Objectif      | Champs requis     | Champs facultatifs                      |
| ------------- | ----------------- | --------------------------------------- |
| Text-to-video | `model`, `prompt` | `seconds`, `aspect_ratio`, `resolution` |

Utilisez `model=omni-fast` pour cette page.

## Définir la durée, le ratio et la résolution

Omni est indiqué comme bêta, car la stabilité de génération peut varier selon l’entrée et la route sélectionnée. Gardez la première requête légère, puis inspectez la vidéo terminée avant de vous appuyer sur une durée de rendu ou une taille d’image spécifique.

| Paramètre      | Valeurs prises en charge                          | Par défaut | Comportement aux limites                                                                                  |
| -------------- | ------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------- |
| `seconds`      | Commencez avec `4`                                | `4`        | Utilisez d’abord des clips courts tant que ce endpoint est en bêta.                                       |
| `aspect_ratio` | `16:9`, `9:16`, `1:1`                             | `16:9`     | `9:16` peut produire un rendu en portrait. `1:1` peut être accepté tout en étant rendu au format paysage. |
| `resolution`   | Commencez avec `720p` ; `1080p` peut être accepté | `720p`     | La sortie de production actuelle peut être normalisée à `720p` même lorsque `1080p` est demandé.          |

| Requête                                 | Image finale observée |
| --------------------------------------- | --------------------- |
| `resolution=720p`, `aspect_ratio=16:9`  | `1280x720`            |
| `resolution=720p`, `aspect_ratio=9:16`  | `720x1280`            |
| `resolution=720p`, `aspect_ratio=1:1`   | `1280x720`            |
| `resolution=1080p`, `aspect_ratio=16:9` | `1280x720`            |

Comme ce endpoint est en bêta, considérez `aspect_ratio` et `resolution` comme des préférences de génération et vérifiez le MP4 téléchargé avant de dépendre des pixels finaux.

## Flux de tâche

<Steps>
  <Step title="Créer la tâche">
    Envoyez la requête de formulaire multipart et stockez l’`id` renvoyé.
  </Step>

  <Step title="Interroger la tâche">
    Appelez [Retrieve an Omni video](./retrieve) jusqu’à ce que `status` soit `completed` ou `failed`.
  </Step>

  <Step title="Télécharger le résultat">
    Lorsque la tâche est `completed`, appelez [Retrieve Omni video content](./retrieve-content) pour télécharger le fichier MP4.
  </Step>
</Steps>


## OpenAPI

````yaml api/openapi/video/omni/post-create.openapi.json POST /v1/videos
openapi: 3.1.0
info:
  title: Omni Video Create API
  version: 1.0.0
  description: >-
    Create an asynchronous beta Omni video task through CometAPI. Save the
    returned id, poll GET /v1/videos/{task_id}, and download the completed MP4
    file.
servers:
  - url: https://api.cometapi.com
security:
  - bearerAuth: []
paths:
  /v1/videos:
    post:
      summary: Create an Omni video task
      description: >-
        Create a beta Omni text-to-video task. Send request controls as
        multipart/form-data fields.
      operationId: omni_create_video
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OmniCreateRequest'
            examples:
              text_to_video:
                summary: Text-to-video
                value:
                  model: omni-fast
                  prompt: Ocean waves rolling onto a sandy beach at golden hour
                  seconds: '4'
                  aspect_ratio: '16:9'
                  resolution: 720p
      responses:
        '200':
          description: >-
            Task accepted. Store the returned id and poll GET
            /v1/videos/{task_id}.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OmniVideoTask'
              example:
                id: task_example
                task_id: task_example
                object: video
                model: omni-fast
                status: queued
                progress: 0
                created_at: 1779938152
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: Shell
          label: Text-to-video
          source: |-
            curl https://api.cometapi.com/v1/videos \
              -H "Authorization: Bearer $COMETAPI_KEY" \
              -F model=omni-fast \
              -F 'prompt=Ocean waves rolling onto a sandy beach at golden hour' \
              -F seconds=4 \
              -F aspect_ratio=16:9 \
              -F resolution=720p
        - lang: Python
          label: Text-to-video
          source: |
            import os
            import requests

            fields = [
                ("model", (None, "omni-fast")),
                ("prompt", (None, "Ocean waves rolling onto a sandy beach at golden hour")),
                ("seconds", (None, "4")),
                ("aspect_ratio", (None, "16:9")),
                ("resolution", (None, "720p")),
            ]

            response = requests.post(
                "https://api.cometapi.com/v1/videos",
                headers={"Authorization": "Bearer " + os.environ["COMETAPI_KEY"]},
                files=fields,
                timeout=120,
            )

            response.raise_for_status()
            print(response.json())
        - lang: JavaScript
          label: Text-to-video
          source: >
            const form = new FormData();

            form.append("model", "omni-fast");

            form.append("prompt", "Ocean waves rolling onto a sandy beach at
            golden hour");

            form.append("seconds", "4");

            form.append("aspect_ratio", "16:9");

            form.append("resolution", "720p");


            const response = await fetch("https://api.cometapi.com/v1/videos", {
              method: "POST",
              headers: { Authorization: `Bearer ${process.env.COMETAPI_KEY}` },
              body: form,
            });


            const result = await response.json();

            console.log(result);
components:
  schemas:
    OmniCreateRequest:
      type: object
      required:
        - model
        - prompt
      properties:
        model:
          type: string
          description: Omni model ID for this endpoint. Use omni-fast for text-to-video.
          enum:
            - omni-fast
          example: omni-fast
        prompt:
          type: string
          description: Text prompt that describes the video to generate.
          example: Ocean waves rolling onto a sandy beach at golden hour
        seconds:
          type: string
          description: >-
            Requested clip duration in seconds. Start with 4 while this endpoint
            is beta.
          default: '4'
          example: '4'
        aspect_ratio:
          type: string
          description: >-
            Output aspect ratio preference. 16:9 and 9:16 are the most
            predictable; 1:1 can be accepted but may render as landscape.
          enum:
            - '16:9'
            - '9:16'
            - '1:1'
          default: '16:9'
          example: '16:9'
        resolution:
          type: string
          description: >-
            Output resolution preference. Start with 720p. 1080p can be accepted
            but current production output may normalize to 720p.
          example: 720p
      additionalProperties: false
    OmniVideoTask:
      type: object
      required:
        - id
        - object
        - model
        - status
        - progress
        - created_at
      properties:
        id:
          type: string
          description: Task ID. Use this value with retrieve and content endpoints.
          example: task_example
        task_id:
          type: string
          description: Compatibility alias for id when present.
          example: task_example
        object:
          type: string
          description: Object type. Video tasks return video.
          example: video
        model:
          type: string
          description: Model ID used for the task.
          example: omni-fast
        status:
          type: string
          description: >-
            Task lifecycle status. Poll until the value is completed, failed, or
            error.
          enum:
            - queued
            - in_progress
            - completed
            - failed
            - error
          example: queued
        progress:
          type: integer
          minimum: 0
          maximum: 100
          description: Task progress as a coarse percentage.
          example: 0
        created_at:
          type: integer
          description: Task creation time as a Unix timestamp in seconds.
          example: 1779938152
        completed_at:
          type: integer
          description: >-
            Task completion time as a Unix timestamp in seconds. This field
            appears on completed tasks.
          example: 1779938219
        video_url:
          type: string
          description: Temporary video delivery URL. This field appears on completed tasks.
          example: <temporary-video-url>
        error:
          type: object
          description: Failure details. This field appears when the task fails.
          properties:
            code:
              type: string
              description: Provider or CometAPI error code.
            message:
              type: string
              description: Human-readable failure reason.
            type:
              type: string
              description: Error category when returned.
          additionalProperties: true
      additionalProperties: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer authentication. Use your CometAPI API key.

````