| name | openrouter-text2video |
| description | Generate videos via OpenRouter using ByteDance Seedance 2.0. |
openrouter-text2video
Text → video via OpenRouter. Default model: bytedance/seedance-2.0.
Uses the async video-generation endpoint: submit job → poll → download.
Usage
Resolve TOOL_DIR = the directory containing this SKILL.md. Commands below use TOOL_DIR as a symbolic placeholder; replace it with the resolved, quoted path before running Bash.
export OPENROUTER_API_KEY=sk-or-v1-...
python3 TOOL_DIR/scripts/generate_video.py \
--prompt "A slow dolly push through a retro-futuristic arcade, neon signs reflecting in a puddle" \
--duration 5 \
--aspect-ratio 16:9 \
--resolution 720p \
--download PROJECT_DIR/assets/hero.mp4
Flags
| Flag | Default | Description |
|---|
--prompt | required | Text prompt |
--download | required | Output MP4 path |
--model | bytedance/seedance-2.0 | Any OpenRouter video model |
--duration | 5 | Seconds |
--aspect-ratio | 16:9 | 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21 |
--resolution | 720p | Model-dependent (e.g. 480p, 720p, 1080p) |
--generate-audio | off | Generate audio with video (if model supports) |
--poll-interval | 5 | Seconds between polls |
--max-wait | 600 | Max total wait time |
Flow
POST /api/v1/videos → returns {id, polling_url, status: "pending"}
GET /api/v1/videos/{id} every 5s until status == "completed"
GET /api/v1/videos/{id}/content → raw MP4 bytes
Pricing
Seedance 2.0: ~$7/M tokens with (height × width × duration × 24) / 1024 token formula. A 5-second 720p 16:9 clip ≈ 145k tokens ≈ $1.
Notes
- Supports text-to-video, image-to-video (first/last frame control via
frame_images), and reference-to-video.
- This script only wires text-to-video. Extend the body to add
frame_images or input_references for advanced modes.