* Add concept-explainer-short template: 9:16 TikTok/Reels explainer shorts (Python/moviepy) First non-Remotion template. The whole video derives from scenes.json (per-scene narration text + visual asset); a three-script pipeline turns it into a finished vertical short: - gen_vo.py — per-scene TTS via tools/voiceover.py (clone or built-in speaker, batch mode, --max-wpm pacing clamp), writes the vo_durations.json timeline anchor; warns past the 3-minute Shorts/Reels ceiling - gen_captions.py — burned karaoke caption timing: whisper word timestamps force-aligned to the ground-truth script text via difflib (never burns whisper's own transcription, which mishears TTS) - build.py — audio-anchored moviepy composite: Ken Burns on stills, boomerang-looped clips (asset extension decides), caption pills with width cap and platform-safe positioning, ducked looped music; renders at every stage (gradient placeholder cards before assets exist, word-count timing estimates before VO, silent before audio) Pattern proven on a 3:41 hallucinations explainer; tested end-to-end (out-of-box placeholder render + full Modal clone pipeline with three takes auto-clamped 181-188→165 wpm). Registered in the toolkit registry, CLAUDE.md, and /video (with Python-flow notes); openai-whisper documented as an optional dependency. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Add sky-blue-short showcase example + fix Modal qwen3-tts batch custom_voice examples/sky-blue-short: complete worked example of the concept-explainer-short template — a 52s vertical "Why is the sky blue?" short with Qwen3 VO (built-in Ryan, warm tone), two Ideogram diagram/CTA cards, two LTX sky clips, ACE-Step music bed, and burned aligned captions (~$0.80 total generation cost). All source assets committed; re-renders in place with python3 build.py. Building it surfaced two real bugs, fixed here: - Modal qwen3-tts handler: batch custom_voice hit the same qwen-tts tensor-aliasing crash the clone path already works around — now iterates per text with the shared speaker (redeployed and verified) - gen_vo.py: failed batch scenes crashed with KeyError instead of reporting which scenes failed and why Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Add hallucinations-short and sky-blue-short demo videos to README showcase Both produced with the concept-explainer-short pipeline: sky-blue-short uses the stock Qwen3-TTS Ryan voice; hallucinations-short uses a Qwen3 voice clone from a Pixabay voice-over sample. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Example Projects
Curated showcase projects demonstrating toolkit capabilities.
Available Examples
| Example | Stack | Contributor | Description | Complexity |
|---|---|---|---|---|
| hello-world | Remotion sprint-review | — | Minimal 25s video — zero config, renders in 2 minutes | Beginner |
| quick-spot | moviepy + PIL | — | 15s ad-style spot with audio-anchored timeline. Runs with zero external assets. | Beginner |
| data-viz-chart | moviepy + matplotlib | — | Animated time-series chart with deterministic title and source attribution. Runs with included data file. | Beginner |
| ds-crt-stinger | LTX-2 + moviepy + PIL | — | 6s brand stinger — LTX-2 CRT LoRA footage + post-processed grunged logo | Intermediate |
| sky-blue-short | concept-explainer-short (moviepy) | — | 52s vertical 9:16 explainer short — Qwen3 VO + Ideogram cards + LTX b-roll + burned captions. All assets committed; re-renders with python3 build.py. |
Intermediate |
| digital-samba-skill-demo | Remotion product-demo | Digital Samba | Marketing video for Claude Code skill | Intermediate |
| sprint-review-cho-oyu | Remotion sprint-review | Digital Samba | iOS sprint review for Digital Samba Mobile | Intermediate |
Note: Remotion examples include configs and documentation but NOT large media files — see each example's
ASSETS-NEEDED.mdfor what to create. The moviepy examples (quick-spot,data-viz-chart) are fully self-contained and run end-to-end withpython3 build.py.
Contributors
Thank you to these organizations and individuals for sharing their video projects:
| Contributor | Website | Examples Shared |
|---|---|---|
| Digital Samba | digitalsamba.com | digital-samba-skill-demo, sprint-review-cho-oyu |
Want your project featured? Run /contribute and select "Share an example project".
Using Examples
Remotion examples (hello-world, digital-samba-skill-demo, sprint-review-cho-oyu):
cp -r examples/example-name projects/my-project
cd projects/my-project
npm install
npm run studio
moviepy examples (quick-spot, data-viz-chart) — run in place, no copy needed:
cd examples/quick-spot # or examples/data-viz-chart
python3 build.py # produces out.mp4 in the example directory
These are fully self-contained references for the moviepy skill. Read the build.py and README.md in each.
Adding Demo Assets
Examples don't include large media files (videos, audio). To run them:
- Record demos - Use
/record-demoto capture screen recordings - Generate voiceover - Use
/generate-voiceoverwith the included script - Add music - Use
python tools/music.pyfor background tracks
Each example includes a ASSETS-NEEDED.md documenting what to create.
Contributing Examples
To share a project as an example:
- Run
/contributeand select "Share a template" (examples work similarly) - Or manually:
# Copy project to examples (without large media)
cp -r projects/my-project examples/
# Remove media files (these are gitignored anyway)
rm examples/my-project/public/demos/*.mp4
rm examples/my-project/public/audio/*.mp3
# Create asset documentation
# (describe what demos/audio are needed)
# Commit and PR
git add examples/my-project
git commit -m "Add example: my-project"
gh pr create
Example Structure
examples/example-name/
├── README.md # What this example demonstrates
├── ASSETS-NEEDED.md # What media to create
├── src/
│ └── config/
│ └── *-config.ts # Example configuration
├── public/
│ ├── demos/ # Empty (add your recordings)
│ ├── audio/ # Empty (add your voiceover)
│ └── images/ # Logos, screenshots (tracked)
└── VOICEOVER-SCRIPT.md # Script for narration