Download skill
Aerial view over the redwood canopy of Endor with a gas giant rising above the horizon
Endor · MiniMax H3 · Directed by Claude Fable 5.1
Volume I · Eight films · September 2026

Write the script.
Get the film.

One skill turns a twenty-shot script into a finished documentary: generated footage, a broadcast narrator, sound beds, an orchestral score, titles, captions, and a social cut. Every film below was made this way, and each one credits the model that directed it.

8
finished films, 33 minutes of generated footage
4
directing models: Claude, Qwen, GLM, and a head-to-head
10
stages, each a resumable script
16
field notes from things that went wrong
The films

Eight worlds,
one pipeline.

From a real shoreline at the top of the world to the desert planet of Dune. Each spread credits the tools the way a magazine credits a photographer: the model that wrote and directed, the video model, the narrator, the sound, the score, and the edit.

01
Cover story · September 2026 · 2:04

ArrakisThe Desert Planet

Shai-Hulud, the spice, the Fremen sand-walk, and Arrakeen under a Coriolis storm. The film was shot twice: first on MiniMax H3, then again on Seedance 2.5 after a seven-model bake-off, which gave the more cinematic worm. A Waking Life rotoscope pass was tried and retired.

Directed
Claude Fable 5.1
Video
Seedance 2.5, ByteDance via Fal, 1080p
Voice
ElevenLabs, Daniel
Sound
ElevenLabs SFX v2
Score
ElevenLabs Music via Fal
Edit
ffmpeg, Pillow
Shots
12
02
September 2026 · 4:22

EndorThe Forest Moon

Speeder bikes through the redwoods, the Gorax on the ridge, Bright Tree Village, the shield generator, and the unfinished Death Star hanging overhead. Five Ewok shots were regenerated after the first pass drifted off-species; the fix was to describe them the way a costume department would.

Directed
Claude Fable 5.1
Video
MiniMax H3, 2K
Voice
ElevenLabs, Daniel
Sound
ElevenLabs SFX v2
Score
ElevenLabs Music via Fal
Edit
ffmpeg, Pillow
Shots
20
03
Head to head · August 2026 · 5:00

Endor: Two StoriesQwen 3.8 Max versus GLM 5.3 Flash

The same moon, the same footage model, the same narrator, and two directors who never read each other's work. Each model wrote its own script, chose its own shots, wrote its own MiniMax prompts, and wrote the replacement prompts for shots that failed review. The chapters run back to back with visible credits, so the comparison is the film.

Where Giants Fell
Chapter one · 0:00 to 2:30
Qwen 3.8 Max
Sanctuary: The Moon That Ended an Empire
Chapter two · 2:30 to 5:00
GLM 5.3 Flash
Video
MiniMax H3, 768p upscaled to 1080p
Voice
ElevenLabs, Daniel
Score
The Endor score, recut into two arcs
Edit
Codex production run, ffmpeg
The Gorax striding across a mountain ridge on Endor at dusk
The Gorax, thirty meters tall and worshipped as a demon, crosses the ridge above the treeline.
Endor · MiniMax H3 · dir. Claude Fable 5.1
The city of Arrakeen beneath an approaching wall of sandstorm
A Coriolis storm, kilometers high, arrives over Arrakeen.
Arrakis · Seedance 2.5 · dir. Claude Fable 5.1
04
August 2026 · 4:11

BespinA World Without Ground

A gas giant with no surface, a thin Life Zone a hundred and fifty kilometers down, and the creatures that float in it: beldons the size of starships, the velkers that graze on them, and the rawwks that hunt the gaps between the herds. The hook cold-open was invented here: shot one plays clean and the title lands on shot two.

Directed
Qwen 3.8
Video
MiniMax H3, 2K
Voice
ElevenLabs, Daniel
Sound
ElevenLabs SFX v2
Score
ElevenLabs Music via Fal
Edit
ffmpeg, Pillow
Shots
20, plus six remix clips
05
August 2026 · 5:01

ScarifThe Vault in the Water

The most beautiful water in the Outer Rim is the one nobody is allowed to swim. Green turtles nesting on the cays, frigatebirds over the lagoon, blacktips hunting in knee-deep water, and a monsoon that arrives as a wall. Twenty-eight shots, the longest edit in the set.

Directed
Qwen 3.8
Video
MiniMax H3, 2K
Voice
ElevenLabs, Daniel
Sound
ElevenLabs SFX v2
Score
ElevenLabs Music via Fal
Edit
ffmpeg, Pillow
Shots
28
06
August 2026 · 4:23

TatooineLife Under Two Suns

A world that is born twice every morning. Banthas in slow procession, dewbacks drinking the fog, womp rats in the rocks, and the krayt dragon that hunts by vibration. Re-edited from the original clips with a cold-open and varied pacing; no new footage was generated.

Directed
Qwen 3.8
Video
MiniMax H3, 2K
Voice
ElevenLabs, Daniel
Sound
ElevenLabs SFX v2
Score
ElevenLabs Music via Fal
Edit
ffmpeg, Pillow
Shots
20
07
August 2026 · 2:49

The Asian LionKing of the Ancient World

Two thousand years ago a different king ruled from Greece to the Ganges. Smaller than his African cousin, with a thinner mane, and no less a king. The only lion that shares its world with the tiger.

Directed
Qwen 3.8
Video
MiniMax H3, 2K
Voice
ElevenLabs, Daniel
Sound
ElevenLabs SFX v2
Score
ElevenLabs Music via Fal
Edit
ffmpeg, Pillow
Shots
20
08
August 2026 · 4:55

SanirajakThe Shoreline at the Top of the World

