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

> - Gemini Omni 1.2 Flash (`gemini-omni-1.2-flash-video-extend`) continues an input video with native audio, optionally guided by reference images.
- **Video:** `video_urls` requires exactly 1 video, up to 30 seconds.
- **Images:** Optionally supply up to 10 reference images via `image_urls`.
- **Duration:** `duration` is the number of seconds to append, default `3`; it is not the total output duration.
- **Aspect ratio:** `aspect_ratio` accepts only `auto` and defaults to `auto`; output ratio follows the input.
- **Billing:** The output video portion is charged for the appended seconds. The full input video duration, reference images, prompt, and model reasoning also contribute to usage; settlement is based on actual usage.
- **Resolution:** `quality` accepts `360p`, `720p`, `1080p`, `4k`, or `auto`; default `auto` follows the input. Explicit values can raise or lower output resolution.
- Synchronized native audio is generated automatically, with no additional parameter.
- Write negative requirements directly in `prompt`; there is no separate negative prompt 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-extend.json POST /v1/videos/generations
openapi: 3.1.0
info:
  title: Gemini Omni 1.2 Flash Video Extend
  description: Extend one input video using 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 Extend
      description: >-
        - Gemini Omni 1.2 Flash (`gemini-omni-1.2-flash-video-extend`) continues
        an input video with native audio, optionally guided by reference images.

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

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

        - **Duration:** `duration` is the number of seconds to append, default
        `3`; it is not the total output duration.

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

        - **Billing:** The output video portion is charged for the appended
        seconds. The full input video duration, reference images, prompt, and
        model reasoning also contribute to usage; settlement is based on actual
        usage.

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

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

        - Write negative requirements directly in `prompt`; there is no separate
        negative prompt 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: createGeminiOmni12FlashVideoExtendGeneration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GeminiOmni12FlashVideoExtendRequest'
            examples:
              video_extend:
                summary: Video extend
                value:
                  model: gemini-omni-1.2-flash-video-extend
                  prompt: >-
                    The person continues walking forward and slowly exits the
                    frame.
                  video_urls:
                    - https://example.com/source.mp4
                  duration: 3
                  quality: auto
                  aspect_ratio: auto
              video_extend_with_reference:
                summary: Video extend with reference image
                value:
                  model: gemini-omni-1.2-flash-video-extend
                  prompt: >-
                    The person continues walking forward, keeping the clothing
                    style from the reference image.
                  video_urls:
                    - https://example.com/source.mp4
                  image_urls:
                    - https://example.com/reference.png
                  duration: 3
                  quality: 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-extend
                  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:
    GeminiOmni12FlashVideoExtendRequest:
      required:
        - model
        - prompt
        - video_urls
      type: object
      additionalProperties: false
      properties:
        model:
          type: string
          description: Model name, fixed to `gemini-omni-1.2-flash-video-extend`
          enum:
            - gemini-omni-1.2-flash-video-extend
          example: gemini-omni-1.2-flash-video-extend
          default: gemini-omni-1.2-flash-video-extend
        prompt:
          type: string
          description: >-
            Text prompt describing what should happen after the input video
            ends.


            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: The person continues walking forward and slowly exits the frame.
          minLength: 1
          pattern: \S
        video_urls:
          type: array
          items:
            type: string
            format: uri
          minItems: 1
          maxItems: 1
          description: >-
            Exactly one directly reachable HTTP/HTTPS MP4, no longer than 30
            seconds.
          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 video being extended 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
        duration:
          type: integer
          description: >-
            Appended video duration in seconds; default `3`.


            **Notes:**

            - Accepts any integer from `3` to `10`

            - Specifies how many seconds are generated after the input video,
            not the total output duration

            - Total output duration = input video duration + `duration`

            - Appended duration directly affects billing
          minimum: 3
          maximum: 10
          default: 3
          example: 3
        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
        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-extend
        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: 'Total output duration: input duration plus appended duration.'
          example: 6
    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.