Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add QinghongLin/data2story-skill --skill openrouter-text2videogit clone --depth 1 https://github.com/QinghongLin/data2story-skillWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/qinghonglin/data2story-skill/openrouter-text2video)<a href="https://agentmods.dev/skills/qinghonglin/data2story-skill/openrouter-text2video"><img src="https://agentmods.dev/badge/skills/qinghonglin/data2story-skill/openrouter-text2video/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/qinghonglin/data2story-skill/openrouter-text2video"><img src="https://agentmods.dev/badge/skills/qinghonglin/data2story-skill/openrouter-text2video.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00021 | $0.00598 |
| Opus 5.5 | $0.00008 | $0.00239 |
| Sonnet 5.5 | $0.00004 | $0.00120 |
| Haiku 4.5 | $0.00002 | $0.00060 |
Grade A, and why
openrouter-text2video scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
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 untilstatus == "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_imagesorinput_referencesfor advanced modes.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2mo ago First seen · 55 lines · 21 tokens per session scan A 66cfe135b0f3
openrouter-text2video is a skill published in the GitHub repository QinghongLin/data2story-skill (161 stars, last pushed 4mo ago), licensed MIT. It adds 21 tokens to every session and 598 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
openrouter-text2video compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| openrouter-text2videoQinghongLin/data2story-skill | Skill | 161 | 4mo ago | MIT | A | 21 | Claude Code |
| chdb-sqlchdb-io/chdb | Skill | 2.9k | 6d ago | Apache-2.0 | A | 214 | Claude Code, Codex |
| waxchristopherkarani/Wax | Skill | 806 | 2d ago | Apache-2.0 | A | 76 | Codex |
| wax-memory-maintenancechristopherkarani/Wax | Skill | 806 | 2d ago | Apache-2.0 | A | 18 | Claude Code, Codex |
| alterlab-timesfmAlterLab-IEU/AlterLab-Academic-Skills | Skill | 85 | yesterday | MIT | A | 150 | Claude Code |
| alterlab-cobrapyAlterLab-IEU/AlterLab-Academic-Skills | Skill | 85 | yesterday | MIT | A | 91 | Claude Code |
| alterlab-molecular-dynamicsAlterLab-IEU/AlterLab-Academic-Skills | Skill | 85 | yesterday | MIT | A | 98 | Claude Code |