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

# Gemini Omni 1.2 Flash Video Edit

> - Gemini Omni 1.2 Flash (`gemini-omni-1.2-flash-video-edit`) edits an input video using a text prompt and optional reference images.
- **Video:** `video_urls` requires exactly 1 input video, up to 15 seconds.
- **Images:** Optionally supply up to 10 reference images via `image_urls`.
- **Resolution:** `quality` accepts `360p`, `720p`, `1080p`, `4k`, or `auto`; default `auto` follows the input. An explicit resolution can raise or lower output resolution.
- **Duration:** `duration` accepts only `auto` and defaults to `auto`; output duration follows the input.
- **Aspect ratio:** `aspect_ratio` accepts only `auto` and defaults to `auto`; output ratio follows the input.
- Describe the desired edit with `prompt`. Put negative requirements directly in it; there is no separate negative prompt parameter.
- Synchronized native audio is generated automatically, with no additional parameter.
- Set `seed` to improve reproducibility.
- Asynchronous processing: [query task status](/en/api-manual/task-management/get-task-detail) using the returned task ID.
- Generated video links remain valid for 24 hours; save them promptly.



## OpenAPI

````yaml en/api-manual/video-series/gemini-omni-1.2-flash/gemini-omni-1.2-flash-video-edit.json POST /v1/videos/generations
openapi: 3.1.0
info:
  title: Gemini Omni 1.2 Flash Video Edit
  description: Edit one input video with optional reference images and a text prompt
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.evolink.ai
    description: Production environment
security:
  - bearerAuth: []
paths:
  /v1/videos/generations:
    post:
      tags:
        - Video Generation
      summary: Gemini Omni 1.2 Flash Video Edit
      description: >-
        - Gemini Omni 1.2 Flash (`gemini-omni-1.2-flash-video-edit`) edits an
        input video using a text prompt and optional reference images.

        - **Video:** `video_urls` requires exactly 1 input video, up to 15
        seconds.

        - **Images:** Optionally supply up to 10 reference images via
        `image_urls`.

        - **Resolution:** `quality` accepts `360p`, `720p`, `1080p`, `4k`, or
        `auto`; default `auto` follows the input. An explicit resolution can
        raise or lower output resolution.

        - **Duration:** `duration` accepts only `auto` and defaults to `auto`;
        output duration follows the input.

        - **Aspect ratio:** `aspect_ratio` accepts only `auto` and defaults to
        `auto`; output ratio follows the input.

        - Describe the desired edit with `prompt`. Put negative requirements
        directly in it; there is no separate negative prompt parameter.

        - Synchronized native audio is generated automatically, with no
        additional parameter.

        - Set `seed` to improve reproducibility.

        - Asynchronous processing: [query task
        status](/en/api-manual/task-management/get-task-detail) using the
        returned task ID.

        - Generated video links remain valid for 24 hours; save them promptly.
      operationId: createGeminiOmni12FlashVideoEditGeneration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GeminiOmni12FlashVideoEditRequest'
            examples:
              video_edit:
                summary: Video edit
                value:
                  model: gemini-omni-1.2-flash-video-edit
                  prompt: >-
                    Make the lighting warmer while keeping everything else
                    unchanged.
                  video_urls:
                    - https://example.com/source.mp4
                  quality: auto
                  duration: auto
                  aspect_ratio: auto
              video_edit_with_reference:
                summary: Video edit with reference image
                value:
                  model: gemini-omni-1.2-flash-video-edit
                  prompt: >-
                    Keep the person’s clothing style consistent with the
                    reference image while leaving the other camera movements
                    unchanged.
                  video_urls:
                    - https://example.com/source.mp4
                  image_urls:
                    - https://example.com/reference.png
                  quality: auto
                  duration: auto
                  aspect_ratio: auto
      responses:
        '200':
          description: Video task created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VideoGenerationResponse'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: invalid_request
                  message: Invalid request parameters
                  type: invalid_request_error
        '401':
          description: Not authenticated, token invalid or expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Insufficient quota, top-up required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: insufficient_quota
                  message: Insufficient quota. Please top up your account.
                  type: insufficient_quota
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: model_access_denied
                  message: >-
                    Token does not have access to model:
                    gemini-omni-1.2-flash-video-edit
                  type: invalid_request_error
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: rate_limit_exceeded
                  message: Too many requests, please try again later
                  type: rate_limit_error
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: internal_error
                  message: Internal server error
                  type: api_error
