Telling Technology · Learning in public
All episodes
EP.11 — MEDIA FACTORY
The whole creative stack, one terminal

My AI makes, edits, and posts my videos — I just type the idea

The media agent everyone copies lives in a wall of n8n nodes plus a paid posting tool. I rebuilt the whole thing inside the place I already work — Claude Code. I type an idea in chat: it expands the prompt, generates the video, captions it and cuts the dead air, and drops the finished Reel in a queue. Make, edit, post — without me touching three apps.

A single Claude Code terminal acting as a media factory: a typed idea flowing through three glowing stages — generate (a video frame appearing), edit (a captioned clip), post (a queued Reel) — all inside one chat window, house aurora-teal style
⌁ idea → video → captions → queued Reel · one chat
First: why I tore the media agent out of n8n
01 The setup · one terminal instead of a node wall

The popular media agent is a wall of nodes. I wanted it where I already live.

Everyone copies the same build: an "ultimate media agent" wired across dozens of n8n nodes, with a paid posting tool bolted on to push the clips out. It works — but it lives in a browser tab I have to babysit, and the posting alone runs $29–50 a month. I already spend my whole day in Claude Code, talking to it in plain English. So I rebuilt the agent there: same three jobs — make it, edit it, post it — but each one is a command I type in the chat I'm already in.

claude code — desktop
> i don't want the media agent in n8n with a paid poster bolted on. rebuild the whole thing inside claude code — generate, edit, post — as commands i type in chat. where do we start?
Three skills, one terminal. /media expands an idea and fires the video generator. /make-a-video captions and trims the clip. postiz — self-hosted, free — queues the finished Reel. Same pipeline as the n8n build, minus the browser tab and the $50/mo poster. Everything you do already lives in this chat.
A split comparison: on the left a dense wall of n8n nodes plus a paid posting-tool logo with a price tag, on the right a single Claude Code chat line doing the same job, house aurora-teal style
before / after
a tab full of nodes + a paid poster → three commands in one chat
02 The build · make it, then edit it — in chat

Type the idea; it writes the prompt, generates the clip, then captions and trims it

Phase one is /media make a vertical about AI routing. Claude takes that half-sentence, expands it into a full shot prompt, and fires Sora 2 or Veo 3 through kie.ai. The finished video lands in Google Drive and the run is logged. Phase two is /make-a-video clip.mp4 "captions + cut dead air" — it runs the clip through a HyperFrames edit pass with word-level Whisper captions and trims the silences. Both phases happen in the same chat window. I never open a video editor.

claude code — desktop
> /media make a vertical about AI routing
> /make-a-video clip.mp4 "captions + cut dead air"
Expanded the idea → fired Sora 2 via kie.ai → 9:16 clip saved to Drive, run logged to runs.md. Then HyperFrames burned in word-level captions and cut 6.2s of dead air. Finished Reel ready to queue — and I never left the chat.
A Claude Code chat showing two commands running: /media expanding a one-line idea into a full prompt and firing kie.ai, then /make-a-video adding word-level captions and trimming a clip's waveform, house aurora-teal style
generate → edit
/media fires the generator · /make-a-video captions and trims
03 The honest part · the posting half isn't fully hands-off yet

The free poster is in. The "post everywhere on its own" part is still waiting on the platforms.

Phase three swaps the paid posting tool for self-hosted Postiz — one Docker container, $0 a month, queues posts on a schedule. That part is real and running. The honest caveat: only YouTube posts hands-off today. TikTok and Instagram both need platform API approval, and those OAuth applications are still pending. So right now the pipeline takes me from idea to a finished Reel sitting in the queue, and I flip it live on the platforms that aren't approved yet. Fully autonomous posting is one approval away, not one bug away.

claude code — desktop
> queue the finished reel to all platforms via postiz
Queued to Postiz. YouTube: scheduled, fully hands-off. TikTok + Instagram: held in the queue — platform OAuth pending approval, so they post on my tap for now. Cost to replace the $50/mo poster: $0. Audit trail written to runs.md.
A self-hosted Postiz dashboard showing a scheduled YouTube post marked live and TikTok and Instagram rows marked 'pending platform approval', with a $0/month badge, house aurora-teal style
phase 3
YouTube auto-posts · TikTok + IG queued, awaiting platform OAuth
⚠️

"Autonomous" has an asterisk — and I'd rather show it than hide it

The generate and edit phases are genuinely one command each. Posting is where reality bites: TikTok and Instagram won't grant API posting access until an app review clears, and that's out of my hands. So the demo you'll see ends with a queued Reel, not a published one on every platform. When the approvals land, the same pipeline posts everywhere without me — but I'm not going to pretend it already does.

04 The receipts

The command, the generator, the pipeline, and the bill

Four pieces of the factory: the /media command expanding a one-line idea, kie.ai rendering the clip, the three-step pipeline on one diagram, and the cost line that made this worth building. Tap any image to enlarge it and read the exact prompt that drew it.

GENERATED → EDITED → QUEUED WHILE BUILDING THIS PAGE

One sentence in chat. A finished Reel in the queue.

That's the payoff. I type a topic in the chat I'm already in — the prompt gets written, the video gets generated, the captions get burned in, the dead air gets cut, and a finished vertical Reel lands in the queue, with every step written to runs.md as an audit trail. The kicker writes itself: the same AI that writes my scripts now also makes, edits, and ships them — the whole creative stack collapsed into one terminal.

A finished vertical Reel thumbnail sitting in a Postiz queue beside a runs.md audit log listing generate, edit and queue steps with timestamps, all framed inside one Claude Code terminal, house aurora-teal style
idea → prompt → generate → caption + trim → queued · full audit log in runs.md
06 Steal this

Build your own one-terminal media factory

The /media generate skill, the /make-a-video caption-and-trim skill, the self-hosted Postiz docker-compose, and the runs.md audit pattern. Everything in this episode is free and open — clone the demo, drop in your own keys, run it from your own chat.

skill /media (generate) skill /make-a-video compose self-hosted Postiz pattern runs.md audit log
run it gh repo clone jacobskogstrom/claude-media-factory ~/claude-media-factory && cd ~/claude-media-factory && cat README.md

No GitHub? Comment MEDIA on the post and the bot DMs you the link.

Next episode

The day the posting switch flips on

Right now the factory ends with a queued Reel and one manual tap on the platforms that aren't approved yet. Next: the platform OAuth lands, I flip the switch, and a typed idea posts itself to YouTube, TikTok, and Instagram with zero taps — I'll show the first fully hands-off run, end to end.

Darkened teaser — a posting queue with YouTube, TikTok and Instagram rows all flipping from 'pending' to a green 'posted' state at once, no human tap, house aurora-teal style
drops next · follow @bitesizeai so you don't miss it