Hall Beach, Nunavut. Dark ice stained by the seabed, walrus on the floes, the return of the sun, and the people who wait for the ice. The first film, and the one the skill was written from.

Directed
Qwen 3.8
Video
MiniMax H3, 2K
Voice
ElevenLabs, Daniel
Sound
ElevenLabs SFX v2
Score
ElevenLabs Music via Fal
Edit
ffmpeg, Pillow
Shots
20
Narration was first tried with Orpheus TTS on Fal and rejected for its pace; every film since uses ElevenLabs.
Directors

Who wrote
the film.

The skill is the crew. The director is the language model that reads the brief, researches the place, writes the five-act script and every narration line, and authors the video prompt for each shot. The same crew has now worked under three directors.

DirectorFilmsNotes
Claude Fable 5.1Arrakis, EndorRan the whole pipeline in one session, including the model bake-off and the Ewok regeneration.
Qwen 3.8Sanirajak, Tatooine, The Asian Lion, Scarif, BespinDirected the first five films and the two re-edits.
Qwen 3.8 Max and GLM 5.3 FlashEndor: Two StoriesOne chapter each, independently written and shot, cut together for comparison.
The pipeline

Ten stages,
one afternoon.

Each stage is a small Python script that reads script.json and writes files beside it. Every stage is resumable, so a crash or a rate limit never costs a regeneration. Video is the expensive part; everything after it is free to redo, and the mix is rebuilt from scratch every time.

01

Research and story

Five acts over twenty shots: awe, predator tension, the return of light, the people, and a full-circle ending that echoes the opening line.

02

The script script.json

Per shot: a title, one or two sentences of present-tense narration, a field-recording description for the sound bed, and a video prompt. Per-shot duration and a free trim set the rhythm.

03

Footage generate.py

One test clip to validate the prompt style, then every shot submitted to Fal's queue in parallel. MiniMax H3 at 2K by default; Seedance 2.5 when the subject wants more drama.

04

Narration narrate.py

ElevenLabs multilingual v2, the voice Daniel, slowed to 0.85 for a broadcaster read. Every line is probed and must fit its clip with a second to spare.

05

Sound beds sfx.py

One ambience bed per shot from ElevenLabs text-to-sound. These replace the clips' native audio entirely, so cuts never jump between generated music tracks.

06

Score music.py

ElevenLabs Music through Fal with a five-section composition plan that mirrors the acts. One call, one continuous instrumental piece.

07

Assembly assemble.py

Video re-encoded to uniform parameters and concatenated. Audio rebuilt in sequential passes: per-clip loudness normalization, narration master, summed bed, sidechain ducking, linear master to −15 LUFS.

08

Title cards titles.py

Pillow renders transparent cards from the script's title fields. Shot one plays clean and the title lands on shot two, so the film opens on action, not branding.

09

Captions captions.py

Each narration line rendered as an overlay and burned in one hardware-encoded pass, wrapped at the punctuation nearest the middle.

10

Social cut twitter.py

No fade from black. A hook offset starts the film on the money shot so the preview frame is the breach, the reveal, the chase.

Install

Five minutes
to first film.

The skill is a folder: a SKILL.md that Claude Code reads, and the scripts you copy into each film's project directory. You need a Fal key for video and music and an ElevenLabs key for narration and sound. A five-minute film costs about a hundred dollars, nearly all of it footage.

  1. Unzip into your skills folder. Claude Code discovers it; ask for a documentary about anything and the skill takes over.
  2. Put the two keys in a .env inside each film's folder. Never commit it.
  3. Install the Python dependencies and ffmpeg. Any standard ffmpeg works; text is rendered with Pillow.
  4. Write script.json and run the stages in order. Titles, captions, and filenames all derive from the script.
# install the skill
unzip ai-documentary-skill.zip -d ~/.claude/skills/

# start a film
mkdir arrakis && cd arrakis
cp ~/.claude/skills/ai-documentary/*.py .
printf 'export FAL_KEY=...\nexport ELEVENLABS_API_KEY=...\n' > .env
python3 -m venv .venv && .venv/bin/pip install fal-client requests pillow

# write script.json, then run the stages
source .env
python generate.py      # footage, the expensive step
python narrate.py       # narration
python sfx.py           # ambience beds
python music.py         # score
python titles.py && python assemble.py
python captions.py
HOOK_IN=4.5 python twitter.py
Field notes

Things that went wrong first.

The skill encodes every bug hit across eight films. The ones that cost real money or real hours:

Never use a clip's native audio as the score. Video models generate music per clip, so every cut is a key change. Mute it and build score, beds, and voice separately.

Never stream-copy H3 clips into a concat. Their timebase corrupts the timeline when mixed with re-encodes: 247 seconds of segments became a 454-second file. Re-encode every segment first.

amix quietly renormalizes. It ate the narration. Sum with amerge and pan instead.

Single-pass loudnorm is dynamic. It pumps quiet sections up. Measure, then apply one linear gain.

One giant filtergraph is undebuggable. Sequential file passes let you listen to every intermediate.

A single-frame PNG plus a fade is invisible. Loop it into a stream before the alpha fade, and set an end action or the encode never finishes.

Fal's ElevenLabs SFX endpoint is broken. It hardcodes a deprecated model. Call ElevenLabs directly.

Social previews show frame zero. A fade from black kills click-through. The social cut opens mid-action.

Off-model creatures break the spell. Ewoks drifted into lemurs and gremlins until the prompt described them explicitly and crowds were capped at five.

Restyle passes have hard limits. Gemini's video edit rejects inputs over eight seconds; split with overlap and dissolve, or skip the pass.

Clips are the expensive part. Fix pacing, mix, and titles downstream. A trim is free; a regeneration is two dollars a clip.