# Openrouter Text2video

> Generate videos via OpenRouter using ByteDance Seedance 2.0.

- Skill: `qinghonglin/openrouter-text2video` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add qinghonglin/openrouter-text2video`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qinghonglin/openrouter-text2video/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: QinghongLin (https://skillmd.com/u/qinghonglin)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/qinghonglin/openrouter-text2video

---


# 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.

```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

1. `POST /api/v1/videos` → returns `{id, polling_url, status: "pending"}`
2. `GET /api/v1/videos/{id}` every 5s until `status == "completed"`
3. `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.

