Skip to content

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 podcast episode that has a published one, 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 APISpoken
InputAn audio file you upload (.mp3, .wav)Episode ID or search query
OutputJSON transcript with word timingsMarkdown with speaker names + timestamps
Speaker detectionDiarization 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 resultAudio length + processing minutesUnder 30 seconds
Best forYour own audio: meetings, calls, recordingsExisting published podcasts
ExamplesDeepgram, AssemblyAI, Whisper, Rev.ai, SpeechmaticsSpoken

When to use Spoken

Pick Spoken when

  • You need a podcast episode that has a published transcript, as Markdown for an LLM context window
  • You're building a podcast summarizer, RAG pipeline, or research agent
  • You don't want to host audio files or run a transcription pipeline
  • You need speaker names that are correct out of the box
  • You want a flat per-episode cost, not per-minute billing

Use a transcription API when

  • You have your own audio: meetings, interviews, internal recordings
  • The content isn't a public podcast
  • You need real-time or streaming transcription
  • You need word-level timestamps for editing tools
  • You're transcribing video calls or live events

What about just fetching them yourself?

For a single episode, often yes. The transcript exists, and an afternoon of scripting will reach it. Two things make it harder at scale.

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 means trying every episode of every show to find out which ones return anything. Spoken's episode listing is that list. It is free, returns metadata only, and names the episodes of a show that have a transcript.

The real names are not in the source. What gets published carries anonymous speaker turns, not "Andrew Huberman" and "Matt Walker". Attaching real names is a separate pass over the whole transcript, and it is what makes the result searchable by person.

Search a show you care about, free and without a key, and you will see both: how many episodes are reachable, and what the names look like once 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.

It is the wrong tool for retrieval, the way OCR is the wrong tool for reading a webpage you could fetch as HTML.

What about cost?

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

  • Deepgram Nova-2 with diarization: ~$0.46/hr for transcription, plus your own audio retrieval and storage. Real speaker names still require an LLM pass on top.
  • AssemblyAI Universal with diarization: ~$0.17/hr base, plus the same audio handling and post-processing.
  • OpenAI Whisper API: ~$0.36/hr ($0.006/min), no built-in diarization, so you add Pyannote or a second model.
  • Spoken: $0.08–$0.15 per episode, real speaker names included, no audio pipeline.

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. There is no diarization output to parse.

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, such as meetings, calls and 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 reads the transcript for name mentions in context, such as host introductions and guest references, 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 you often can. 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 on Spoken shows you both, free.

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

An agent can try, and on most shows it comes back with the episode description rather than a transcript. Give it Spoken instead: install the skill with npx skills add https://spoken.md, add the MCP server at https://spoken.md/mcp or 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?

Spoken returns clean Markdown, Content-Type: text/markdown; charset=utf-8, with speaker names in bold and timestamps per turn. A typical one-hour episode from Spoken produces 8,000–15,000 tokens, which fits in one LLM context window.

TL;DR: For published podcasts, use Spoken: cheaper, faster, and the speaker names are already attached. For your own audio, use Deepgram, AssemblyAI, or Whisper.

"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 needed: the key pt_demo works on any endpoint.

Price my show's archive

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

Read next