Spoken vs transcription APIs (Deepgram, AssemblyAI, Whisper)

Transcript retrieval and speech-to-text are two different categories. Use the right one for the job and pay a fraction of the cost.

Last updated June 2026

Spoken is a podcast transcript retrieval API, not a speech-to-text service. Where Deepgram, AssemblyAI, and Whisper transcribe raw audio files you provide, Spoken returns the existing transcript for any published podcast episode as clean Markdown with real speaker names. The two categories solve different problems: transcription APIs work on your own audio; transcript retrieval works on the published podcast catalog.

Two categories, two cost models

Transcription API Spoken
Input An audio file you upload (.mp3, .wav) Episode ID or search query
Output JSON transcript with word timings Markdown with speaker names + timestamps
Speaker detection Diarization labels: "Speaker 1", "Speaker 2" Real names: "Andrew Huberman", "Lex Fridman"
Cost per podcast episode ~$0.40–$1.50/hr + your pipeline overhead $0.08–$0.15 flat, regardless of length
Time to first result Audio length + processing minutes Under 30 seconds
Best for Your own audio: meetings, calls, recordings Existing published podcasts
Examples Deepgram, AssemblyAI, Whisper, Rev.ai, Speechmatics Spoken

When to use Spoken

Pick Spoken when

Use a transcription API when

What about just fetching them yourself?

Fair question. For a single episode the answer is often yes — the transcript exists, and an afternoon of scripting will reach it. That part is real, and it is not where this falls down.

There is no list of which episodes have one. Availability varies episode by episode inside the same show, and nothing publishes that list. A do-it-yourself archive therefore means trying every episode of every show to discover which ones return anything. Spoken's episode listing is that list — it is free, it returns metadata only, and it names the episodes of a show that have a transcript available.

The real names are not in the source. What gets published carries anonymous speaker turns — a first speaker, a second speaker — not "Andrew Huberman" and "Matt Walker". Attaching real names is a separate pass over the whole transcript, and it is the difference between a wall of labelled turns and something you can search by person. "The transcript already exists" and "the transcript is usable" are not the same claim.

So the honest version: one episode is an afternoon, a show is a project, and a shelf of shows is a system you maintain. You do not have to take that on trust either — search a show you care about, free and without a key, and you will see both in about five seconds: how many episodes are actually reachable, and what the names look like once they are resolved.

Why this matters for AI agents

If an agent's job is "fetch the transcript of yesterday's All-In Podcast episode," the most efficient path is one call to Spoken. Routing the same task through a transcription API means locating the audio file, downloading it (often 50–100 MB), uploading it to the speech-to-text service, waiting for processing, post-processing the diarization output to attach real names, and paying 5–10x more — for an episode whose transcript already exists.

That's not a knock on transcription APIs. It's the wrong tool for retrieval. The agent equivalent is calling an OCR service to "read" a webpage instead of fetching the HTML.

What about cost?

A one-hour podcast typically costs the following to transcribe end-to-end:

For published podcasts, that's typically a 5–10x cost reduction once you account for the diarization-and-naming work the others don't do.

Quick demo

# Search and fetch — two calls, no audio file involved
curl -H "x-api-key: pt_demo" https://spoken.md/search?q=huberman+sleep
curl -H "x-api-key: pt_demo" https://spoken.md/transcripts/{id}

Response is text/markdown with real names in bold and timestamps per turn. No diarization output to parse, no audio to download.

FAQ

Is Spoken a transcription API?

No. Spoken returns the existing transcript for a podcast episode. Transcription APIs like Deepgram, AssemblyAI, and Whisper take an audio file you provide and produce a transcript from scratch.

Can I send my own audio to Spoken?

No. Spoken only works on published podcast episodes. For your own audio — meetings, calls, recordings — use a speech-to-text service like Deepgram or AssemblyAI.

Why is Spoken cheaper per podcast than Deepgram or AssemblyAI?

Spoken doesn't transcribe audio on demand. It serves transcripts that have already been produced and processed, so the cost is one fetch per episode rather than per minute of compute. It also includes real speaker names, which transcription APIs don't.

How does Spoken know the real speaker names?

Spoken analyses the transcript for name mentions in context — host introductions, guest references, and dialogue cues — and labels each speaker turn with the actual person's name. When names cannot be inferred from context, generic labels like "Host" or "Guest" are used.

Can't I just fetch these transcripts myself?

For one episode, often yes. Two things make it harder to scale than it looks. There is no published list of which episodes have a transcript, so finding them means trying every episode of every show — Spoken's episode listing does that for you and costs nothing. And the real speaker names are not in the source: what gets published carries anonymous speaker turns, so attaching names is a separate pass you would have to build and run yourself. Searching a show shows you both, free.

Can't my AI agent just fetch the episode page?

It can try, and on most shows what it comes back with is the episode description rather than a transcript. The useful framing is not Spoken against your agent — it is your agent with Spoken against your agent without it. Install the skill with npx skills add https://spoken.md, add the MCP server with npx spoken-mcp, or hand it the OpenAPI spec. It then gets episode listings and resolved speaker names that scraping does not produce.

Can I use Spoken alongside a transcription API?

Yes. Many agents do both: Spoken for published podcasts, Deepgram or AssemblyAI for user-uploaded audio. They solve different parts of the problem.

What format does Spoken return?

Clean Markdown, Content-Type: text/markdown; charset=utf-8, with speaker names in bold and timestamps per turn. A typical one-hour episode produces 8,000–15,000 tokens — sized to fit in most LLM context windows in a single call.

TL;DR: If you're working with podcasts, Spoken is the right primitive — cheaper, faster, with speaker names already attached. If you're working with your own audio, use Deepgram, AssemblyAI, or Whisper. They're complementary tools for different jobs.

"I used Spoken to add every My First Million episode to my knowledge base, with a cron to pull new ones. Now I can enjoy the podcast on a run, then chat with Claude about it later — every episode saved and accessible in my Claude sessions."

— Marcus Taylor

Thousands of transcripts fetched by people building searchable podcast archives

No signup required — use API key pt_demo on any endpoint.

Price my show's archive

$0.10 per transcript. Credits never expire. Errors are never charged.