# Video Gen

> Generate short videos using Google Veo 3 via Gemini API and deliver via Feishu. Supports text prompts, configurable duration and aspect ratio. Veo 3 generates native audio.

- Skill: `asauler/video-gen` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add asauler/video-gen`
- Raw SKILL.md: https://api.skillmd.com/api/skills/asauler/video-gen/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: asauler (https://skillmd.com/u/asauler)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/asauler/video-gen

---


# 🎬 Video Gen

Generate videos from text descriptions using Google Veo 3 (REST API, async polling).

## How It Works

1. Sends prompt to Veo 3 `predictLongRunning` endpoint
2. Polls operation status every 10s until done (up to 5 min)
3. Downloads generated MP4 from returned URI
4. Uploads to Feishu and sends as file message

## Model

- Current: `veo-3.0-generate-001` (Veo 3, with native audio)
- Previous: `veo-2.0-generate-001` (Veo 2, no audio)
- Also available: `veo-3.0-fast-generate-001` (faster, lower quality), `veo-3.1-generate-preview` (latest)
- Veo 3 generates 8-second videos with synchronized audio from text prompts
- `durationSeconds` and `personGeneration` params not supported in Veo 3 — fixed duration 8s
- Download URL requires API key appended and follows 302 redirect

## Configuration

Requires in `openclaw.json`:
```json
{
  "plugins": {
    "entries": {
      "video-gen": {
        "config": {
          "geminiApiKey": "AIza..."
        }
      }
    }
  }
}
```

Also needs Feishu channel config (`appId` / `appSecret`) for file delivery.

## Usage

The agent calls `generate_video` tool with:
- `prompt` (required): Detailed English description of the video
- `duration` (optional): 5-8 seconds, default 5
- `aspect_ratio` (optional): "16:9" (landscape) or "9:16" (portrait), default "16:9"

## API Flow

```
POST /v1beta/models/veo-3.0-generate-preview:predictLongRunning
  → returns operation name
GET /v1beta/{operationName}
  → poll until done=true
  → extract video URI from response
GET {videoUri}
  → download MP4
```

## Notes

- Generation takes 1-3 minutes (async)
- Veo 3 固定生成 8 秒视频，duration 参数无效
- `personGeneration: "allow_adult"` 在 Veo 3 不支持，已移除
- Gateway uses `--use-env-proxy` so HTTP fetch auto-routes through HTTP_PROXY
- Download URL 需要追加 API key 并跟随 302 重定向
- 飞书发送视频必须用 `msg_type: "media"`（不是 `"file"`，否则报 230055 类型不匹配）
- Output: MP4 file sent as Feishu media message

## Available Models

```
veo-2.0-generate-001        # Veo 2, no audio
veo-3.0-generate-001        # Veo 3, native audio ← current
veo-3.0-fast-generate-001   # Veo 3 Fast, faster/lower quality
veo-3.1-generate-preview    # Veo 3.1, latest preview
veo-3.1-fast-generate-preview # Veo 3.1 Fast
```