components:
  schemas:
    GeminiOmni12FlashVideoEditRequest:
      required:
        - model
        - prompt
        - video_urls
      type: object
      additionalProperties: false
      properties:
        model:
          type: string
          description: Model name, fixed to `gemini-omni-1.2-flash-video-edit`
          enum:
            - gemini-omni-1.2-flash-video-edit
          example: gemini-omni-1.2-flash-video-edit
          default: gemini-omni-1.2-flash-video-edit
        prompt:
          type: string
          description: >-
            Text instruction describing the desired edit and what should remain
            unchanged.


            Supports Chinese and English. For more stable results, describe the
            desired action and changes clearly. Write negative requirements
            directly in `prompt`, such as `No dialogue` or `No text`; there is
            no separate negative prompt parameter.


            The prompt is required and must not be empty or contain only
            whitespace.
          example: Make the lighting warmer while keeping everything else unchanged.
          minLength: 1
          pattern: \S
        video_urls:
          type: array
          items:
            type: string
            format: uri
          minItems: 1
          maxItems: 1
          description: >-
            Video array to edit; exactly 1 video.


            - HTTP/HTTPS video URLs only.

            - Format: mp4.

            - Duration: up to `15` seconds, with no lower limit; short 1–2
            second videos are also accepted.
          example:
            - https://example.com/source.mp4
        image_urls:
          type: array
          items:
            type: string
            format: uri
          minItems: 1
          maxItems: 10
          description: >-
            Optional reference image array, up to 10 images. It may be used with
            the input video to constrain subjects, style, or elements.


            **Input requirements:**

            - HTTP/HTTPS image URLs only

            - Supported formats: `png`, `jpeg`, `webp`


            **Billing:** Every reference image contributes input tokens.
          example:
            - https://example.com/reference.png
        quality:
          type: string
          description: >-
            Output video resolution; default `auto`.


            - `360p`: short edge 360.

            - `720p`: short edge 720.

            - `1080p`: short edge 1080.

            - `4k`: short edge 2160.

            - `auto`: follows the input resolution; this is the default.


            Choosing an explicit value can raise or lower output resolution.


            **Billing:** Output video tokens increase with output resolution.
            Input video also contributes tokens; higher resolution costs more.
          enum:
            - 360p
            - 720p
            - 1080p
            - 4k
            - auto
          default: auto
          example: auto
        duration:
          type: string
          description: >-
            Only auto is accepted and it is the default. Output duration follows
            the input video.
          enum:
            - auto
          default: auto
          example: auto
        aspect_ratio:
          type: string
          description: >-
            Only auto is accepted and it is the default. Output aspect ratio
            follows the input video.
          enum:
            - auto
          default: auto
          example: auto
        seed:
          type: integer
          description: >-
            Random seed; random by default.


            - Range: `0`–`4294967295`.

            - Fixing the seed reduces variation from parameter changes when
            tuning prompts and improves reproducibility.
          minimum: 0
          maximum: 4294967295
          example: 42
        callback_url:
          type: string
          description: >-
            HTTPS callback URL to notify when the task completes


            **Callback timing:**

            - Triggered when the task completes (completed), fails (failed), or
            is cancelled (cancelled)

            - Sent after billing is confirmed


            **Security restrictions:**

            - HTTPS protocol only

            - Callbacks to internal IP addresses are forbidden (127.0.0.1,
            10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)

            - URL length must not exceed `2048` characters


            **Callback mechanism:**

            - Timeout: `10` seconds

            - Up to `3` retries on failure (retried `1`s / `2`s / `4`s after
            each failure respectively)

            - The callback body format matches the response of the task query
            endpoint

            - A 2xx status code from the callback URL is treated as success;
            other status codes trigger a retry
          format: uri
          example: https://your-domain.com/webhooks/video-task-completed
    VideoGenerationResponse:
      type: object
      properties:
        created:
          type: integer
          description: Task creation timestamp
          example: 1757169743
        id:
          type: string
          description: Task ID
          example: task-unified-1757169743-7cvnl5zw
        model:
          type: string
          description: The model name actually used
          example: gemini-omni-1.2-flash-video-edit
        object:
          type: string
          enum:
            - video.generation.task
          description: The specific type of the task
        progress:
          type: integer
          description: Task progress percentage (0-100)
          minimum: 0
          maximum: 100
          example: 0
        status:
          type: string
          description: >-
            Task status. The create endpoint always returns `processing`; the
            internal `pending` state is also exposed to clients as `processing`.
          enum:
            - pending
            - processing
            - completed
            - failed
          example: processing
        task_info:
          $ref: '#/components/schemas/VideoTaskInfo'
          description: Detailed video task information
        type:
          type: string
          enum:
            - text
            - image
            - audio
            - video
          description: The output type of the task
          example: video
        usage:
          $ref: '#/components/schemas/Usage'
          description: Usage and billing information
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Error code identifier
            message:
              type: string
              description: Error description message
            type:
              type: string
              description: Error type
    VideoTaskInfo:
      type: object
      properties:
        can_cancel:
          type: boolean
          description: Whether the task can be cancelled
          example: false
        estimated_time:
          type: integer
          description: Estimated completion time (seconds)
          minimum: 0
          example: 60
        video_duration:
          type: integer
          description: >-
            Output duration follows the input video and returns the probed input
            duration.
          example: 5
    Usage:
      type: object
      description: Usage and billing information
      properties:
        billing_rule:
          type: string
          description: Billing rule
          enum:
            - per_call
            - per_token
            - per_second
          example: per_token
        credits_reserved:
          type: number
          description: Estimated credits to be consumed
          minimum: 0
          example: 102.34
        user_group:
          type: string
          description: Billing group the user belongs to
          example: default
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##All endpoints require authentication using a Bearer Token##


        **Get your API Key:**


        Visit the [API Key management page](https://evolink.ai/dashboard/keys)
        to obtain your API Key


        **Add it to the request header:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.