Spotify Podcast Transcript Scraper & Keyword Monitor avatar

Spotify Podcast Transcript Scraper & Keyword Monitor

Pricing

$0.02 / transcript

Go to Apify Store
Spotify Podcast Transcript Scraper & Keyword Monitor

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.

Pricing

$0.02 / transcript

Rating

0.0

(0)

Developer

ScrapeBench

ScrapeBench

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

2 days ago

Last modified

Categories

Security

Limited permissions

Share

Pain points

  • Speech-to-text tools bill by the audio minute, so a three-hour interview costs nine times a twenty-minute one, and the result is a new, unofficial transcription.
  • Copying Spotify's transcript out of the app is a manual job, one episode at a time, with no timestamps you can link to.
  • Monitoring podcasts for a brand, a competitor or a person means listening, or reading every transcript by hand.
  • A scheduled check that re-reads old episodes pays for them again.

What we solve

  • Spotify's own transcript text, line by line with start times, and as SRT or WebVTT, without processing any audio.
  • Episodes by link, a show's newest episodes, or a Spotify search, combined in one run.
  • Keyword mentions with the line, the timestamp and a link that plays the episode from that moment.
  • Follow mode: a scheduled run returns, and charges for, only episodes it has not delivered before.
  • An episode without a transcript, or a moment when Spotify does not answer, is a free row with the reason, never a charge.

Summary

Spotify transcribes most large podcasts itself and shows the transcript in its app. This actor returns that transcript, not a new speech-to-text pass over the audio: the full text, every line with its start time, and SRT or WebVTT subtitles, plus the episode's name, show, release date, length and description. Ask for episodes by link, the newest episodes of a show, or a Spotify search ("AI agents", your brand, a guest's name). Add keywords and each row lists every line that says one, with its timestamp and a link that plays the episode from that second; switch on "only episodes that mention a keyword" and only those are delivered and charged. Follow mode remembers what it already delivered, so a daily schedule returns, and charges for, only new episodes. Many big shows also publish translated transcripts (one episode of The Daily had 10 languages on 2026-11-04); ask for a language and you get it where it exists. Because no audio is processed, the price is per transcript, the same for a 20-minute episode as for a 3-hour one.

Who it's for

  • PR and brand teams tracking where their company or spokesperson is mentioned on podcasts
  • Podcast producers and agencies repurposing episodes into show notes, clips, blog posts and subtitles
  • Researchers and analysts building podcast corpora for topic, sentiment or market research
  • AI and RAG developers loading podcast knowledge into search or chat tools
  • Investor-relations and competitive-intelligence teams following what executives say on shows

How to use

This actor does two jobs. Run it, then collect results from the run's dataset (export to JSON/CSV/Excel, or pull via the Apify API).

Get a list (export): no names, just filters; returns the whole matching list.

{
"searchQueries": [
"ai agents"
],
"keywords": [
"OpenAI",
"Claude"
],
"maxEpisodes": 3,
"publishedAfter": "2026-10-01",
"subtitleFormat": "vtt",
"includeTimestamps": false
}

Transcripts of specific episodes (lookup): put Get the transcripts of specific episodes in episodes; Inputs below says how each is matched.

{
"episodes": [
"https://open.spotify.com/episode/5PbCV6cAP5p8CK825HvBff",
"https://open.spotify.com/episode/0fgaKkjGyDceW5r077VrcB"
]
}

See Inputs below for every available field.

What you get

One row per record:

FieldDescription
episode_nameThe episode's title
show_nameThe podcast
release_dateDay the episode was published (YYYY-MM-DD)
duration_secondsEpisode length in seconds
textThe full transcript, one line per sentence
linesEach line with its start time in milliseconds (on by default)
subtitlesThe transcript as SRT or WebVTT, when asked for
mentionsWith keywords: each line that says one, with the keyword, a timestamp (HH:MM:SS) and a link that plays from that second
mention_countWith keywords: how many lines say one
languageLanguage of this transcript (en-us, es-419...)
available_languagesEvery transcript language Spotify has for the episode
sync_levelSpotify's timing precision: SYLLABLE_SYNCED, LINE_SYNCED or STATIC
line_countNumber of transcript lines
word_countNumber of words
descriptionThe episode's description (show notes)
explicitSpotify's explicit-content flag
episode_urlThe episode on Spotify
episode_idSpotify's id for the episode
show_urlThe show on Spotify
show_idSpotify's id for the show
queryThe episode, show or search this row came from
source_urlThe episode on Spotify

Sample:

{
"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

FieldRequiredTypeDefaultDescription
episodesnoarray["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.
episodenostring—One episode link or id, for saved tasks and API calls that send a single value. Use the list above for several.
showsnoarray[]One per line: Spotify show links (https://open.spotify.com/show/...). Each returns its newest episodes that have a transcript, up to Maximum episodes.
shownostring—One show link or id, for saved tasks and API calls that send a single value.
searchQueriesnoarray[]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.
searchQuerynostring—One search, for saved tasks and API calls that send a single value.
maxEpisodesnointeger5How many episodes with a transcript to read for EACH show (newest first) and EACH search (most relevant first). Episode links are always all read.
publishedAfternostring—YYYY-MM-DD. Shows and searches skip episodes released before this day. Empty keeps every date.
keywordsnoarray[]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.
keywordnostring—One keyword, for saved tasks and API calls that send a single value.
onlyWithMentionsnobooleantrueWith 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.
onlyNewnobooleanfalseRemembers 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.
languagenostring—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.
includeTimestampsnobooleantrueAlso return the transcript as lines, each with its start time in milliseconds. The full text is always returned.
subtitleFormatnostring"none"Also return the transcript as an SRT or WebVTT subtitle file (in the subtitles field).

Pricing (Pay Per Event)

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

The price is per transcript, whatever the episode's length: a 3-hour episode costs the same $0.02 as a 20-minute one. Compute and proxy are included; you pay only this event.

Use cases

  • Brand monitoring: search Spotify for your company's name each morning in follow mode, keep only episodes whose transcript says it, and send the mention links to Slack.
  • Content repurposing: a producer pulls the newest 10 episodes of their own show with SRT subtitles and timestamped lines for clips and show notes.
  • Research corpus: an analyst exports a year of a show's transcripts (shows read newest first, with a published-after date) for topic analysis.
  • Guest prep: a host searches a guest's name and reads every recent episode that mentions them, jumping straight to each mention.

Why this actor

  • Spotify's own transcript, priced per episode rather than per audio minute: a 3-hour episode costs the same $0.02 as a 20-minute one.
  • Keyword mentions come with a link that plays the episode from that second, so a reader can check the context in one click.
  • Follow mode and free notice rows make it safe to schedule: no re-charges for old episodes, no silent empty runs.

Limitations & updates

Only episodes Spotify has transcribed are covered; very new episodes often get their transcript a few hours after release, and smaller shows are covered less often. Transcripts are Spotify's machine transcription: no speaker names, and the occasional misheard word. Search is Spotify's own ranking by title and description, not a search of the transcripts themselves (use keywords for that). Spotify only: no Apple Podcasts, YouTube or RSS audio. Text is returned as Spotify publishes it at the time of the run.

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

Written up on scrapebench.dev — the bench that runs and verifies this actor against the live source every night:

More actors, coverage and nightly verification results: scrapebench.dev

Works with AI assistants (MCP)

Callable as an MCP tool, so Claude, Cursor, VS Code Copilot and other MCP clients can run it directly. Grab the config from the MCP tab on this page — Apify hosts the server and keeps that snippet current, and OAuth signs you in on first connect, so no API token goes in your config file.

Then just ask:

"Find recent Spotify podcast episodes about AI agents since October 2026 and show me every line where they mention OpenAI or Claude, with links to those moments."

Keep Maximum episodes small (3 to 5) on a first call; every delivered transcript is charged, episodes without a mention are not. Runs started this way bill exactly like any other run.

Data & lawful use

This actor collects publicly available information that Spotify AB publishes for public lookup — licence records, business listings and the contact details professionals list there. Some of it identifies individuals (sole proprietors, licence holders, agents), so treat any names, phone numbers and emails in your results as personal data.

When you run this actor, you decide what is collected and what it is used for, so you are the controller of that data and we act only as your processor (Apify Standard Actor Contract). You need a lawful basis for your use, must honour opt-out and deletion requests, and must follow the marketing rules that apply to you (CAN-SPAM, TCPA, GDPR, CCPA and similar). Don't use the output for unsolicited bulk messaging, for screening covered by the FCRA, or for anything the source's own terms forbid.

Your results are stored in your own Apify account. We don't keep a copy of your results and don't sell or share them.

Disclaimer

This is an independent tool. It is not affiliated with, endorsed by or sponsored by Spotify AB. Names and marks are used only to describe the data source. Records are provided as published by the source and may be out of date or incomplete. For anything consequential (hiring, a permit, a legal decision), confirm the record with the issuing agency. You are responsible for making sure your use complies with applicable law and the source's terms.

Need help?

Open an issue on this actor's Issues tab and we'll respond there. Bug reports, missing fields and feature requests are all welcome. Guides and examples: scrapebench.dev.

If you are a person named in this data and want your record removed from our copy, email apify-help@scrapebench.dev; the source agency remains the official record.

Your run may be used to improve our services. If something looks off, or you want this actor to fit your use better, please share your run data with us: Apify Console → Settings → Security → Share run data with developers. It lets us see exactly what went wrong and keep improving the actor.