Answers from the documentation; checking which model is on duty
Hi - I answer from the OpenSmartRoute documentation: routing, the API, plans and quotas, self-hosting. Ask away, or open a support ticket if you need a person.
Grounded in the docs - follow a source before acting on it.
explainer-video-guide - Skill - OpenSmartRoute
Skillv1.0.0
explainer-video-guide
Explainer video production guide: scripting, voiceover, visuals, and assembly. Covers script formulas, pacing rules, scene planning, and multi-tool pipelines.
Imported from whytryharder/superpowers (guides/video/explainer-video-guide/SKILL.md). Install upstream with npx skills add whytryharder/superpowers --skill explainer-video-guide. Copyright stays with the author.
Install the belt CLI skill:npx skills add belt-sh/cli
Explainer Video Guide
Create explainer videos from script to final cut via inference.sh CLI.
belt login# Generate a scene for an explainerbelt app run google/veo-3-1-fast --input '{ "prompt": "Clean motion graphics style animation, abstract data flowing between connected nodes, blue and white color scheme, professional corporate aesthetic, smooth transitions"}'
Script Formulas
Problem-Agitate-Solve (PAS) — 60 seconds
Section
Duration
Content
Word Count
Problem
10s
State the pain point the viewer has
~25 words
Agitate
10s
Show why it's worse than they think
~25 words
Solution
15s
Introduce your product/idea
~35 words
How It Works
20s
Show 3 key steps or features
~50 words
CTA
5s
One clear next action
~12 words
Before-After-Bridge (BAB) — 90 seconds
Section
Duration
Content
Before
15s
Show the current frustrating state
After
15s
Show the ideal outcome
Bridge
40s
Explain how your product gets them there
Social Proof
10s
Quick stat or testimonial
CTA
10s
Clear next step
Feature Spotlight — 30 seconds (social)
Section
Duration
Content
Hook
3s
Surprising fact or question
Feature
15s
Show one feature solving one problem
Result
7s
The outcome/benefit
CTA
5s
Try it / Learn more
Pacing Rules
Content Type
Words Per Minute
Notes
Standard narration
150 wpm
Conversational pace
Complex/technical
120 wpm
Allow processing time
Energetic/social
170 wpm
Faster for short-form
Children's content
100 wpm
Clear and slow
Key rule: 1 scene per key message. Don't pack multiple ideas into one visual.
Scene Duration Guidelines
Establishing shot: 3-5 seconds
Feature demonstration: 5-8 seconds
Text/stat on screen: 3-4 seconds (must be readable)
Transition: 0.5-1 second
CTA screen: 3-5 seconds
Visual Production
Scene Types
# Product in contextbelt app run google/veo-3-1-fast --input '{ "prompt": "Clean product demonstration video, hands typing on a laptop showing a dashboard interface, bright modern office, soft natural lighting, professional"}'# Abstract concept visualizationbelt app run bytedance/seedance-2-0 --input '{ "prompt": "Abstract motion graphics, colorful data streams connecting floating geometric shapes, smooth fluid animation, dark background with glowing elements, tech aesthetic", "generate_audio": true}'# Lifestyle/outcome shotbelt app run google/veo-3-1-fast --input '{ "prompt": "Happy person relaxing on couch with laptop, smiling at screen, bright airy living room, warm afternoon light, satisfied customer feeling, lifestyle commercial style"}'# Before/after comparisonbelt app run falai/flux-dev-lora --input '{ "prompt": "Split screen comparison, left side cluttered messy desk with papers and stress, right side clean organized minimalist workspace, dramatic difference, clean design"}'
Image-to-Video for Scenes
# Generate a still frame firstbelt app run falai/flux-dev-lora --input '{ "prompt": "Professional workspace with glowing holographic interface, futuristic but clean, blue accent lighting"}'# Animate itbelt app run falai/wan-2-5-i2v --input '{ "prompt": "Gentle camera push in, holographic elements subtly floating and rotating, soft ambient light shifts", "image": "path/to/workspace-still.png"}'
Voiceover Production
Script Writing Tips
Short sentences. Max 15 words per sentence.
Active voice. "You can track your data" not "Your data can be tracked."
Conversational tone. Read it aloud — if it sounds stiff, rewrite.
One idea per sentence. One sentence per visual beat.
Generating Voiceover
# Professional narration with Dia TTSbelt app run falai/dia-tts --input '{ "prompt": "[S1] Tired of spending hours on reports that nobody reads? There is a better way. Meet DataFlow. It turns your raw data into visual stories... in seconds. Just connect your source, pick a template, and share. Try DataFlow free today."}'
Pacing Control in TTS
Technique
Effect
Example
Period .
Medium pause
"This changes everything. Here's how."
Ellipsis ...
Long pause (dramatic)
"And the result... was incredible."
Comma ,
Short pause
"Fast, simple, powerful."
Exclamation !
Emphasis/energy
"Start building today!"
Question ?
Rising intonation
"What if there was a better way?"
Music & Audio
Background Music Guidelines
Volume: 20-30% under narration (duck 6-12dB when voice plays)
Style: match the brand tone (corporate = ambient electronic, startup = upbeat indie)
Structure: intro swell (first 3s) -> subtle loop under narration -> swell at CTA
No vocals: instrumental only under narration
# Generate background musicbelt app run <music-gen-app> --input '{ "prompt": "upbeat corporate background music, modern electronic, 90 BPM, positive and professional, no vocals, suitable for product explainer video"}'
Assembly Pipeline
Full Production Workflow
# 1. Generate voiceoverbelt app run falai/dia-tts --input '{ "prompt": "[S1] Your script here..."}'# 2. Generate scene visuals (in parallel)belt app run google/veo-3-1-fast --input '{"prompt": "scene 1 description"}' --no-waitbelt app run google/veo-3-1-fast --input '{"prompt": "scene 2 description"}' --no-waitbelt app run google/veo-3-1-fast --input '{"prompt": "scene 3 description"}' --no-wait# 3. Merge scenes into sequencebelt app run infsh/media-merger --input '{ "media": ["scene1.mp4", "scene2.mp4", "scene3.mp4"]}'# 4. Add voiceover to videobelt app run infsh/video-audio-merger --input '{ "video": "merged-scenes.mp4", "audio": "voiceover.mp3"}'# 5. Add captionsbelt app run infsh/caption-videos --input '{ "video": "final-with-audio.mp4", "caption_file": "captions.srt"}'
Install explainer-video-guide and it becomes one more candidate the router can pick - when it fits.
A listing is a routing target with a manifest: what it does, which domains it covers, what it costs and who publishes it. Once installed it sits beside your own models and tools, is scored like any other candidate for each request, and shows up in the trace when it wins. Ratings come from workspaces that installed it, one per account.
When a provider is down or over quota the request moves on; the trace says it did.
Use it
Copy one of these into your project. Installing also returns the manifest and these snippets.
# after Install: the listing is in your workspace's routing pool - a plan picks it for its slotcurl-s-X POST https://api.opensmartroute.ai/api/v1/route -H 'Authorization: Bearer $OSR_API_KEY' -H 'Content-Type: application/json' -d '{"text": "...", "plan": true}'
Manifest
An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.
{
"ocm": "1",
"id": "whytryharder-superpowers-explainer-video-guide",
"kind": "skill",
"name": "explainer-video-guide",
"description": "Explainer video production guide: scripting, voiceover, visuals, and assembly. Covers script formulas, pacing rules, scene planning, and multi-tool pipelines. Use for: product demos, how-it-works videos, onboarding videos, social explainers. Triggers: explainer video, how to make explainer, product video, demo video, video production, video script, animated explainer, product demo video, tutorial video, onboarding video, walkthrough video, video pipeline",
"publisher": "whytryharder",
"version": "1.0.0",
"capabilities": {
"domains": [
"hr",
"math"
],
"tags": [
"skill-md",
"skills-sh"
],
"languages": [
"en"
]
},
"quality_prior": 0.6,
"examples": [
"Explainer video production guide: scripting, voiceover, visuals, and assembly. Covers script formulas, pacing rules, scene planning, and multi-tool pipelines. Use for: product demos, how-it-works videos, onboarding videos, social explainers. Triggers: explainer video, how to make explainer, product video, demo video, video production, video script, animated explainer, product demo video, tutorial video, onboarding video, walkthrough video, video pipeline"
],
"primary": false,
"metadata": {
"source": {
"provider": "skills.sh",
"repository": "https://github.com/whytryharder/superpowers",
"path": "guides/video/explainer-video-guide/SKILL.md",
"ref": "HEAD",
"url": "https://github.com/whytryharder/superpowers/blob/HEAD/guides/video/explainer-video-guide/SKILL.md",
"key": "whytryharder/superpowers/guides/video/explainer-video-guide/SKILL.md"
},
"allowed_tools": [
"Bash(belt",
"*)"
]
},
"instructions": "> **Install the belt CLI skill:** `npx skills add belt-sh/cli`\n\n# Explainer Video Guide\n\nCreate explainer videos from script to final cut via [inference.sh](https://inference.sh) CLI.\n\n## Quick Start\n\n> Requires inference.sh CLI (`belt`). [Install instructions](https://raw.githubusercontent.com/inference-sh/skills/refs/heads/main/cli-install.md)\n\n```bash\nbelt login\n\n# Generate a scene for an explainer\nbelt app run google/veo-3-1-fast --input '{\n \"prompt\": \"Clean motion graphics style animation, abstract data flowing between connected nodes, blue and white color scheme, professional corporate aesthetic, smooth transitions\"\n}'\n```\n\n\n## Script Formulas\n\n### Problem-Agitate-Solve (PAS) — 60 seconds\n\n| Section | Duration | Content | Word Count |\n|---------|----------|---------|------------|\n| **Problem** | 10s | State the pain point the viewer has | ~25 words |\n| **Agitate** | 10s | Show why it's worse than they think | ~25 words |\n| **Solution** | 15s | Introduce your product/idea | ~35 words |\n| **How It Works** | 20s | Show 3 key steps or features | ~50 words |\n| **CTA** | 5s | One clear next action | ~12 words |\n\n### Before-After-Bridge (BAB) — 90 seconds\n\n| Section | Duration | Content |\n|---------|----------|---------|\n| **Before** | 15s | Show the current frustrating state |\n| **After** | 15s | Show the ideal outcome |\n| **Bridge** | 40s | Explain how your product gets them there |\n| **Social Proof** | 10s | Quick stat or testimonial |\n| **CTA** | 10s | Clear next step |\n\n### Feature Spotlight — 30 seconds (social)\n\n| Section | Duration | Content |\n|---------|----------|---------|\n| **Hook** | 3s | Surprising fact or question |\n| **Feature** | 15s | Show one feature solving one problem |\n| **Result** | 7s | The outcome/benefit |\n| **CTA** | 5s | Try it / Learn more |\n\n## Pacing Rules\n\n| Content Type | Words Per Minute | Notes |\n|-------------|-----------------|-------|\n| Standard narration | 150 wpm | Conversational pace |\n| Complex/technical | 120 wpm | Allow processing time |\n| Energetic/social | 170 wpm | Faster for short-form |\n| Children's content | 100 wpm | Clear and slow |\n\n**Key rule:** 1 scene per key message. Don't pack multiple ideas into one visual.\n\n### Scene Duration Guidelines\n\n- Establishing shot: 3-5 seconds\n- Feature demonstration: 5-8 seconds\n- Text/stat on screen: 3-4 seconds (must be readable)\n- Transition: 0.5-1 second\n- CTA screen: 3-5 seconds\n\n## Visual Production\n\n### Scene Types\n\n```bash\n# Product in context\nbelt app run google/veo-3-1-fast --input '{\n \"prompt\": \"Clean product demonstration video, hands typing on a laptop showing a dashboard interface, bright modern office, soft natural lighting, professional\"\n}'\n\n# Abstract concept visualization\nbelt app run bytedance/seedance-2-0 --input '{\n \"prompt\": \"Abstract motion graphics, colorful data streams connecting floating geometric shapes, smooth fluid animation, dark background with glowing elements, tech aesthetic\",\n \"generate_audio\": true\n}'\n\n# Lifestyle/outcome shot\nbelt app run google/veo-3-1-fast --input '{\n \"prompt\": \"Happy person relaxing on couch with laptop, smiling at screen, bright airy living room, warm afternoon light, satisfied customer feeling, lifestyle commercial style\"\n}'\n\n# Before/after comparison\nbelt app run falai/flux-dev-lora --input '{\n \"prompt\": \"Split screen comparison, left side cluttered messy desk with papers and stress, right side clean organized minimalist workspace, dramatic difference, clean design\"\n}'\n```\n\n### Image-to-Video for Scenes\n\n```bash\n# Generate a still frame first\nbelt app run falai/flux-dev-lora --input '{\n \"prompt\": \"Professional workspace with glowing holographic interface, futuristic but clean, blue accent lighting\"\n}'\n\n# Animate it\nbelt app run falai/wan-2-5-i2v --input '{\n \"prompt\": \"Gentle camera push in, holographic elements subtly floating and rotating, soft ambient light shifts\",\n \"image\": \"path/to/workspace-still.png\"\n}'\n```\n\n## Voiceover Production\n\n### Script Writing Tips\n\n- Short sentences. Max 15 words per sentence.\n- Active voice. \"You can track your data\" not \"Your data can be tracked.\"\n- Conversational tone. Read it aloud — if it sounds stiff, rewrite.\n- One idea per sentence. One sentence per visual beat.\n\n### Generating Voiceover\n\n```bash\n# Professional narration with Dia TTS\nbelt app run falai/dia-tts --input '{\n \"prompt\": \"[S1] Tired of spending hours on reports that nobody reads? There is a better way. Meet DataFlow. It turns your raw data into visual stories... in seconds. Just connect your source, pick a template, and share. Try DataFlow free today.\"\n}'\n```\n\n### Pacing Control in TTS\n\n| Technique | Effect | Example |\n|-----------|--------|---------|\n| Period `.` | Medium pause | \"This changes everything. Here's how.\" |\n| Ellipsis `...` | Long pause (dramatic) | \"And the result... was incredible.\" |\n| Comma `,` | Short pause | \"Fast, simple, powerful.\" |\n| Exclamation `!` | Emphasis/energy | \"Start building today!\" |\n| Question `?` | Rising intonation | \"What if there was a better way?\" |\n\n## Music & Audio\n\n### Background Music Guidelines\n\n- **Volume:** 20-30% under narration (duck 6-12dB when voice plays)\n- **Style:** match the brand tone (corporate = ambient electronic, startup = upbeat indie)\n- **Structure:** intro swell (first 3s) -> subtle loop under narration -> swell at CTA\n- **No vocals:** instrumental only under narration\n\n```bash\n# Generate background music\nbelt app run <music-gen-app> --input '{\n \"prompt\": \"upbeat corporate background music, modern electronic, 90 BPM, positive and professional, no vocals, suitable for product explainer video\"\n}'\n```\n\n## Assembly Pipeline\n\n### Full Production Workflow\n\n```bash\n# 1. Generate voiceover\nbelt app run falai/dia-tts --input '{\n \"prompt\": \"[S1] Your script here...\"\n}'\n\n# 2. Generate scene visuals (in parallel)\nbelt app run google/veo-3-1-fast --input '{\"prompt\": \"scene 1 description\"}' --no-wait\nbelt app run google/veo-3-1-fast --input '{\"prompt\": \"scene 2 description\"}' --no-wait\nbelt app run google/veo-3-1-fast --input '{\"prompt\": \"scene 3 description\"}' --no-wait\n\n# 3. Merge scenes into sequence\nbelt app run infsh/media-merger --input '{\n \"media\": [\"scene1.mp4\", \"scene2.mp4\", \"scene3.mp4\"]\n}'\n\n# 4. Add voiceover to video\nbelt app run infsh/video-audio-merger --input '{\n \"video\": \"merged-scenes.mp4\",\n \"audio\": \"voiceover.mp3\"\n}'\n\n# 5. Add captions\nbelt app run infsh/caption-videos --input '{\n \"video\": \"final-with-audio.mp4\",\n \"caption_file\": \"captions.srt\"\n}'\n```\n\n## Video Length by Format\n\n| Format | Length | Platform |\n|--------|--------|----------|\n| Social teaser | 15-30s | TikTok, Instagram Reels, YouTube Shorts |\n| Product demo | 60-90s | Website, landing page |\n| Feature explainer | 90-120s | YouTube, email |\n| Tutorial/walkthrough | 2-5min | YouTube, help center |\n| Investor pitch video | 2-3min | Pitch deck supplement |\n\n## Transition Types\n\n| Transition | When to Use | Effect |\n|------------|-------------|--------|\n| **Cut** | Default between related scenes | Clean, professional |\n| **Dissolve/Crossfade** | Time passing, mood shift | Soft, contemplative |\n| **Wipe** | New topic or section | Clear separation |\n| **Zoom/Push** | Drilling into detail | Focus attention |\n| **Match cut** | Visual similarity between scenes | Clever, memorable |\n\n## Common Mistakes\n\n| Mistake | Problem | Fix |\n|---------|---------|-----|\n| Script too wordy | Voiceover rushed, viewer overwhelmed | Cut to 150 wpm max |\n| No hook in first 3s | Viewers leave immediately | Start with the problem or surprising stat |\n| Visuals lag narration | Confusing disconnect | Visuals should match or slightly precede words |\n| Background music too loud | Can't hear narration | Duck music 6-12dB under voice |\n| No captions | 85% of social video watched silent | Always add captions |\n| Too many ideas | Viewer retains nothing | One core message per video |\n\n## Related Skills\n\n```bash\nnpx skills add inference-sh/skills@ai-video-generation\nnpx skills add inference-sh/skills@video-prompting-guide\nnpx skills add inference-sh/skills@text-to-speech\nnpx skills add inference-sh/skills@prompt-engineering\n```\n\nBrowse all apps: `belt app list`",
"cost": {
"context_tokens": 2042
}
}
Fetch it by URL: GET /api/v1/registry/whytryharder-superpowers-explainer-video-guide/manifest?version=1.0.0
Reviews
Star ratings from people who tried it. One review per account; edit yours any time.
No reviews yet. Install it, try it, and be the first to rate it.