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

# Seedance 2.0 Lite Text to Video

> Seedance 2.0 Lite 文生视频是特价版满血路由，根据文本指令生成视频，不要求提供源媒体。Seedance 系列强调提示词遵循、连贯运动、多镜头叙事和音画同步。该模型为特价版满血路由：真人素材在提交生成前会经素材服务统一送审，请求中直接传入公开 URL 即可。



## OpenAPI

````yaml api-reference/openapi/seedance--2-0-lite-text-to-video.zh.yaml POST /v1/videos/generations
openapi: 3.1.0
info:
  title: Gemini Omni Extend API
  version: 1.0.0
  description: >-
    Gemini Omni Extend is APIPod's video extension and editing routing mode for
    the configured Gemini Omni channel. It requires a source video and can
    attach up to five reference images. In APIPod, the public model ID is
    gemini-omni-extend. It supports video-to-video, accepts text, video and
    image inputs, and returns results through asynchronous video tasks.
servers:
  - url: https://api.apipod.ai
    description: Production
security: []
paths:
  /v1/videos/generations:
    post:
      tags:
        - Gemini Omni Extend
      summary: Create Generation Task
      description: >-
        Gemini Omni Extend is APIPod's video extension and editing routing mode
        for the configured Gemini Omni channel. It requires a source video and
        can attach up to five reference images. In APIPod, the public model ID
        is gemini-omni-extend. It supports video-to-video, accepts text, video
        and image inputs, and returns results through asynchronous video tasks.
      operationId: create-gemini-omni-gemini-omni-extend
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              title: Gemini Omni Extend
              properties:
                model:
                  type: string
                  title: Model ID
                  description: Public APIPod model ID.
                  const: gemini-omni-extend
                prompt:
                  type: string
                  title: Prompt
                  maxLength: 4000
                video_url:
                  type: string
                  title: Video Url
                  description: >-
                    Video to be edited. The duration of the output video follows
                    that of the source video. If the source video lasts more
                    than 10 seconds, the output video will be capped at 10
                    seconds.
                image_urls:
                  type: array
                  title: Reference images
                  description: >-
                    Optional,you can provide 0-5 reference images to extend
                    video.
                  items:
                    type: string
                resolution:
                  type: string
                  title: Resolution
                  enum:
                    - 720p
                    - 1080p
                  default: 720p
                aspect_ratio:
                  type: string
                  title: Aspect Ratio
                  enum:
                    - '16:9'
                    - '9:16'
                  default: '16:9'
              required:
                - model
                - prompt
                - video_url
            example:
              model: gemini-omni-extend
              prompt: >-
                A cinematic tracking shot through a rain-soaked neon street,
                realistic motion, synchronized ambient sound.
              video_url: https://cdn.example.com/source.mp4
              resolution: 720p
              aspect_ratio: '16:9'
      responses:
        '200':
          description: Task accepted
          content:
            application/json:
              schema:
                type: object
                title: Task Submit Response
                description: Standard response for task submission
                properties:
                  code:
                    type: integer
                  data:
                    type: object
                    title: Task Submit Data
                    description: Data content for task submission
                    properties:
                      task_id:
                        type: string
                        description: generatation task id
                  message:
                    type: string
                required:
                  - code
                  - message
                  - data
              example:
                code: 200
                message: success
                data:
                  task_id: vid_task_01JEXAMPLE
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl https://api.apipod.ai/v1/videos/generations \
              -H "Authorization: Bearer $APIPOD_API_KEY" \
              -H "Content-Type: application/json" \
              -d '{
              "model": "gemini-omni-extend",
              "prompt": "A cinematic tracking shot through a rain-soaked neon street, realistic motion, synchronized ambient sound.",
              "video_url": "https://cdn.example.com/source.mp4",
              "resolution": "720p",
              "aspect_ratio": "16:9"
            }'
        - lang: Python
          label: Python
          source: |-
            import os
            import requests

            payload = {
              "model": "gemini-omni-extend",
              "prompt": "A cinematic tracking shot through a rain-soaked neon street, realistic motion, synchronized ambient sound.",
              "video_url": "https://cdn.example.com/source.mp4",
              "resolution": "720p",
              "aspect_ratio": "16:9"
            }

            response = requests.post(
                "https://api.apipod.ai/v1/videos/generations",
                headers={
                    "Authorization": f"Bearer {os.environ['APIPOD_API_KEY']}",
                    "Content-Type": "application/json",
                },
                json=payload,
                timeout=60,
            )
            response.raise_for_status()
            print(response.json())
        - lang: Go
          label: Go
          source: |-
            package main

            import (
                "bytes"
                "encoding/json"
                "fmt"
                "net/http"
                "os"
            )

            func main() {
                payload := map[string]any{}
                if err := json.Unmarshal([]byte(`{
              "model": "gemini-omni-extend",
              "prompt": "A cinematic tracking shot through a rain-soaked neon street, realistic motion, synchronized ambient sound.",
              "video_url": "https://cdn.example.com/source.mp4",
              "resolution": "720p",
              "aspect_ratio": "16:9"
            }`), &payload); err != nil {
                    panic(err)
                }
                body, err := json.Marshal(payload)
                if err != nil {
                    panic(err)
                }

                req, err := http.NewRequest(http.MethodPost, "https://api.apipod.ai/v1/videos/generations", bytes.NewReader(body))
                if err != nil {
                    panic(err)
                }
                req.Header.Set("Authorization", "Bearer "+os.Getenv("APIPOD_API_KEY"))
                req.Header.Set("Content-Type", "application/json")

                resp, err := http.DefaultClient.Do(req)
                if err != nil {
                    panic(err)
                }
                defer resp.Body.Close()
                fmt.Println(resp.Status)
            }
        - lang: Rust
          label: Rust
          source: |-
            use reqwest::Client;
            use serde_json::json;
            use std::env;

            #[tokio::main]
            async fn main() -> Result<(), Box<dyn std::error::Error>> {
                let payload = json!({
              "model": "gemini-omni-extend",
              "prompt": "A cinematic tracking shot through a rain-soaked neon street, realistic motion, synchronized ambient sound.",
              "video_url": "https://cdn.example.com/source.mp4",
              "resolution": "720p",
              "aspect_ratio": "16:9"
            });
                let response = Client::new()
                    .post("https://api.apipod.ai/v1/videos/generations")
                    .bearer_auth(env::var("APIPOD_API_KEY")?)
                    .json(&payload)
                    .send()
                    .await?
                    .error_for_status()?;

                println!("{}", response.text().await?);
                Ok(())
            }
        - lang: JavaScript
          label: JavaScript
          source: >-
            const response = await
            fetch("https://api.apipod.ai/v1/videos/generations", {
              method: "POST",
              headers: {
                Authorization: `Bearer ${process.env.APIPOD_API_KEY}`,
                "Content-Type": "application/json",
              },
              body: JSON.stringify(
              {
                "model": "gemini-omni-extend",
                "prompt": "A cinematic tracking shot through a rain-soaked neon street, realistic motion, synchronized ambient sound.",
                "video_url": "https://cdn.example.com/source.mp4",
                "resolution": "720p",
                "aspect_ratio": "16:9"
              }
              ),
            });


            if (!response.ok) {
              throw new Error(`APIPod request failed: ${response.status} ${await response.text()}`);
            }


            console.log(await response.json());
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: APIPod API key
      description: Use your APIPod API key as a Bearer token in the Authorization header.

````