The idea
A CLI that takes a list of podcast RSS feeds, downloads new episodes as they publish, transcribes them locally with whisper.cpp, and indexes the transcripts into a searchable local database. Run podgrep "that thing about vector databases" and get back episode, timestamp, and a snippet — across your entire listening history, not just one show.
Why build this
Podcast apps let you search episode titles and descriptions, not what was actually said. If you remember a guest mentioning a tool or a host explaining a concept but not which episode, there's no way to find it short of re-listening. Local Whisper models are now fast and accurate enough to transcribe an hour of audio in a few minutes on a laptop, and full-text search over that volume of text is a solved problem. The gap isn't the tech, it's that nobody's wired it together into a small dedicated tool.
Stack sketch
- Rust or Go for the CLI binary — needs to shell out to whisper.cpp and manage background downloads without a heavy runtime
- whisper.cpp with a mid-size model (base.en or small.en) for local transcription, no API calls
- SQLite with FTS5 for the transcript index — full-text search with snippet extraction built in
- RSS parsing for feed polling (podcast feeds are just RSS with enclosure tags)
- A simple TOML config for subscribed feeds, download directory, and model choice
Scope for v1
- In: add feed by URL, background poll for new episodes, transcribe on download,
podgrep <query>with episode/timestamp/snippet output - In:
podgrep --show "Feed Name"to scope search to one show - Out: playback from the CLI (open the timestamp in whatever podcast app or browser the user already uses)
- Out: speaker diarization — just raw transcript search for v1
- Out: cloud sync or a hosted version — this is a local-first, single-machine tool
Where it could go
The natural next step is a lightweight local web UI on top of the same SQLite index — still local-only, but easier to browse than a terminal for people who want to skim transcripts rather than grep them. After that, speaker diarization would let you search by "what did the guest say" versus "what did the host say," which matters a lot for interview-format shows.
Further out, exporting matched snippets straight into a note-taking tool (a podgrep --export-to obsidian flag) would turn this from a search tool into a research capture tool for people who cite podcasts in their writing.
Watch out for
Transcription quality on multi-speaker or heavily accented audio varies a lot with whisper.cpp's smaller models, so search recall will be uneven across shows — set expectations that this is a research aid, not a perfect transcript.