ideas.
July 04, 2026 2 min read self-hostedcreatoraicontent

Self-hosted podcast transcript and chapter generator

A watched-folder service that turns raw podcast audio into a full transcript, timestamped chapters, and a draft show notes post, ready to paste into your feed.

The idea

A small service that watches a folder for new podcast episode audio files. When one lands, it transcribes the full episode, segments it into named chapters with timestamps, and drafts show notes with a summary, key quotes, and links mentioned in the conversation. Output is a Markdown file plus a chapters.json a host can drop straight into their RSS feed or podcast player of choice.

Why build this

Solo podcasters and small shows spend an hour or more per episode on transcription, chapter markers, and show notes — work that's mechanical but still requires listening back through the whole recording. Whisper-class models are now fast and accurate enough to run this locally without per-minute transcription fees, and chapter markers are increasingly expected by listeners on Apple Podcasts and Overcast. Most existing tools either handle transcription only, or live inside a paid SaaS that wants the whole workflow. A self-hosted tool that does transcript, chapters, and show notes together, and stays entirely on the creator's own machine, fills a real gap for hosts who already self-host their media.

Stack sketch

  • Transcription: whisper.cpp or faster-whisper running locally (GPU optional, CPU works for typical episode lengths overnight)
  • Chapter + notes generation: Claude API call over the transcript, prompted to return chapter boundaries with timestamps and a show-notes draft as structured JSON
  • Folder watcher: a small Python service using watchdog, triggered on new .mp3/.wav files
  • Storage: flat files on disk — one directory per episode with audio, transcript.txt, chapters.json, notes.md
  • UI: a minimal local web page (FastAPI + HTMX) to review and edit chapters/notes before export, since automated output needs a human pass before publishing
  • Export: a button that writes chapters.json in the Podcasting 2.0 chapters format and copies notes.md to clipboard

Scope for v1

  • Folder watcher plus CLI: drop a file in, get transcript + chapters + notes out
  • Single audio format supported (mp3), single language (English)
  • Chapter detection based on topic-shift prompting against the transcript, not audio analysis (no speaker diarization)
  • Manual edit pass through the local web UI before export
  • Out of scope for v1: multi-speaker diarization, automatic feed publishing, video podcasts, multi-language support

Where it could go

Once the core pipeline is solid, speaker diarization (pyannote.audio) would let the notes attribute quotes to specific hosts or guests, which matters for interview-format shows. A second expansion path is direct feed integration — pushing the finished chapters and notes straight into Buzzsprout, Transistor, or a self-hosted feed via their APIs, closing the loop from raw audio to published episode without the creator touching a dashboard.

Beyond that, the same transcript-to-structured-output pipeline generalizes to YouTube video essays and conference talks, where chapter markers and searchable transcripts matter just as much and the audio extraction step is trivial to add.

Watch out for

Whisper's transcription quality drops noticeably on cross-talk and overlapping speech, which is common in interview podcasts, so set expectations that the transcript pass may need manual cleanup on multi-guest episodes. Chapter boundaries generated purely from text also tend to be too fine-grained without a minimum-length constraint in the prompt, so budget time to tune that before trusting the output unreviewed.