Illustration of what tldr-radio does: Self-hosted app that reads the daily TLDR newsletters aloud as podcast episodes

mat-nolen /

tldr-radio

Self-hosted app that reads the daily TLDR newsletters aloud as podcast episodes

TLDR publishes 14 newsletters, and reading them all takes time. TLDR Radio turns each one into an audio episode you can play while cooking or driving. You pick a date, press Broadcast, and a few minutes later the episodes are in your browser, one per newsletter, with each story as its own chapter.

It runs as two Docker containers: a FastAPI app with a plain JavaScript frontend, and Kokoro-82M speech synthesis on the CPU. The pipeline is fixed from start to finish. It fetches the archive page, parses it by page structure, fills in a script from templates and a pronunciation dictionary, and sends that script to the speech model. No language model summarizes or rewrites anything.

The README contrasts it with listen-to-your-newsletter tools that need an account, a subscription and access to your inbox. This one needs only Docker and about 8 GB of disk. It is meant for personal use, and the README asks you not to publish the audio.

What it does

  • Chapterized episodes

    Each newsletter becomes one episode and each story a chapter, with its section heading, the source summary and a link to the original. You can download an episode as a single tagged mp3.

  • Sponsor reads as skippable chapters

    Sponsor segments are read in a different voice as their own chapters, introduced with a spoken notice. They are on by default and can be turned off in Settings.

  • Overnight builds

    Set a time and timezone and the chosen newsletters are built automatically. It retries about every 25 minutes if an issue isn't posted yet, and can send an ntfy notification when done.

  • Station picker and voices

    All 14 TLDR newsletters can be put on the Desk for manual runs and/or in the overnight build. 68 voices are available, and you can audition them in Settings.

  • Player with resume

    The player has ±15 s skip, speed up to 2.5×, auto-advance, resume where you left off and keyboard shortcuts. It has light and dark themes.

What you could build

  • Listen to the TLDR AI or infosec newsletter on your commute.
  • Schedule overnight builds so fresh episodes are ready each morning.
  • Download a tagged mp3 of an episode and load it into a podcast or audiobook app for personal use.
  • Run a text-to-speech pipeline on a home server or homelab without any cloud service.
  • Study a small FastAPI and Docker project that talks to a local Kokoro TTS service.

Get started

Clone the repo (replace <you> with the repo owner's account, mat-nolen) and run make up, or docker compose up -d --build. The first run downloads about 5 GB and needs a minute or two to warm up. Then open http://localhost:7777, pick a date and press Broadcast.

git clone https://github.com/<you>/tldr-radio.git
cd tldr-radio
make up

Commands are copied from the project's README. Read it on GitHub for the full setup.

More in Image, video & audio

    ↑↓ to move, Enter to open, Esc to close