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

# Ein Omni-Video erstellen

> Erstellen Sie über CometAPI mit POST /v1/videos eine beta-Omni-Videoaufgabe, fragen Sie dann die Aufgabe ab und laden Sie die fertige MP4-Datei herunter.

Verwenden Sie diesen beta-Endpunkt, um eine Omni-Videoaufgabe zu erstellen. Die API gibt sofort eine Aufgaben-ID zurück. Speichern Sie daher die zurückgegebene `id` und fragen Sie die Aufgabe ab, bis sie einen Endstatus erreicht.

<Badge color="orange" size="sm" shape="pill">Beta</Badge>

`POST /v1/videos` verwendet `multipart/form-data`; übergeben Sie skalare Steuerelemente als Formularfelder.

## Einen Eingabemodus wählen

| Ziel          | Erforderliche Felder | Optionale Felder                        |
| ------------- | -------------------- | --------------------------------------- |
| Text-zu-Video | `model`, `prompt`    | `seconds`, `aspect_ratio`, `resolution` |

Verwenden Sie für diese Seite `model=omni-fast`.

## Dauer, Verhältnis und Auflösung festlegen

Omni ist als beta gekennzeichnet, weil die Generierungsstabilität je nach Eingabe und gewählter Route variieren kann. Halten Sie die erste Anfrage klein und prüfen Sie dann das fertige Video, bevor Sie sich auf eine bestimmte gerenderte Dauer oder Frame-Größe verlassen.

| Einstellung    | Unterstützte Werte                                      | Standard | Verhalten an den Grenzen                                                                                          |
| -------------- | ------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------- |
| `seconds`      | Beginnen Sie mit `4`                                    | `4`      | Verwenden Sie zunächst kurze Clips, solange dieser Endpunkt beta ist.                                             |
| `aspect_ratio` | `16:9`, `9:16`, `1:1`                                   | `16:9`   | `9:16` kann eine Hochformat-Ausgabe rendern. `1:1` kann akzeptiert werden, während als Querformat gerendert wird. |
| `resolution`   | Beginnen Sie mit `720p`; `1080p` kann akzeptiert werden | `720p`   | Die aktuelle Produktionsausgabe kann auf `720p` normalisiert werden, selbst wenn `1080p` angefordert wird.        |

| Anfrage                                 | Beobachteter fertiger Frame |
| --------------------------------------- | --------------------------- |
| `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`                  |

Da dieser Endpunkt beta ist, behandeln Sie `aspect_ratio` und `resolution` als Generierungspräferenzen und prüfen Sie die heruntergeladene MP4-Datei, bevor Sie sich auf die endgültigen Pixel verlassen.

## Aufgabenablauf

<Steps>
  <Step title="Aufgabe erstellen">
    Senden Sie die Multipart-Formularanfrage und speichern Sie die zurückgegebene `id`.
  </Step>

  <Step title="Aufgabe abfragen">
    Rufen Sie [Ein Omni-Video abrufen](./retrieve) auf, bis `status` den Wert `completed` oder `failed` hat.
  </Step>

  <Step title="Ergebnis herunterladen">
    Wenn die Aufgabe `completed` ist, rufen Sie [Omni-Videoinhalt abrufen](./retrieve-content) auf, um die MP4-Datei herunterzuladen.
  </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.

````