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

# video-processing

> AI video generation and audio extraction

**Server path:** `/video-processing` | **Type:** Embedded | **PCID required:** No

## Tools

| Tool                                                                | Description                                                                                                                                                                                                                                   |
| ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`video-processing_veo_generate`](#video-processing_veo_generate)   | Start AI video generation from text prompts using Google VEO models. Returns a prediction ID immediately - use video-processing\_veo\_poll to check status and get the video URL when complete. Video generation typically takes 1-2 minutes. |
| [`video-processing_veo_poll`](#video-processing_veo_poll)           | Check the status of a VEO video generation job. Call this after video-processing\_veo\_generate to check if the video is ready. Poll every 10-15 seconds until status is "succeeded" or "failed".                                             |
| [`video-processing_audio_extract`](#video-processing_audio_extract) | Extract audio from video files. Supports both synchronous (for small files) and asynchronous (for large files) processing. Output is MP3 format.                                                                                              |

***

## video-processing\_veo\_generate

Start AI video generation from text prompts using Google VEO models. Returns a prediction ID immediately - use video-processing\_veo\_poll to check status and get the video URL when complete. Video generation typically takes 1-2 minutes.

**Parameters:**

| Parameter          | Type      | Required | Default          | Description                                                                                                                                                                                                                                                              |
| ------------------ | --------- | -------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `prompt`           | string    | Yes      | —                | Required: Text description of the video to generate. Be specific and descriptive for best results.                                                                                                                                                                       |
| `model`            | string    | No       | `"veo-3.1-fast"` | Model to use. "veo-3.1" for full-featured high quality, "veo-3.1-fast" for speed-optimized (default). Note: reference\_images only work with veo-3.1.                                                                                                                    |
| `duration`         | number    | No       | `8`              | Video duration in seconds (default: 8)                                                                                                                                                                                                                                   |
| `aspect_ratio`     | string    | No       | `"16:9"`         | Aspect ratio. "16:9" for landscape/YouTube (default), "9:16" for vertical/mobile/TikTok                                                                                                                                                                                  |
| `resolution`       | string    | No       | `"1080p"`        | Video resolution (default: 1080p)                                                                                                                                                                                                                                        |
| `image`            | string    | No       | —                | Optional: Starting image URL (1280x720 or 720x1280) to animate into video                                                                                                                                                                                                |
| `last_frame`       | string    | No       | —                | Optional: Ending image URL for smooth transition. Requires "image" to be set.                                                                                                                                                                                            |
| `reference_images` | string\[] | No       | —                | Optional: Array of 1-3 image URLs for style guidance (e.g., \["[https://example.com/ref1.jpg](https://example.com/ref1.jpg)", "[https://example.com/ref2.jpg](https://example.com/ref2.jpg)"]). Only works with veo-3.1 model, 16:9 aspect ratio, and 8-second duration. |
| `generate_audio`   | boolean   | No       | `true`           | Whether to generate audio for the video (default: true)                                                                                                                                                                                                                  |
| `negative_prompt`  | string    | No       | —                | Optional: What to avoid in the video (e.g., "blurry, low quality")                                                                                                                                                                                                       |
| `seed`             | number    | No       | —                | Optional: Seed for reproducible results                                                                                                                                                                                                                                  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "prompt": {
        "type": "string",
        "description": "Required: Text description of the video to generate. Be specific and descriptive for best results."
      },
      "model": {
        "type": "string",
        "enum": [
          "veo-3.1",
          "veo-3.1-fast"
        ],
        "default": "veo-3.1-fast",
        "description": "Model to use. \"veo-3.1\" for full-featured high quality, \"veo-3.1-fast\" for speed-optimized (default). Note: reference_images only work with veo-3.1."
      },
      "duration": {
        "type": "number",
        "default": 8,
        "description": "Video duration in seconds (default: 8)"
      },
      "aspect_ratio": {
        "type": "string",
        "enum": [
          "16:9",
          "9:16"
        ],
        "default": "16:9",
        "description": "Aspect ratio. \"16:9\" for landscape/YouTube (default), \"9:16\" for vertical/mobile/TikTok"
      },
      "resolution": {
        "type": "string",
        "enum": [
          "1080p",
          "720p"
        ],
        "default": "1080p",
        "description": "Video resolution (default: 1080p)"
      },
      "image": {
        "type": "string",
        "description": "Optional: Starting image URL (1280x720 or 720x1280) to animate into video"
      },
      "last_frame": {
        "type": "string",
        "description": "Optional: Ending image URL for smooth transition. Requires \"image\" to be set."
      },
      "reference_images": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Optional: Array of 1-3 image URLs for style guidance (e.g., [\"https://example.com/ref1.jpg\", \"https://example.com/ref2.jpg\"]). Only works with veo-3.1 model, 16:9 aspect ratio, and 8-second duration."
      },
      "generate_audio": {
        "type": "boolean",
        "default": true,
        "description": "Whether to generate audio for the video (default: true)"
      },
      "negative_prompt": {
        "type": "string",
        "description": "Optional: What to avoid in the video (e.g., \"blurry, low quality\")"
      },
      "seed": {
        "type": "number",
        "description": "Optional: Seed for reproducible results"
      }
    },
    "required": [
      "prompt"
    ]
  }
  ```
</Expandable>

***

## video-processing\_veo\_poll

Check the status of a VEO video generation job. Call this after video-processing\_veo\_generate to check if the video is ready. Poll every 10-15 seconds until status is "succeeded" or "failed".

**Parameters:**

| Parameter      | Type   | Required | Default | Description                                                                                    |
| -------------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------- |
| `predictionId` | string | Yes      | —       | Required: The prediction ID returned by video-processing\_veo\_generate (e.g., "pred\_abc123") |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "predictionId": {
        "type": "string",
        "description": "Required: The prediction ID returned by video-processing_veo_generate (e.g., \"pred_abc123\")"
      }
    },
    "required": [
      "predictionId"
    ]
  }
  ```
</Expandable>

***

## video-processing\_audio\_extract

Extract audio from video files. Supports both synchronous (for small files) and asynchronous (for large files) processing. Output is MP3 format.

**Parameters:**

| Parameter                   | Type    | Required | Default | Description                                                                                                   |
| --------------------------- | ------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------- |
| `fileUrl`                   | string  | Yes      | —       | Required: URL of the video file to extract audio from                                                         |
| `collectionId`              | string  | No       | —       | Optional: Filestorage collection ID to save the extracted audio to. If not provided, uses default collection. |
| `outputFileName`            | string  | No       | —       | Optional: Custom filename for the extracted audio (e.g., "my\_audio.mp3")                                     |
| `async`                     | boolean | No       | `false` | Use async processing for large files (default: false). Async returns immediately with a job ID.               |
| `file_links_expire_in_days` | number  | No       | `7`     | Number of days before the download link expires (default: 7)                                                  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "fileUrl": {
        "type": "string",
        "description": "Required: URL of the video file to extract audio from"
      },
      "collectionId": {
        "type": "string",
        "description": "Optional: Filestorage collection ID to save the extracted audio to. If not provided, uses default collection."
      },
      "outputFileName": {
        "type": "string",
        "description": "Optional: Custom filename for the extracted audio (e.g., \"my_audio.mp3\")"
      },
      "async": {
        "type": "boolean",
        "default": false,
        "description": "Use async processing for large files (default: false). Async returns immediately with a job ID."
      },
      "file_links_expire_in_days": {
        "type": "number",
        "default": 7,
        "description": "Number of days before the download link expires (default: 7)"
      }
    },
    "required": [
      "fileUrl"
    ]
  }
  ```
</Expandable>
