PodKit for RAG Pipelines
Podcast transcripts are a rich, underused source for retrieval-augmented generation. PodKit gives you them as clean, timestamped JSON — no scraping, no format juggling — so they drop straight into your chunk → embed → retrieve pipeline.
Who this is for
Developers building RAG systems — assistants, search, research tools — that need podcast content as a knowledge source. If you're already embedding docs and web pages and want spoken-word content in the same index, this is the ingestion path.
Why podcast transcripts are good RAG material
- Long-form and conversational. Interviews and discussions surface reasoning, caveats, and back-and-forth that rarely make it into written articles.
- Niche, current knowledge. Practitioner podcasts often cover topics — tools, tactics, first-hand experience — that are thin or absent in the general web corpus your base model saw.
- Already timestamped. PodKit returns
segmentswithstartTime/endTime, so every chunk can keep a citation that links back to the exact moment in the audio.
How PodKit fits into the pipeline
- Resolve the source. Search
(
GET /v1/search) to find a show, then list its episodes (GET /v1/podcast/{itunesId}). Each episode carries anid. - Pull the transcript. Call
GET /v1/episode/{id}/transcript. PodKit picks the best available format (JSON › VTT › SRT › text) and returns one normalized shape. - Chunk by
segments. The array is already split into timed spans — group consecutive segments into ~200–500 token windows, carryingstartTimeandspeakeras metadata. - Embed and store. Embed each chunk’s text; keep
episodeId+startTimealongside the vector so a retrieved chunk can cite its source and timestamp. - Retrieve and generate. At query time, embed the question, pull the nearest chunks, and pass them to your model — with citations that point back to a specific moment in a specific episode.
The transcript response you’re chunking
curl "https://podkitapp.com/v1/episode/42/transcript" -H "x-api-key: pk_your_key"
{
"episodeId": 42,
"format": "vtt",
"text": "Welcome back. Today we're talking about vector databases...",
"segments": [
{ "startTime": 0.0, "endTime": 4.2, "speaker": "Host", "text": "Welcome back." },
{ "startTime": 4.2, "endTime": 12.6, "speaker": "Guest", "text": "Today we're talking about vector databases." },
{ "startTime": 12.6, "endTime": 20.1, "speaker": "Guest", "text": "The key trade-off is recall versus latency..." }
]
}
Use the flat text for a quick single-chunk embed, or group the
segments to keep timing and speaker metadata per chunk. Transcripts are cached for 7 days, so
re-ingestion is fast and doesn’t re-hit the origin feed.
Prefer to let an agent drive it?
The same capabilities are exposed over PodKit’s MCP server, so an AI agent can search, page episodes, and pull transcripts as tools — using the same API key and quota. That’s the better fit when retrieval is agent-driven rather than a batch pipeline you run yourself.