Point it at an RSS feed and you get a multi-voice podcast, written by Claude and
voiced by Deepgram Flux TTS. The first show built on it is the Deepgram developer changelog: every
Tuesday, six voices read the week's entries, and one small server publishes the episode. Here is
what it costs, how it works, and how to make one from your own feed.
$0.20Per episode all in, with Claude writing the script
$14.57Flux TTS for all 141 episodes, 5.9 hours of audio
$200Free credit every new Deepgram Console account starts with
Flux TTS is $0.045 per 1,000 characters on Pay As You Go, which works out to
about 4 cents per minute of finished audio. A year of weekly episodes runs about $10 all in.
Pricing as of 2026-09-25; see deepgram.com/pricing.
How it works
Read the feed. The pipeline pulls the changelog's RSS or Atom feed and turns
each day into markdown, one heading per entry. It needs the full post in every item. A feed of
teasers gives the writer one sentence per release.
Segment it. Entries are grouped into the window each episode covers and sorted
into fixed segments, with breaking changes always first, then launches, quick hits, and one
segment per product area.
Pick a cadence. Before the first episode, the feed's last 26 weeks decide how
often the show comes out: weekly, every two weeks, or monthly. It picks the fastest one where a
typical episode has about two minutes of material. This changelog stays weekly, and a quieter
one like Tailscale's goes monthly.
Set a delivery date. Each episode releases on a fixed weekday, the first one
at least two days after its window ends. This show covers Sunday to Saturday and releases
Tuesday, so Monday is a buffer for late entries. A scheduled job wakes up every morning at 5am
Pacific and only does anything on a release date.
Write. Claude turns the entries into a script for those segments. Code checks
the script before anything is voiced: segments in order, every link real, no URLs read out
loud.
Voice. One Flux TTS request per paragraph. Brooke anchors, and Drew, Kit,
Miles, Cole, and Elise each take a product segment and hand off to the next voice.
Check. Deepgram speech-to-text listens back to every episode and compares it
to the script. Average word error is 0.29%, and no episode is over 3%.
Assemble and publish. The clips join into one MP3 with chapters and a
transcript, the episode gets art drawn from the segments that aired, and it lands on this site,
in the podcast feed, and in the back catalog with its own cost receipt.
Build one yourself
The whole show is open source, and the repo comes with a quickstart. It's built
around changelogs, but any RSS or Atom feed with full posts works, and you can have your own show
running on your laptop in under half an hour. A quiet week costs about 20 cents to render, and a busy one closer to a
dollar.
Get two API keys.Deepgram
for the voices and the listen-back check (new accounts start with $200 in credit), and
Anthropic for the writer.
You also need git, Python 3.9 or newer, and ffmpeg.
Clone the repo and open it in Claude Code.
git clone https://github.com/samgutentag-deepgram/deepgram-changelog-podcast.git
cd deepgram-changelog-podcast
claude
Run /start with your feed.
/start https://your-site/changelog.rss
It checks your setup, tells you where to put your keys, plans the show from your feed, and
fills in the show's name and details with you one question at a time. It recommends a
cadence (weekly, every two weeks, or monthly), renders your first episode once you say go,
and opens your site.
Pick how many more. It tells you how many more episodes your feed supports
and what they'd cost, then renders as many as you choose. The back catalog fills in as they
land.
Rather do it by hand? Every step is in the
README.
Under the hood, every line in the show is one request like this. Swap the
model for a different voice and you have a second host.
curl -X POST \
"https://api.deepgram.com/v2/speak?model=flux-brooke-en&encoding=linear16&container=none&sample_rate=24000" \
-H "Authorization: Token $DEEPGRAM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Kit has the Voice Agent updates next."}' \
--output line.raw