vox-explainer
Skill102 starsChanged 4 months agoMITView on GitHub
End-to-end pipeline for producing Vox-style explainer videos from a single topic prompt. One topic in, finished film out — script, keyframes (Seedream 5.0 Pro), animation (Gemini Omni Flash), voiceover (xAI TTS), music (MiniMax Music 2.6), all assembled locally with ffmpeg via the Atlas Cloud API. Use this skill whenever the user asks for an explainer video, a Vox-style video, a documentary short, an educational video essay, a "one prompt to video" pipeline, or wants to turn a topic/article/report into a narrated video with subtitles and music. Also trigger when the user mentions Atlas Cloud video pipelines, keyframe-to-animation workflows, or automated video essays — even if they don't say "Vox.
- Reads credentials
6 other projects use a version of this.
Adopted by
Most recently taken up by
- dotslashsimran/simcrafttheir own version, first seen Nov 8, 2026
- BlackAngel242/skill-markettheir own version, first seen Nov 1, 2026
- imMamdouhaboammar/motion-graphics-skillstheir own version, first seen Nov 1, 2026
- charlie947/motion-graphics-skillstheir own version, first seen Sep 26, 2026
- heygen-com/hyperframes-community-skillstheir own version, first seen Aug 25, 2026
- Advibly/skillstheir own version, first seen Jul 15, 2026
Used with
Projects with it also use apple-launch-film, loop-cover and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
charlie947Skillapple-launch-film
Rebuild an Apple-style Mac launch film entirely in code with Claude Code. A thin menu bar, the black notch growing into widgets one scene at a time, full-screen gradient wallpapers and one short caption per scene. No screen recording, no After Effects. Use when someone says "Apple-style launch", "Mac launch video", "notch animation", "make it look like an Apple keynote", "macOS UI launch film" or wants a product launch that looks like native Mac interface.
Also in 3 projects that use this
charlie947Skillloop-cover
Turn a newsletter or blog cover into a seamless looping GIF at 896 x 640, 180 frames at 20fps. Only the one element you name moves, the loop is rotated so frame 1 shows the finished picture, and the seam is measured, not eyeballed. Use when someone says "animated cover", "make my cover move", "looping GIF cover", "newsletter cover GIF", "animate my thumbnail" or wants a cover that moves in the inbox without looking busy.
Also in 3 projects that use this
alharkan7Skillanimated-chart
Takes an input of a chart image and turns it into an animated chart via Chart.js, outputting an HTML file for preview.
Also in 3 projects that use this
motion-teamSkillbrand-intake
Runs a structured brand intake interview and then conducts web research to build a comprehensive brand context document. Use this whenever the user says they're working on a new client, wants to build brand context, or says "run brand intake", "conduct brand research" or "build brand context for [brand]". Also trigger when the user starts a creative strategy workflow for a brand that doesn't yet have a context document in the project. This must run BEFORE any Creative Strategy Engine, Hook Writing, or other execution work — it is the prerequisite context layer for all downstream creative strategy.
Also in 3 projects that use this
Mathews-TomSkilllaunch-video
Turn the project in the current directory into a 15-25 second launch video: a project-specific story, real UI recreated in HTML/CSS, optional user-supplied music, a poster baked into frame 0, and postable share copy with any required credits. Rendering goes through the html-video package. Triggers on: "/brag", "let''s brag about this", "make a launch video", "launch video for this project", "turn this project into a video", "promo video for what I built". NOT for explaining a concept, algorithm or topic with no project behind it, use animate; NOT for an explicit React or Remotion composition, use remotion-video; NOT for an HTML video whose content is already scripted, use html-video.
Also in 3 projects that use this
- +7 more from charlie947
Other versions6 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 6
- charlie947/motion-graphics-skills★ 247same name
- heygen-com/hyperframes-community-skills★ 155same name
- dotslashsimran/simcraft★ 69same name
- imMamdouhaboammar/motion-graphics-skills★ 50same name
- Advibly/skills★ 3same name
- BlackAngel242/skill-market★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
12 rules. 0 are common, 4 are distinctive, and 8 are very specific to this project.
0
Common
Most of the 6 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 22
Before making any API calls, verify current endpoint paths and model IDs against https://www.atlascloud.ai/docs — media model APIs evolve …
- Distinctive: line 26
Create this layout for every film and keep it — every stage reads from and writes to it:
- Very specific: line 46
Read references/vox-style-guide.md (Writing section) before drafting.
- Distinctive: line 51
One idea per beat: If a sentence introduces a second concept, split the beat.
- Very specific: line 79
Call the Atlas Cloud audio endpoint per beat (model: xAI TTS v1 — see references/atlas-cloud-api.md for the exact request shape and voice …
- Very specific: line 81
After generation, probe every file and write audio/vo_durations.json:
- Very specific: line 97
Generate the anchor: Use bytedance/seedream-v5.0-pro/text-to-image for beat 1 (usually the title/hook frame).
- Very specific: line 99
Generate remaining frames with the edit model: Use bytedance/seedream-v5.0-pro/edit with the anchor as a reference image (up to 10 refs …
- Distinctive: line 103
Every prompt should end with the style suffix (see style guide), which encodes the Vox look: paper cutouts with white borders, halftone …
- Very specific: line 134
Read references/ffmpeg-assembly.md for full recipes.
- Distinctive: line 147
Run stages strictly in order the first time.
- Very specific: line 149
Keep every prompt you send in a prompts.log file — reproducibility matters and users will want to tweak-and-regenerate single beats.
“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Vox-Style Explainer Video Pipeline
Produce a complete, narrated, subtitled, scored explainer video from a single topic. The pipeline runs in six stages, each producing artifacts the next stage consumes. Voiceover is generated BEFORE animation because VO duration drives all timing decisions.
TOPIC → 1.Script → 2.Voiceover → 3.Keyframes → 4.Animation → 5.Music → 6.Assembly
(Claude) (xAI TTS) (Seedream) (Omni Flash) (MiniMax) (ffmpeg)Prerequisites
ATLASCLOUD_API_KEYenvironment variable set (get one at atlascloud.ai — free credits on signup)ffmpegandffprobeinstalled (with libass for subtitle burning)- Python 3.10+ with
requests - ~$3–8 in API credit per 60-second film (see cost table in
references/atlas-cloud-api.md)
Before making any API calls, verify current endpoint paths and model IDs against https://www.atlascloud.ai/docs — media model APIs evolve quickly. The patterns in references/atlas-cloud-api.md were verified July 2026.
Project structure
Create this layout for every film and keep it — every stage reads from and writes to it:
project/
├── brief.md # topic, angle, target length, audience
├── script.json # beats with narration, shot descriptions, captions
├── audio/
│ ├── vo/ # beat_01.mp3 ... beat_NN.mp3
│ ├── vo_durations.json
│ └── music.mp3
├── frames/ # keyframe_01.png ... style_anchor.png
├── clips/ # clip_01.mp4 ... (silent animated clips)
├── subs/ # captions.ass
└── final/ # film.mp4Stage 1 — Script
You write this yourself. No API call. This is the stage that most determines quality — a great script with average visuals beats the reverse.
Read references/vox-style-guide.md (Writing section) before drafting. Core rules:
- Structure as beats. A beat = one narration paragraph (1–3 sentences, 8–14 seconds spoken) + one visual. A 60-second film is 6–8 beats; 3 minutes is 16–22 beats.
- Vox narrative arc: cold-open hook (a surprising concrete fact or question) → context ("to understand X, you have to go back to...") → escalating explanation with one clear throughline → complication or twist → resolution that reframes the hook.
- Voice: second person welcome ("you've probably seen..."), present tense for historical narrative, concrete numbers over abstractions, short declarative sentences. No throat-clearing, no "in this video we will."
- One idea per beat. If a sentence introduces a second concept, split the beat.
Write script.json:
{
"title": "Tang Golden Age",
"topic": "How Tang Dynasty China built the world's largest city",
"style_seed": "mixed-media paper collage, ink-wash Chinese mountains, vermillion red and aged cream palette",
"accent_color": "#C0392B",
"beats": [
{
"id": 1,
"narration": "In the seventh century, Tang China built Chang'an — the largest, richest city on Earth. The whole world came to its gates.",
"visual": "Emperor Taizong enthroned at center as paper cutout, court figures flanking, pagodas and ink-wash mountains behind, red seal stamp upper right reading 盛唐",
"caption_text": null,
"motion": "slow push-in on emperor, clouds drift left, subtle parallax between cutout layers"
}
]
}caption_text is for on-screen kinetic typography moments (a key stat or term) — most beats leave it null; narration subtitles are handled at assembly. motion becomes the animation prompt in Stage 4.
Stage 2 — Voiceover (xAI TTS v1)
Generate one audio file per beat, then measure durations. These durations are the master clock for the whole film.
Call the Atlas Cloud audio endpoint per beat (model: xAI TTS v1 — see references/atlas-cloud-api.md for the exact request shape and voice selection guidance). Pick ONE voice for the whole film. Vox register: measured, warm, slightly wry — avoid "movie trailer" voices.
After generation, probe every file and write audio/vo_durations.json:
ffprobe -v error -show_entries format=duration -of csv=p=0 audio/vo/beat_01.mp3{"beats": [{"id": 1, "file": "audio/vo/beat_01.mp3", "duration": 9.83}], "total": 61.2}Sanity-check total length against the brief. If a beat runs long, tighten the narration and regenerate that beat only.
Stage 3 — Keyframes (Seedream 5.0 Pro)
One keyframe per beat, all in a consistent visual style. Consistency is the hard problem; solve it with the style anchor pattern:
- Generate the anchor. Use
bytedance/seedream-v5.0-pro/text-to-imagefor beat 1 (usually the title/hook frame). Build the prompt from the style block inreferences/vox-style-guide.md(Visual Grammar section) + the beat'svisual+ the film'sstyle_seedandaccent_color. Request 16:9, 2K. - Review the anchor before proceeding. Regenerate until the style is right — every other frame inherits it.
- Generate remaining frames with the edit model. Use
bytedance/seedream-v5.0-pro/editwith the anchor as a reference image (up to 10 refs supported; anchor + optionally the previous frame). Prompt: "Keep the exact art style, palette, paper-collage treatment, and border framing of the reference. New scene: {beat.visual}"
This locks palette, texture, and framing across the film the way a human art director would.
Every prompt should end with the style suffix (see style guide), which encodes the Vox look: paper cutouts with white borders, halftone dots, tape strips, bold flat geometric accents, generous margins, single accent color.
Frames with caption_text set: instruct Seedream to render the text in a bold condensed sans, since Seedream 5.0 Pro's typography rendering is strong. Keep it under 5 words per frame.
Stage 4 — Animation (Gemini Omni Flash)
Animate each keyframe into a clip via image-to-video. Target clip duration = that beat's VO duration + 0.5s of breathing room (round up to the model's supported increments).
Motion prompts for the collage aesthetic should be SUBTLE — this is the most common failure mode. The Vox look is "motion graphics," not "footage." Good motion vocabulary:
- slow push-in / pull-out (2D camera, not 3D dolly)
- parallax drift between cutout layers
- clouds/smoke drifting laterally
- paper elements sliding in from frame edge and settling
- halftone dots or texture shimmering gently
- a single element animating (flag waving, water rippling) while everything else holds
Explicitly forbid in every prompt: "no camera shake, no 3D rotation, no morphing of faces or text, no style drift, elements remain flat paper cutouts."
Poll each generation task to completion and download to clips/clip_NN.mp4. Generations fail or drift sometimes — review each clip; regenerate any where text warps or the style breaks. Budget for ~15% regeneration.
Stage 5 — Music (MiniMax Music 2.6)
One instrumental bed for the whole film. Request is_instrumental: true — vocals fight the narration.
Prompt formula: {mood} {genre-adjacent texture}, {tempo}, {instrumentation}, {arc}. Example for a history piece: "contemplative cinematic underscore, felt piano and soft strings with light percussion pulse, 90bpm, builds gradually from sparse to full, documentary style". Match instrumentation to subject (guzheng/dizi textures for the Tang piece; analog synth pulse for a tech topic).
Music 2.6 generates fixed-length songs; if the track is shorter than the film, loop it at assembly with a crossfade; if longer, trim with fade-out. Never let the music arc fight the film arc — a mid-track drop landing on a quiet beat is jarring, so audition the result against the film's shape.
Stage 6 — Assembly (ffmpeg, local)
Read references/ffmpeg-assembly.md for full recipes. The sequence:
- Conform each clip to its beat's VO duration (trim or hold last frame), normalize to 1920x1080 30fps.
- Concat clips in order.
- Build the VO track by concatenating beat audio with 0.5s gaps matching the video timing.
- Generate
subs/captions.assfrom the script — Vox-style burned-in subtitles: bold sans, white with heavy black outline, bottom-centered, max 2 lines, split narration at clause boundaries and time each chunk within its beat's window. - Mix audio: VO at full level, music ducked -12 to -15dB under narration (sidechain compression or a simple volume automation — recipes in the reference).
- Burn subtitles + attribution ("Made with ..." small lower-right if desired) and encode: H.264, CRF 18, AAC 192k,
-movflags +faststart.
Final QC pass before delivering: watch for (a) subtitle/VO sync drift, (b) music overpowering narration, (c) a clip whose motion loops visibly, (d) style drift between frames. Fix at the stage where the problem originated, not with assembly hacks.
Orchestration notes
- Run stages strictly in order the first time; after that, any stage can be re-run in isolation because all state lives in the project files.
- API generation is slow (video clips: 1–4 min each). Submit all animation tasks concurrently, then poll — don't serialize.
- Keep every prompt you send in a
prompts.logfile — reproducibility matters and users will want to tweak-and-regenerate single beats. - Cost scales linearly with beats. Quote the user a rough cost before Stage 3 (the first paid-heavy stage):
beats × ($0.10 image + ~$1.20 per 10s clip) + ~$0.50 audio.
References
references/vox-style-guide.md— read before Stage 1 and Stage 3. The visual grammar, writing voice, and prompt templates.references/atlas-cloud-api.md— read before Stage 2. Endpoints, model IDs, async task pattern, polling code, costs.references/ffmpeg-assembly.md— read before Stage 6. Conform, concat, subtitle, ducking, and encode recipes.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

