Claude Code skill: narrated infographic explainer films — 1950s newsreel cards, ElevenLabs narrator, Suno jingles, Gemini art, Remotion scenes cued to the spoken word
Overview
A Claude Code for making narrated : 5–15 minutes on how a system works, what happened and what happens next. They are told as a 1950s newsreel of instructional cards, with a silent mascot, a far-too-cheerful narrator, sung commercial breaks, and code-drawn infographics that land on the exact spoken word. The skill was extracted from a real 13-minute production about a national election. It packages the whole pipeline, the template that renders and the lessons learned the hard way: - Every number, title and label is rendered from a fact base (data.ts ← notes/research.md ← primary sources). The image model only supplies mood, setting and the mascot, and every prompt forbids text. - Scenes say cue("three hundred and sixty-five") and get the frame where the narrator says it. Before any narration exists, the timings are estimated from the text, so the whole film can be built and reviewed for free. When the voice arrives, the cues move by themselves.
README
infofilm
A Claude Code skill for making narrated infographic explainer films: 5–15 minutes on how a system works, what happened and what happens next. They are told as a 1950s newsreel of instructional cards, with a silent mascot, a far-too-cheerful narrator, sung commercial breaks, and code-drawn infographics that land on the exact spoken word.
The skill was extracted from a real 13-minute production about a national election. It packages the whole pipeline, the template that renders and the lessons learned the hard way:
research → fact-checked script → narrator (ElevenLabs, per-character timestamps)
→ theme, beds and jingles (Suno) → illustrations (Gemini 3 Pro Image)
→ Remotion scenes cued to words → −14 LUFS master + SRT
Why it works
- Code draws everything that must be true. Every number, title and label is rendered from a fact base (
data.ts←notes/research.md← primary sources). The image model only supplies mood, setting and the mascot, and every prompt forbids text. - The animation is timed to speech, not to frames. Scenes say
cue("three hundred and sixty-five")and get the frame where the narrator says it. Before any narration exists, the timings are estimated from the text, so the whole film can be built and reviewed for free. When the voice arrives, the cues move by themselves. - The film always plays. A scene without a component renders as its card, a scene without a picture gets a drawn ground, and a scene without a voice gets estimated timing. You can watch the whole film at every stage.
- Money is gated. Narration, images and music downloads each have a
--dry-runthat prints the cost, and the skill asks before spending. The narration cache is content-addressed per paragraph, so editing one scene re-bills one scene.
What’s inside
skills/infofilm/
├── SKILL.md # the pipeline: 10 phases, the gates, the standing rules
├── references/
│ ├── script.md # research file, manuscript format, film structure, review
│ ├── style.md # the house look, the mascot, changing styles
│ ├── voice.md # Voice Design, test reading, narration with timestamps
│ ├── music.md # Suno web UI: theme in Speech mode, beds, jingles, WAV, aligned lyrics
│ ├── images.md # Gemini 21:9 2K, character reference, inspecting every image
│ ├── scenes.md # golden scenes, parallel builders, primitives, contact sheets
│ ├── render.md # render, loudness, verification, delivery
│ └── pitfalls.md # every trap that cost a round, with its fix
├── scripts/new_film.sh # scaffold a project from the template
└── template/ # a complete, rendering film (1-minute demo about leap years)
├── film.json # title, language, locale, parts → kicker + music bed, scene music hooks
├── script/script.md # the manuscript
├── notes/ # research.md (the fact base), log.md (decisions, approvals, costs)
├── voice/ # design_voice.py, narrate.py (ElevenLabs, cached, timestamps)
├── music/ # cuts.json, tools/beats.py, tools/suno_lines.py
├── art/ # style.json (the look + the never-list), shots.json, gen.py
├── tools/ # build_timeline, cues, lint_cues, make_srt, sync_art, make_sfx, render.sh
└── video/ # Remotion 4: Card, Plate, Counter, Stamp, KineticLyrics, CommercialBreak …
Install
git clone https://github.com/fltman/infofilm.git
cd infofilm && ./install.sh # or ./install.sh --link
Then ask Claude Code for a film, for example “make a 10-minute explainer film about how the EU makes a law”. To start a project by hand:
~/.claude/skills/infofilm/scripts/new_film.sh ~/films/eu-law --slug eu-law --title "How the EU Makes a Law" --lang en --locale en-GB
cd ~/films/eu-law/video && npx remotion studio src/index.ts
Requirements
- Claude Code. For music, the Claude in Chrome extension and a Suno account (the skill uses Suno’s own web UI).
- Node 20+ with pnpm or npm, Python 3.10+ with
numpyandelevenlabs, andffmpeg. ELEVENLABS_API_KEYfor narration andOPENROUTER_API_KEYfor illustrations (Gemini 3 Pro Image).
What a 12-minute film costs (measured)
| Item | Volume | Cost |
|---|---|---|
| Illustrations | 19–30 scene images at 2K (about $0.14 each), plus retakes and style tests | $3–9 |
| Narration | 6,000–8,000 characters (eleven_v4) | 0.5–0.65 ElevenLabs credits per character: 6,760 characters cost 3,602 credits, 6,364 cost 4,077 |
| Voice design | 1–2 rounds of 3 takes | a few hundred credits |
| Music | about 7 cues, 2–4 takes each | Suno credits; WAV downloads may count against a plan quota |
| Render | 13 minutes at 1080p30 | about 50 minutes on a laptop, about 1.2 GB |
Films made with it
- Svenska Valjournalen 2026 (13 min). The election film the skill was extracted from.
- Svenska Journalen: Så styrs Sverige (10.4 min). It is about Sweden’s constitution and was the skill’s first test run, made end to end from
new_film.sh. The steps were:- a research agent wrote 79 sourced sections
- an independent reviewer found 2 MUST and 9 SHOULD issues, which were fixed before a credit was spent
- 19 illustrations, three Suno cues and the narration were made
- two golden scenes were built by hand, and 17 scenes by three parallel builders.
Licence
MIT. The template’s fonts (Bowlby One SC, Jost, Lobster) are loaded from Google Fonts under the SIL Open Font License. The sound effects are synthesised by tools/make_sfx.py. Your film’s narration, music and images are subject to the terms of the services that made them.
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add fltman/infofilm