← Health board

Spotify Podcast Transcript Scraper & Keyword Monitor

Spotify podcast transcripts as Spotify publishes them: full text, timestamped lines and SRT/VTT, by episode, show or search, with keyword mentions linked to the second.

—insufficient data

Verification

Not yet in the weekly verification report.

Output fields

Authoritative field set from the dataset schema.

FieldType
episode_idstring|null
episode_urlstring|null
episode_namestring|null
show_namestring|null
show_idstring|null
show_urlstring|null
release_datestring|null
duration_secondsinteger|null
explicitboolean|null
descriptionstring|null
languagestring|null
available_languagesarray|null
sync_levelstring|null
line_countinteger|null
word_countinteger|null
textstring|null
linesarray|null
mention_countinteger|null
mentionsarray|null
subtitlesstring|null
querystring|null
noticestring|null
notice_typestring|null
source_urlstring|null

Sample row

{
  "episode_id": "2wRBPdg9rB4KCgNaPAMnoZ",
  "episode_url": "https://open.spotify.com/episode/2wRBPdg9rB4KCgNaPAMnoZ",
  "episode_name": "OpenAI: When AI Agents Use Computers Faster Than You",
  "show_name": "The a16z Show",
  "release_date": "2026-10-26",
  "duration_seconds": 2654,
  "language": "en-us",
  "available_languages": [
    "en-us"
  ],
  "sync_level": "SYLLABLE_SYNCED",
  "word_count": 9268,
  "mention_count": 2,
  "mentions": [
    {
      "keyword": "OpenAI",
      "timestamp": "00:03:45",
      "text": "Think our goal at OpenAI is really about building products that's useful for everyone.",
      "url": "https://open.spotify.com/episode/2wRBPdg9rB4KCgNaPAMnoZ?t=225"
    }
  ],
  "text": "...",
  "subtitles": "WEBVTT\n\n...",
  "query": "search: ai agents"
}

Inputs

FieldTypeReqDefaultDescription
episodes array no ["https://open.spotify.com/episode/5PbCV6cAP5p8CK825HvBff"] One per line: Spotify episode links (https://open.spotify.com/episode/...), spotify:episode: URIs or bare episode ids. Each one returns its transcript.
episode string no — One episode link or id, for saved tasks and API calls that send a single value. Use the list above for several.
shows array no [] One per line: Spotify show links (https://open.spotify.com/show/...). Each returns its newest episodes that have a transcript, up to Maximum episodes.
show string no — One show link or id, for saved tasks and API calls that send a single value.
searchQueries array no [] One per line: words to search Spotify's podcast episodes for (AI agents, your brand, a guest's name). Spotify matches titles and descriptions and ranks by relevance; episodes that have a transcript are returned, up to Maximum episodes per search.
searchQuery string no — One search, for saved tasks and API calls that send a single value.
maxEpisodes integer no 5 How many episodes with a transcript to read for EACH show (newest first) and EACH search (most relevant first). Episode links are always all read.
publishedAfter string no — YYYY-MM-DD. Shows and searches skip episodes released before this day. Empty keeps every date.
keywords array no [] Optional, one per line: words or phrases (your brand, a competitor, a person). Each row gets every line that says one (whole words, any case) with its timestamp and a link that plays the episode from that moment.
keyword string no — One keyword, for saved tasks and API calls that send a single value.
onlyWithMentions boolean no true With keywords set: deliver (and charge) only the episodes whose transcript says at least one of them. Turn off to get every transcript with its mention count.
onlyNew boolean no false Remembers which episodes this same set of shows, searches and keywords already delivered, and skips them. Schedule it daily or weekly and you get, and pay for, only new episodes.
language string no — Optional language code (en, es, de, fr, pt-br...). Many big shows publish translated transcripts; when the episode has one in this language you get it, otherwise its original. Empty means the original.
includeTimestamps boolean no true Also return the transcript as lines, each with its start time in milliseconds. The full text is always returned.
subtitleFormat string no "none" Also return the transcript as an SRT or WebVTT subtitle file (in the subtitles field).

Pricing

Pay per result (transcript) — no charge for empty runs.
Example: 1000 transcripts at $0.02/result ≈ $20.00.

FAQ

Is this Spotify's transcript or a new transcription?

Spotify's own: the same text the Spotify app shows under the episode. No audio is downloaded or processed, which is why the price is per episode and not per minute. It also means an episode Spotify has not transcribed has nothing to return; you get a free row saying so.

How many episodes have a transcript?

Most, but not every show transcribes every episode. Measured 2026-11-04: 29 of the first 30 Spotify search results for "ai agents" had one, and 29 of 30 for "Shopify"; 15 of 18 recent episodes across 5 large shows; 5 of the newest 7 Joe Rogan Experience episodes. The Daily had one on roughly one episode a week (the New York Times publishes its own weekday transcripts), and a new episode often gets its transcript some hours after release. Episodes without one are skipped for shows and searches, and are a free row when you ask for them by link. Each row's available_languages lists what Spotify has.

How do keyword mentions work?

Add keywords (a brand, a person, a product). Each transcript is searched for them as whole words in any case, and every line that says one comes back with the keyword, the time (HH:MM:SS) and a link that opens the episode at that second. With "Only episodes that mention a keyword" on (the default when you give keywords), episodes that never say one are not delivered and not charged.

How do I get only new episodes on a schedule?

Turn on follow mode ("Only episodes not delivered before"), save the run as a task and schedule it. The actor remembers which episodes this same set of shows, searches and keywords already delivered and skips them, so each run returns and charges for new episodes only. The first run delivers the current ones.

What does search find?

Spotify's own episode search, which matches titles and descriptions and ranks by relevance, the same as the search box in the app for a listener in the United States (other languages still appear when they match: 1 of 29 transcribed "Shopify" hits was a Mexican Spanish show). Only episodes with a transcript are returned, up to Maximum episodes per search; add keywords to keep only the episodes whose transcript actually says your term.

Can I get translated transcripts?

Where Spotify publishes them. Some large shows carry several (one episode of The Daily had English plus 9 translations on 2026-11-04). Set Transcript language to en, es, de, fr, pt-br and so on; an episode without that language returns its original, and available_languages shows what each episode has.

How fast is it?

Measured 2026-11-04 outside Apify: a "Shopify" search with keyword matching returned 10 transcripts (101,809 words) in 9 seconds, and the newest 5 Joe Rogan Experience episodes with SRT subtitles (171,017 words) took 8 seconds. The first run on Apify itself, one episode, finished in 17 seconds.

What if Spotify does not answer?

You get a free row with notice_type "blocked" and nothing is charged. Spotify transcripts are read through our own Spotify access; if it needs renewing, the row says so and we are alerted to fix it. Run again later.

Guides & use cases