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

# Récupérer une vidéo Omni

> Récupérez une tâche vidéo Omni en bêta par ID de tâche, y compris le statut, la progression, les horodatages et l’URL de la vidéo terminée.

Utilisez ce endpoint après avoir créé une tâche vidéo Omni en bêta. Il renvoie l’état de la tâche et inclut `video_url` une fois la tâche terminée.

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

## Vérifiez ces champs

* `status` vous indique si la tâche est `queued`, `in_progress`, `completed` ou `failed`.
* `progress` est un pourcentage approximatif d’avancement.
* `video_url` apparaît dans les réponses terminées.
* `error` apparaît lorsqu’une tâche échoue.

## Flux de polling

<Steps>
  <Step title="Créez d’abord la tâche">
    Commencez par [Créer une vidéo Omni](./create) et stockez l’`id` renvoyé.
  </Step>

  <Step title="Interrogez par ID de tâche">
    Envoyez l’ID de tâche à ce endpoint jusqu’à ce que `status` atteigne `completed` ou `failed`.
  </Step>

  <Step title="Téléchargez le fichier MP4">
    Lorsque `status` est `completed`, appelez [Récupérer le contenu de la vidéo Omni](./retrieve-content).
  </Step>
</Steps>


## OpenAPI

````yaml api/openapi/video/omni/get-retrieve.openapi.json GET /v1/videos/{task_id}
openapi: 3.1.0
info:
  title: Omni Video Retrieve API
  version: 1.0.0
  description: >-
    Retrieve a beta Omni video task by task ID. Poll this endpoint until status
    is completed or failed.
servers:
  - url: https://api.cometapi.com
security:
  - bearerAuth: []
paths:
  /v1/videos/{task_id}:
    get:
      summary: Retrieve an Omni video task
      description: >-
        Read the state of a beta Omni video task that was created through POST
        /v1/videos.
      operationId: omni_retrieve_video
      parameters:
        - name: task_id
          in: path
          required: true
          description: Task ID returned by POST /v1/videos.
          schema:
            type: string
          example: task_example
      responses:
        '200':
          description: Omni video task state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OmniVideoTask'
              examples:
                queued:
                  summary: Task queued
                  value:
                    id: task_example
                    model: omni-fast
                    object: video
                    status: queued
                    progress: 0
                    created_at: 1779938152
                completed:
                  summary: Task completed
                  value:
                    id: task_example
                    model: omni-fast
                    object: video
                    status: completed
                    progress: 100
                    video_url: <temporary-video-url>
                    created_at: 1779938152
                    completed_at: 1779938219
        '400':
          description: The task ID does not match a task for the authenticated user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  message: task_not_exist
                  type: invalid_request_error
        '401':
          description: The API key is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: Shell
          label: Retrieve task status
          source: |-
            curl https://api.cometapi.com/v1/videos/<TASK_ID> \
              -H "Authorization: Bearer $COMETAPI_KEY"
        - lang: Python
          label: Retrieve task status
          source: |-
            import os
            import time
            import requests

            TASK_ID = "<TASK_ID>"
            headers = {"Authorization": "Bearer " + os.environ["COMETAPI_KEY"]}
            terminal_statuses = {"completed", "failed"}

            while True:
                response = requests.get(
                    f"https://api.cometapi.com/v1/videos/{TASK_ID}",
                    headers=headers,
                    timeout=60,
                )
                response.raise_for_status()
                task = response.json()
                print(task["status"], task.get("progress"))
                if task["status"] in terminal_statuses:
                    print(task.get("video_url"))
                    break
                time.sleep(10)
        - lang: JavaScript
          label: Retrieve task status
          source: |-
            const TASK_ID = "<TASK_ID>";
            const terminalStatuses = new Set(["completed", "failed"]);

            while (true) {
              const response = await fetch(
                `https://api.cometapi.com/v1/videos/${TASK_ID}`,
                { headers: { Authorization: `Bearer ${process.env.COMETAPI_KEY}` } },
              );
              const task = await response.json();
              console.log(task.status, task.progress);
              if (terminalStatuses.has(task.status)) {
                console.log(task.video_url);
                break;
              }
              await new Promise((resolve) => setTimeout(resolve, 10_000));
            }
components:
  schemas:
    OmniVideoTask:
      type: object
      required:
        - id
        - object
        - model
        - status
        - progress
        - created_at
      properties:
        id:
          type: string
          description: Task ID returned by POST /v1/videos.
          example: task_example
        object:
          type: string
          description: Object type. Omni 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 or failed.
          enum:
            - queued
            - in_progress
            - completed
            - failed
          example: completed
        progress:
          type: integer
          minimum: 0
          maximum: 100
          description: Task progress as a coarse percentage.
          example: 100
        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
    ErrorResponse:
      description: Error body.
      oneOf:
        - type: object
          required:
            - message
          properties:
            code:
              type:
                - string
                - 'null'
              description: Short error code.
            message:
              type: string
              description: Human-readable error message.
          additionalProperties: true
        - type: object
          required:
            - error
          properties:
            error:
              type: object
              required:
                - message
              properties:
                message:
                  type: string
                  description: Human-readable error message.
                type:
                  type: string
                  description: Error category.
                code:
                  type:
                    - string
                    - 'null'
                  description: Short error code.
              additionalProperties: true
          additionalProperties: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer authentication. Use your CometAPI API key.

````