Turn your RSS feeds and ebooks
into a personal podcast

Nothing good to listen to on your runs and commutes? listenwhilerunning rewrites your own subscriptions into a two-host dialogue podcast every morning, and converts your epubs into serialized audiobooks — open source, zero backend, roughly $0/month.

Get it on GitHub → Try the live demo Hosted version ✉

What it does

📰 RSS → dialogue podcast

Your RSS feeds, subreddits, or any article URL get rewritten by an LLM into a natural two-host conversation, synthesized to audio, and delivered to your podcast app every morning.

📚 Ebooks → audiobooks

Upload an epub/PDF/txt/html from your phone; it becomes a serialized audiobook with an AI-generated "hosts discuss this book" intro. Generation runs ~10x faster than playback, so you can start listening within minutes.

📡 Standard podcast RSS

Apple Podcasts, Pocket Casts, Overcast — anything that can "follow by URL" just works. No platform lock-in, no app to install.

🏃 Runner-friendly player

A PWA web player with lock-screen controls, ±15s skip, speed, sleep timer, offline caching, and resume — open it once before you head out and listen offline.

🧱 Zero backend

A batch pipeline + object storage + a static page. Everything fits in Cloudflare's free tier (R2 10GB, free egress). No server to maintain.

🔓 Open source, AGPL-3.0

Your data stays in your own accounts. The LLM is any OpenAI-compatible endpoint — skip it and episodes fall back to plain readout.

Self-host it in three steps

Clone & install

git clone the repo, npm install, and fill two Cloudflare values in .env (comments tell you exactly where to get them).

One-command deploy

npm run setup creates the storage bucket, public domain, and admin token, deploys the player, and prints your player URL and podcast feed URL.

Start listening

npm run pipeline generates your first batch. Add GitHub Actions or cron for daily updates, and upload ebooks straight from the player.

Don't want to self-host? Join the hosted-version waitlist

We're evaluating a hosted version — sign up and listen, zero setup. Leave your email and you'll be the first to know; the length of this list directly decides how fast we build it.

FAQ

How is this different from NotebookLM's Audio Overviews?

NotebookLM generates audio for documents you feed it one at a time. listenwhilerunning is a pipeline: it watches your RSS feeds and book folder, generates audio on schedule, and pushes everything to one private podcast feed. Set it up once, and new audio just appears in your podcast app. It's also open source and runs on your own accounts.

What happened to apps like Recast and PlayNote?

They paid for TTS and LLM costs on behalf of their users, and shut down. This project inverts the model: the pipeline is open source and runs on your own free-tier infrastructure, so there's no burn rate to kill it.

How long does an epub take to convert?

Generation runs about 10x faster than playback. A 200-page book takes roughly 2–3 hours end to end, but the first episode is ready minutes after upload — you can listen while the rest generates and never catch up to it.

Can it read English books in Chinese, or vice versa?

It detects the book's language and switches voices automatically. There's also a built-in whole-book translation command, so you can listen to an English book as a Chinese audiobook.

What does it cost to run?

Storage and bandwidth: free (Cloudflare R2 free tier). LLM rewriting: pay-as-you-go, typically a few cents per day for 8 news episodes; optional. TTS: free for personal use via Edge TTS, swappable for any commercial TTS.