Relay Video Generation
Multi-provider video generation with async polling and automatic model fallback.
Quick Start
uv run ~/.openclaw/skills/relay-video-gen/scripts/relay_video_gen.py \
-p "A rotating blue globe with stars in background" \
-f "globe.mp4"
Parameters
| Flag | Description | Default |
|------|-------------|---------|
| -p | Video prompt (English) | Required |
| -f | Output filename (.mp4) | Required |
| -d | Duration in seconds (3-15) | 5 |
| -a | Aspect ratio: 16:9, 9:16, 1:1 | 16:9 |
| -m | Override model name | kling-video |
| -P | Force provider | xingjiabi |
Examples
# 10-second vertical video for Reels/TikTok
uv run ~/.openclaw/skills/relay-video-gen/scripts/relay_video_gen.py \
-p "A person typing on laptop in coffee shop, warm lighting" \
-f "coffee.mp4" -d 10 -a 9:16
# Use veo3.1 model
uv run ~/.openclaw/skills/relay-video-gen/scripts/relay_video_gen.py \
-p "Ocean waves crashing on beach at sunset" \
-f "ocean.mp4" -m veo3.1-fast
Workflow
- Submit generation request → get
task_id - Poll every 5s until
completed/failed(max 10 min) - Download video to output path
- If model fails/saturated → auto-try next model
Model Fallback Order
Gemini (veo-3.1-generate-preview, direct Google API) → xingjiabi: kling-video → veo-3.1-fast → veo-3.1 → minimax/video-01 → grok-video-3
Provider Details
See references/providers.md for API formats, model status, and how to add providers.