Behrad Khodayar is a software engineer. He likes building well-architected, highly scalable, high-performance systems. He is interested in distributed systems & AI. Languages: English, Persian, Turkish.
Introducing Repodify: turn a stretch of a podcast into one tailored digest
RepodifyPodcastsLocal AI
Originally published as an X article (September 8, 2026). Source on GitHub.
Suppose it's 2026 & u're new to ML.
U don't want another "attention is all you need" explainer. U want the history (how the field actually talked about itself while it was happening). The podcasts are there. They're also 300 episodes long.
So I built Repodify.
Search a show, pick a stretch of episodes & it writes u one shorter, tailored digest. It runs on ur GPU, or w/ ur own keys (BYOK). Not mine. Not a SaaS that keeps the audio.
Today I pointed it at the show that basically is that history.
Why?
I didn't start this to ship another wrapper around Whisper.
I started it b/c I wanted to listen through a field. Linear Digressions is the perfect specimen (or TWIML, etc): a decade of ML explained while the papers were still warm. U cannot do that by "saving 12 episodes to a playlist." U need a through-line.
Repodify is that through-line, generated on hardware u control, steered by a prompt u wrote.
Translate it. Augment it. Cut it to 12 minutes. Keep the original cast on ur laptop for a class. That's the product.
Most "AI podcast" tools are a cloud tab that keeps ur audio & bills u per min. Repodify is the opposite on purpose.
What?
Search for ur desired podcast name (or paste its link), pick the episodes u want, & Repodify creates a single chronological episode u can stream or download.
Under the hood it's a linear pipeline. U pick a stretch of a show; it does the rest:
Stage
What it does
Resolve
Search / paste → live RSS → episodes, oldest first
Download
Pull the selected audio onto ur machine
Transcribe
Speech-to-text (local Whisper, or BYOK)
Diarize
Who spoke when, clustered across episodes (optional)
Summarize
LLM map: one summary per episode
Arc
LLM reduce: one chronological through-line
Script
A spoken script sized to a target duration
Synth
TTS (stock voice, or cloned — see the guardrails)
Assemble
digest.mp3 + chapters + show notes
Every ML stage asks u: local GPU, or BYOK? U can mix them. Whisper on the box, LLM through ur OpenRouter key, TTS through Kokoro, whatever u've actually got.
It's MIT. It's a PWA. ./launch is the whole stack.
The experiment
Linear Digressions (Katie Malone &, in the early years, Ben / Phoebe) started in November 2014. I took the first five episodes, oldest first:
Hunting for the Higgs — Nov 16, 2014 · 10 min
How Outliers Helped Defeat Cholera — Nov 22, 2014 · 11 min
Computers Try to Tell Jokes — Nov 26, 2014 · 9 min
Stats of World Series Streaks — Dec 17, 2014 · 13 min
Facial Recognition with Eigenfaces — Jan 7, 2015 · 10 min
That's ~53 minutes of 2014 data science: the LHC, John Snow's pump, a joke-writing model, baseball as a binomial, PCA on faces.
I did not clone their voices. Cloning in Repodify is labeled, disclaimed, watermarked & meant for local/educational use, but possible; & using someone's voice in public is a legal line I won't cross. This run is a single stock narrator.
The digest that came out is 7 mins 40 secs. Wall clock, start to finish: 6:42.
What the pipeline actually did
Search "Linear Digressions" → 323 episodes load from the live RSS → sort oldest → check five boxes → one custom instruction:
Write a chronological time capsule of how data science was taught in late 2014.
Then the gates. Every ML stage asks u: local GPU or BYOK?
Whisper on an RTX 4060 Laptop (my personal machine) for this run. LLM & speech through my own OpenRouter key. Next job I can flip any stage to Ollama / Kokoro / F5 & leave the rest hosted.
Chapters it cut:
0:00 Unveiling the Higgs with Machine Learning
1:34 Outliers and the Birth of Epidemiology
3:19 The Challenge of Computer Humor
4:52 Statistical Unpredictability in Baseball Playoffs
6:18 Decoding Facial Data with Eigenfaces
That's the 2014 syllabus, in order, in one sitting.
The whole run, 4×:
Search → first five Linear Digressions → transcribe on-box → my OpenRouter key for the script → stock narrator. 4×.
How?
Two processes, ur machine: FastAPI + an arq worker. They never call each other. They share Redis, SQLite/Postgres & a folder of files. The API stays a thin HTTP layer; the long GPU-bound pipeline runs on the worker, paused at each gate so u can pick local vs BYOK without losing the job if u close the tab.
Ports, not a pile of SDKs. STT, LLM, TTS, diarizer, cloner, watermarker — each is a Protocol w/ a Fake. Tests never touch a GPU or the network. ./launch --fake walks the whole flow on CPU w/ no keys.
U pick the backend at the gate. That's the whole point of the UX. The pipeline is resolve → download → transcribe → diarize → voices → summarize → arc → script → synth. Nodes marked as gates call LangGraph interrupt(), persist a SQLite checkpoint, & wait. U can shut the app down mid-job & pick it up later.
Cloning is not a silent default. If u do clone, the show notes say synthetic: true, a spoken disclaimer is prepended in a non-cloned voice, & AudioSeal watermarks the file. There is no "looks original" path.
That's it. ./launch syncs deps, starts Redis, & runs the API, the worker & the web app together.
GPU on the box → real local backends, no cloud required.
No GPU → a short BYOK wizard so u can plug in ur own keys.
No GPU && no keys → ./launch --fake still walks the whole flow.
When it's up:
Built app http://localhost:8000/app/
U need uv, Python 3.13, Node 20+, & Docker or Podman (for Redis). Real runs also need ffmpeg & a CUDA GPU. Press Ctrl-C to stop. make stop halts the containers.
Wdyt?
Go grab it, it's MIT licensed. If this is useful, let me know what u like most about it. If u break it, open an issue. If u build the episode u wish existed, tell me. Finally, if u need a feature, plz lmk.
Linear Digressions is Katie Malone's show. This digest is a synthetic, educational remix, not the original, not affiliated, not a substitute for listening to them. If u haven't heard the real thing, start at lineardigressions.com.