| name | openrouter-video-generator |
| description | Generate or declare an OpenRouter video asset for AwesomeWebpageMetaSkill using a parent-leased Provider Settings connection and configured non-secret model/output values. |
| description_zh | 使用父级租用的 Provider Settings 连接及已配置的非敏感模型/输出参数,为 AwesomeWebpageMetaSkill 生成或声明 OpenRouter 视频资产。 |
| homepage | |
| user-invocable | false |
| disable-model-invocation | true |
| provenance | {"origin":"opensquilla-original","license":"Apache-2.0","maintained_by":"OpenSquilla"} |
| metadata | {"opensquilla":{"risk":"high","capabilities":["network-write","filesystem-read","filesystem-write"],"requires":{"env":"[Truncated]","config":"[Truncated]"}}} |
| entrypoint | {"command":"python {baseDir}/scripts/openrouter_video.py","args":["--model","{{ with.model | default('bytedance/seedance-2.0-fast') }}","--output-dir","{{ with.output_dir }}","--filename","{{ with.filename | default('intro.mp4') }}","--duration","{{ with.duration | default(10) }}","--aspect-ratio","{{ with.aspect_ratio | default('16:9') }}"],"env":{"OPENSQUILLA_META_CAPABILITY_LEASE_REQUIRED":"1"},"stdin":"{{ with.prompt | default(inputs.user_message) }}","parse":"text","timeout":420} |
OpenRouter Video Generator
Create a short browser-playable video asset for AwesomeWebpageMetaSkill.
This is an adapter around the configured OpenRouter video model, not a place to
choose providers or invent model ids.
Meta-Skill Entrypoint
Meta-skills should run this skill as skill_exec. The entrypoint is a
deterministic Python adapter around OpenRouter's async video endpoint. During a
MetaSkill run it receives a short-lived connection from ordinary Provider
Settings in the child process only; the credential, endpoint, and proxy never
enter with, argv, the plan, or persisted run data. It writes the MP4 under
the supplied output directory and prints either VIDEO_READY: or a failure
label. Do not spawn an LLM sub-agent just to generate video.
Contract
- Use the code-owned OpenRouter capability candidate and the volatile provider
lease resolved from ordinary Provider Settings after explicit approval.
- Use only
awesome_webpage.openrouter.models.video_generation as the model.
- Use only
awesome_webpage.output_dir as the output root.
- Save generated files under
project/assets/video/.
- Return a media manifest with local path, MIME type, duration if known,
provenance, and replacement notes.
OpenRouter Video API Contract (hard rule)
OpenRouter video models are exposed through an async job endpoint, not
the chat-completions endpoint. Hitting /chat/completions with a video
model id returns HTTP 500 and burns the full per-attempt budget. Do not
attempt it.
- Submit:
POST {base_url}/videos with JSON body
{"model": "<video_generation>", "prompt": "<text>", "duration": <int>}.
Optional fields: resolution, aspect_ratio, frame_images,
input_references, provider, callback_url. Do NOT send messages or
modalities — those are chat-only and will be rejected.
- Response (immediate):
{"id": "...", "polling_url": "...", "status": "pending"}.
- Poll: GET the
polling_url with the same Authorization: Bearer ...
header every 8-15 seconds until status becomes one of
completed | failed | cancelled | expired. Cap the loop at ~5 minutes per
clip; treat anything beyond that as .