Overview of Podcast Transcript Support Implementation
mainThe Podcast Transcript support feature enables PodFetch to parse <podcast:transcript> tags, archive transcript files, display transcripts in the player, enable full-text search, and generate missing transcripts using an OpenAI-compatible Whisper API.
Architecture Model
The implementation follows a hybrid storage approach: original files are archived, while normalized segments are stored in the database. It utilizes native database full-text search (SQLite FTS5 or Postgres tsvector) and a database-backed job queue with a Tokio worker for Whisper processing.
All components follow the established pattern:
- Trait definition: in
podfetch-domain - Diesel Repository: in
podfetch-persistence(with adapters inadapters.rs) - Service layer: in
podfetch-web/src/services/ - Controller layer
- React UI