From the Lab

Podcast Digest Template

turn a week of podcasts into one Slack digest

pythongemini-flashslacklaunchd
$ cat problem.md

The Problem

There's more worth-listening-to content than there are hours to listen. Podcasts pile up, you fall behind, and the good ideas you wanted to catch are buried in three hours of audio you'll never get to.

I didn't want to replace listening — I wanted a way to triage. Tell me what each episode actually covered so I can decide what's worth my ears, and keep a searchable record of the stuff I'd otherwise forget.

$ cat solution.md

The Solution

I built a template that turns a list of podcasts into a weekly digest, delivered where I already am.

The pipeline:

  • Pull the auto-generated captions straight from YouTube (no audio download, no transcription cost)
  • Summarize each episode with Gemini 2.5 Flash — cheap and fast enough to run across a whole week of shows
  • Post a clean digest to Slack, one section per episode

It's set up to run on a schedule with launchd, so the digest just shows up — I don't go fetch it.

Template: podcast-digest-template

$ cat stack.md

Technical Stack

A lightweight content pipeline you can repoint at anything:

  • Python — the pipeline glue, intentionally simple
  • YouTube auto-subs — free captions as the source text, no Whisper run needed
  • Gemini 2.5 Flash — fast, cheap summarization at weekly-batch scale
  • Slack — delivery to where I already read things
  • launchd — macOS scheduling so it runs hands-off

Swap the source (any feed of transcripts), swap the model, swap the destination — the shape is "fetch text → summarize → deliver on a schedule," which generalizes well beyond podcasts.

$ cat impact.md

Impact

Triage, not transcription

The win is staying current without drowning. Instead of a backlog of three-hour episodes, I get a scannable digest and decide what's worth a full listen.

As a pattern, this is the bones of a lot of useful internal tooling: a recurring "here's what happened" summary, delivered to the channel people already watch. Repoint it at release notes, support threads, or research feeds and it's the same machine.

THE RECEIPTS

Four steps

YouTube auto-subs  →  Gemini 2.5 Flash  →  format  →  Slack
      (source)          (summarize)        (digest)   (deliver)

No audio download, no transcription bill — it rides on the captions YouTube already generates. Scheduled with launchd so the whole thing runs on its own each week.

Same machine, different feed

The template is podcasts, but the shape is generic:

  • fetch text from some recurring source
  • summarize with a cheap model
  • deliver to where people already look

Point step one at release notes, changelogs, support tickets, or a research feed and you've got a different internal tool with the same skeleton.

← Back to the Lab