Every Long Arc film is made by a single operator driving a production line I built myself. This page is the honest version of how it works — what each stage does, what it costs, and where the guardrails sit.
Twelve to twenty dated, attributable facts, each with a source. No fact reaches the script without one — every number that appears on screen has to trace back to something real, because the validator will reject it otherwise.
<topic>_research.mdThe research becomes a beat sheet of twelve to fourteen movements, each one narration plus a list of shots. This is where editorial judgement lives: what the argument is, where the turn comes, and which beats can stand alone as a Short.
SEQ (movements + shots)Every shot gets a prompt. The house rule runs through all of them: the subject is modern, the treatment is archive. A single shared style prefix states the look once, so it can never drift between episodes.
IMAGESStills are generated at 1536×1024 with a pinned high-quality model setting. Generation is resumable: anything already on disk is skipped, so a failed batch never costs the whole run.
images/*.pngStills become moving shots at 720p, with the model chosen per shot: premium where a face is on screen, cheap where there are no people. Anything ambiguous goes premium — a mangled face costs more than thirty-five cents. Where motion is refused or capped, the shot falls back to a slow Ken Burns push. The film never blocks on a clip.
clips/*.mp4Scripted narration, synthesised a movement at a time and paced deliberately slow. The engine reports the exact duration of every movement, and those numbers drive all the timing further down the line.
audio/mv_*.mp3 + durations.jsonAn original bed, a sting and a motif per episode. The bed is mixed low and ducks under the narration, so the voice always sits on top.
music/score_*.mp3Shots are assembled into segments and the archive grade is applied — saturated, unstable tape with blooming highlights, chroma bleed and crawling grain. The look lives in one shared module, so the whole channel stays visually consistent.
seg/ + timeline.jsonThe audio-driven timing pass: every movement's voice-over is fitted to its visual span, with the overrun spread across shots rather than dumped on the last one. It runs on every ratio, which is what keeps the three masters identical in length.
Segments, narration and score are muxed into the 16:9 master with a consistent mix and a lead-in before every movement.
<TOPIC>.mp4 (1920×1080)The same film is rendered natively at 1080×1080 and 1080×1920 — cards and typography are regenerated for each shape, not letterboxed. All three masters must report the same duration before anything ships.
_1x1.mp4, _9x16.mp4Each master is compressed under the messaging limit, decode-verified with zero errors, and delivered with an idempotency marker so nothing can be sent twice.
Archival title cards, not YouTube furniture: one image, one short phrase, one colour decision, and a small plain wordmark. Judged at 320×180 — if the phrase is unreadable at that size, it gets simplified.
thumbs/thumb_{16x9,1x1,9x16}.pngStandalone vertical cuts assembled from the episode's own narration — never a random trim. The beats that survive cold, with their own opening and a line that lands, are recorded in a spec and rendered by a tool.
shorts/*.mp4 + manifestFilm and Shorts are pushed to YouTube, the poster is set and then verified against the live CDN image rather than assumed, and every upload is recorded in a ledger so a re-run can never duplicate it.
Generated stills for the latest film, before motion and grade. These become moving shots in stage 5, then get the archive treatment in stage 8.
Maps are real geography with real place names, never invented diagrams. Charts must state their units and trace every number to a dated source — an unlabelled axis is treated as a bug, not a style choice.
The grade and the thumbnails aim at one thing: a lost documentary found in an archive, rather than something generated last week.
The same story ships in three aspect ratios, each rendered natively so the typography is rebuilt for the shape rather than cropped into it. The film goes to the big screen, the feed, and the phone.
The parts that stop the pipeline quietly shipping something wrong. Every one of these exists because it caught a real failure.
Runs before any render. Fails the build if a chart title is meaningless, an axis has no units, or infographic cards take more than a quarter of the running time. Footage is the meal; cards are the garnish.
Every shot with people in it must name the local population — and the validator fails the build if it doesn't. A film about a place has to show that place's people.
Named figures are generated from a real reference photograph and then compared back against it before anyone is named on screen. No identity is asserted without a visual check.
Every deliverable is decoded end to end and must report zero errors before it is sent. A file existing is not evidence that it plays.
The pipeline is metered as it runs, per service, and the model routing decisions in stage 5 were chosen on measured cost rather than taste. Where a premium model is only needed for faces, the rest of the film uses a cheaper one — that single routing change cut one episode's motion cost by roughly half without losing a face.