Project · Self-directed · Automation · AI · Media
AI content pipelines: The Ninth Volume, The Ninth Archive, TFCD
Idea → script → human approval → images → narration → render → publish → anthology, as n8n pipelines running on the Pi.
- content brands
- 3
- workflows per brand
- 7
- human step: approve
- 1
Summary
Three content operations run on the same architecture: a weird-fiction story channel, a documentary-style entity archive, and The Food Compliance Desk, a channel showing BRCGS Food Safety Issue 9 workflows with Microsoft Copilot. Seed banks feed idea generators, Gemini drafts scripts, I approve each one from an email form, and render services produce long-form video, Shorts and TikTok clips. Approved stories are compiled into KDP anthologies.
The problem
Content pipelines break in quiet ways. Approvals time out without anyone noticing, renders fail while the run is marked as a success, and the same story gets regenerated again and again.
Why I built it
To find out how far a one-person content operation can go when the human only does the parts that need taste: picking ideas and approving scripts.
The solution
Every stage writes back to a content plan sheet. Approval is a hard gate. Heavy work goes through the Pi Ops lock, and publishing only marks a row as done after the platform confirms the post.
What it does
- Seed banks with least-used-motif selection and deterministic tie-breaks, so ideas don't cluster.
- Gmail send-and-wait approval forms (Approve / Request changes / Decline) with one bounded revision round.
- Per-scene Gemini images, narration in a cloned voice, and animated renders with camera moves, transitions and captions.
- TikTok posting through Buffer's GraphQL API. A row is only marked posted once a post ID comes back, so a failure retries the next day by itself.
- An anthology readiness check queues a KDP print volume once about 200 pages of approved stories exist.
- Found why TFCD had gone silent for weeks: when an approval timed out, the switch node matched nothing, and n8n recorded a success.
Technologies, and what they're for
- n8nSeven workflows per channel, from ideas to publishing
- GeminiScripts, metadata, hooks, scene images, thumbnails
- Chatterbox (voice-render)Self-hosted TTS in my cloned voice
- Python + ffmpeg render servicesLong-form, Shorts, captions, stingers, end cards
- Google Sheets + DriveContent plans, script library, asset storage
- YouTube + Buffer (TikTok)Distribution
- KDP PDF renderingPrint anthologies and handbooks
AI involvement
- Gemini agents for scripts and metadata
- Gemini image generation per scene
- Self-hosted voice cloning (Chatterbox)
- Microsoft Copilot as the subject of the TFCD tutorials
Automation
- Nightly idea generation
- Email approval gates
- Render and polling loops with timeouts and retries
- Daily Shorts/TikTok publishing
- Anthology compilation
Infrastructure
- voice-render, makeit-media, shorts-render and a stitcher, all in Docker on the Pi
- Moved from n8n Cloud and Google Cloud Run to the Pi
Hard parts
- CPU starvation: uncapped TTS inference starved n8n's event loop and crashed it. Fixed with container CPU caps and CPU shares, then load-tested under a 40-minute inference job.
- An 'Expression timed out' error while polling turned out to be oversized items carrying media through the workflow. The rule now is that files go to Drive and only their references travel through n8n.
Outcome
Distribution is live on YouTube and TikTok. TFCD published its first rendered video in July 2026. Fixes from each pipeline are ported to the others, since all three share one architecture.