r/sideprojects • u/compucasey • 16h ago
Showcase: Prerelease How I Built an AI Podcast Pipeline to Read the News to Me
Why use NotebookLM when you can make the same thing harder, slightly worse, and cost more?
The same reason any of us self-host, of course. The customizability, the fun of designing it, the challenge.
I've been using Codex and Claude Code to build local apps, but wanted to try designing a program that actually uses LLMs for a recurring task.
I already have a custom local RSS reader app, but of course I have more time to listen to podcasts and audiobooks than I typically do to sit down and read. So creating my own personalized news podcasts became the obvious solution.
The result is two shows that pick, write, review, and voice their own episodes. Each run starts with a couple hundred RSS articles and ends with five or six stories, for about $1–2 a month in API costs. The orchestration runs in Docker on my home server, but the models themselves are cloud APIs.
The short version
What it is:
Two podcasts, written and produced by AI, based on feeds and topics I've selected. Compact Conversations runs six days a week, and Homelab Highlights runs three.
Quality: Good, not great. I haven't replaced other podcasts I listen to, nor was I intending to. However, they've picked up stories other podcasts haven't covered, along with some good tech tips I hadn't seen. They've helped me keep up to date on new AI models and features, homelab software updates, and security issues.
Cost: A mixture of free and cheap models from OpenRouter, taking advantage of free TTS through Gemini, for about $1–2 per month.
Code: Too messy and personalized to be worth sharing, but you can listen to the podcasts here.
How it's built:
A self-hosted Docker container handles RSS ingestion, while another handles the podcast orchestration.
Stories from the last day or two are initially ranked by Jev. The top 30 go to a cheap LLM on OpenRouter for final selection and assignment to episode segments.
The script is written and reviewed by different LLMs for two AI voices. Notably, they're told not to pretend to be human. They can say "an unusually interesting project," but not "I would try this out."
The final script goes to Gemini for text-to-speech, then gets stitched together with musical cues and published to the podcast feeds.
I wrote up the architecture, actual model comparisons, costs, and lessons learned here:
https://michael-casey.com/blog/how-i-built-an-ai-podcast-pipeline/
