Spotify Podcast Scraper: Episodes, Shows & Search
Pricing
from $0.50 / 1,000 podcast episodes
Spotify Podcast Scraper: Episodes, Shows & Search
Export Spotify podcast episodes and show data: titles, descriptions, release dates, durations, explicit flags, languages and publisher. Paste show links or search podcasts by keyword.
Pricing
from $0.50 / 1,000 podcast episodes
Rating
0.0
(0)
Developer
Eduardo Airaudo
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Features
Share
Spotify Podcast Scraper
Spotify podcast episodes and show data, as clean rows: every episode's title, description, release date, duration and explicit flag, and every show's publisher, description, episode count and languages. Paste show links, show names or episode links, or search podcasts by keyword, and export the results to JSON, CSV or Excel. No Spotify account and no API key.
Unofficial; not affiliated with Spotify. This Actor reads the public podcast information Spotify shows on show and episode pages. It downloads no audio and no transcripts.
What does Spotify Podcast Scraper do?
For every show you enter or find by keyword, Spotify Podcast Scraper returns:
- One show row (
rowTypeshow): the show's name,publisher,description,totalEpisodes,languages,mediaType(audio, video or mixed),explicit, cover art (imageUrl) and Spotify link (url). - Its episodes (
rowTypeepisode), newest first, up to Max episodes per show: title (name),description,releaseDate,durationMs,explicit,languages, Spotify's short audio preview link (previewUrl), cover art and link, plus the show they belong to (showId,showName).
Episode links return just that episode, with its show. Shows and episodes use the same columns, so one CSV holds both: filter by rowType.
How to scrape Spotify podcast episodes
- Paste your shows into Shows or episodes, one per line: Spotify show links,
spotify:show:URIs, 22-character show IDs, show names (for exampleThe Joe Rogan Experience) or episode links. - Set Max episodes per show (default 50; up to 10,000 for a whole back catalog; 0 for show rows only).
- Click Start and open the Shows and episodes view in the Output tab, or download the rows as JSON, CSV, Excel or HTML.
A show name is looked up with Spotify's podcast search, and only a show whose name matches it is used (case, accents and punctuation aside). matchedName shows the show it matched. A name that matches no show is not charged; use the show's link for an exact match.
Search Spotify podcasts by keyword
Put keywords in Search terms (searchTerms), one per line, as you would type them in Spotify (for example true crime, startup, history). Each term adds the first shows Spotify finds, in Spotify's order, up to Max shows per search (maxShowsPerSearch, default 10). Every show found gets its show row and its episodes, and says which term found it (searchTerm) and where it ranked (searchRank). A show found by two terms, or also entered as a link, is fetched and charged once.
Get new episodes on a schedule
Set Only episodes released since (sinceDate) to an age such as 7 days and schedule the Actor weekly in Apify: every run returns only the episodes released in the last week, so you never pay twice for the same back catalog. A fixed date such as 2026-10-01 works too. Spotify lists episodes newest first, so the Actor stops reading a show as soon as it reaches older episodes. A show with nothing new still gets its show row and is named in showsWithoutNewEpisodes in the run summary. Episode links you enter are always returned.
Input
| Field | What it does | Default |
|---|---|---|
shows | Show links (open.spotify.com/show/…, spotify.link short links too), spotify:show: URIs, show IDs, show names or episode links, one per line. A bare ID is read as a show; enter episodes as links or spotify:episode: URIs. | none |
searchTerms | Keywords that find podcasts, one per line. | none |
maxShowsPerSearch | Shows each search term adds, in Spotify's order (1-100). | 10 |
maxEpisodesPerShow | Episodes per show, newest first (0-10,000; 0 = show rows only). | 50 |
sinceDate | Only episodes released on or after this day: 2026-10-01, or an age such as 7 days, 2 weeks, 1 month, 1 year. | none |
market | Two-letter country code: Spotify offers some shows and episodes only in some countries, and ranks search results per country. | US |
Fill in shows, searchTerms or both. Example input:
{"shows": ["https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk","Crime Junkie"],"searchTerms": ["true crime"],"maxShowsPerSearch": 2,"maxEpisodesPerShow": 10,"sinceDate": "30 days"}
Output
A show row (The Joe Rogan Experience on 2026-11-01):
{"rowType": "show","id": "4rOoJ6Egrf8K2IrywzwOMk","showId": "4rOoJ6Egrf8K2IrywzwOMk","showName": "The Joe Rogan Experience","name": "The Joe Rogan Experience","publisher": "Joe Rogan","description": "The official podcast of comedian Joe Rogan.","releaseDate": null,"durationMs": null,"explicit": true,"languages": ["en"],"mediaType": "mixed","totalEpisodes": 2774,"previewUrl": null,"imageUrl": "https://i.scdn.co/image/ab6765630000ba8ae7c95712f4940a9bf439467e","url": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk","input": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk","resolvedFrom": "url","matchedName": null,"searchTerm": null,"searchRank": null,"scrapedAt": "2026-11-01T20:10:43.152Z"}
One of its episode rows:
{"rowType": "episode","id": "3Lz9d1PXPIJA7yisUsrF6p","showId": "4rOoJ6Egrf8K2IrywzwOMk","showName": "The Joe Rogan Experience","name": "#2574 - Francis Foster & Konstantin Kisin","publisher": "Joe Rogan","description": "Comedian Francis Foster and political commentator Konstantin Kisin host the \"TRIGGERnometry\" podcast. …","releaseDate": "2026-10-31","durationMs": 9494953,"explicit": true,"languages": ["en"],"mediaType": null,"totalEpisodes": null,"previewUrl": "https://p.scdn.co/mp3-preview/7725a14a06b2a632a9f4bbac2496db8761589c77.mp3","imageUrl": "https://i.scdn.co/image/ab6765630000ba8aa00b583dd65ecf56393e28a1","url": "https://open.spotify.com/episode/3Lz9d1PXPIJA7yisUsrF6p","input": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk","resolvedFrom": "url","matchedName": null,"searchTerm": null,"searchRank": null,"scrapedAt": "2026-11-01T20:10:43.158Z"}
| Field | Meaning |
|---|---|
rowType | show or episode. |
id, name, url | The show's or episode's Spotify ID, name (episode title) and page. |
showId, showName | The show: the row itself on a show row, the show the episode belongs to on an episode row. |
publisher | Who publishes the show. |
description | The description as plain text, at most 2,000 characters. |
releaseDate, durationMs | Episode rows: release day (YYYY-MM-DD) and length in milliseconds. |
explicit, languages | Spotify's explicit flag and language codes. |
mediaType, totalEpisodes | Show rows: audio, video or mixed, and how many episodes the show has in the market. |
previewUrl, imageUrl | Episode rows: Spotify's short audio preview link, when there is one; the cover art. |
input, resolvedFrom, matchedName | The line you entered (or the search term); how it named the show (url, uri, id, short_link, search for a show name, search_term for a keyword hit); for a show name, the show it matched. |
searchTerm, searchRank | The search term that found the show and its place in Spotify's results (on its episodes too). |
scrapedAt | When the row was read. |
The Output tab has three views: Shows and episodes, Shows and Episodes. The run's key-value store also holds RUN_SUMMARY (counts, events charged, warnings) and, when an input failed, ERRORS.
How much does it cost to scrape Spotify podcasts?
You pay per row delivered: one price per show row and a lower one per episode row. Your price follows your Apify plan:
| Apify plan | Per show | Per 1,000 shows | Per episode | Per 1,000 episodes |
|---|---|---|---|---|
| Free | $0.002 | $2.00 | $0.0008 | $0.80 |
| Bronze | $0.0018 | $1.80 | $0.0007 | $0.70 |
| Silver | $0.0016 | $1.60 | $0.0006 | $0.60 |
| Gold, Platinum and Diamond | $0.0014 | $1.40 | $0.0005 | $0.50 |
Each run also has Apify's start fee of $0.00005 (5 thousandths of a cent), and Apify covers the first 5 seconds of every run's compute. There is no monthly rental and no charge for platform usage.
| Example (Free plan) | Rows | Cost |
|---|---|---|
| The prefilled input (3 shows, 10 episodes each) | 3 shows + up to 30 episodes | up to $0.03 + $0.00005 start |
| One show with its newest 50 episodes | 1 show + 50 episodes | $0.042 |
| 100 shows with their newest 50 episodes | 100 shows + 5,000 episodes | $4.20 |
A weekly schedule of 20 shows, sinceDate 7 days (about 1 new episode each) | 20 shows + 20 episodes a week | about $0.056 a week |
Never charged: search hits themselves (you pay for the show rows they deliver), unknown shows and episodes, names that match no show, searches without results, links to tracks or albums, broken IDs, repeats, episodes Spotify does not offer in the market and episodes older than Only episodes released since. Set a maximum cost per run and the Actor stops at that amount without going over: shows come first, then as many episodes as the rest of the budget pays for.
FAQ
Does it download audio or transcripts?
No. It returns the information Spotify publishes about shows and episodes, plus Spotify's own short preview link (previewUrl) when Spotify offers one. It never downloads, stores or transcribes episode audio.
How many episodes can I get per show?
Up to 10,000, newest first: set Max episodes per show. Spotify pages episodes 50 at a time, so a 2,000-episode back catalog takes about 40 requests and a minute or two.
Why do some shows have fewer episodes than I asked for?
Spotify offers some episodes only in some countries; those are skipped (and not charged) in the market you chose, and a show whose newest episodes are all unavailable there is named in the warnings of the run summary. Try another market. Shows with fewer episodes than Max episodes per show return all they have.
Why is previewUrl empty?
Spotify publishes no preview for some episodes (often video episodes or exclusive ones).
Can I mix links, IDs, names and search terms?
Yes. Links and IDs are fetched directly; show names are looked up with Spotify's podcast search first; search terms add the shows Spotify finds. resolvedFrom tells you how each show was found.
Do I need a Spotify account or API key?
No. You only need an Apify account. The Actor never uses your Spotify login.
Is it legal to scrape Spotify podcasts?
The Actor reads public information that Spotify shows to every visitor of a show or episode page, and returns no personal data about listeners. Check that your use of the data complies with Spotify's terms and the laws that apply to you.
Use it from the Apify API or MCP
Start a run, wait for it and get the rows in one call (synchronous calls wait up to 5 minutes):
curl -X POST "https://api.apify.com/v2/acts/eduair94~spotify-podcast-scraper/run-sync-get-dataset-items?maxTotalChargeUsd=1" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"shows": ["https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk"], "maxEpisodesPerShow": 20, "sinceDate": "30 days"}'
JavaScript, with the apify-client package:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('eduair94/spotify-podcast-scraper').call({searchTerms: ['true crime'],maxShowsPerSearch: 5,maxEpisodesPerShow: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const row of items.filter((item) => item.rowType === 'episode')) console.log(row.showName, row.releaseDate, row.name);
Python, with the apify-client package:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("eduair94/spotify-podcast-scraper").call(run_input={"shows": ["https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk"], "sinceDate": "7 days"})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row["rowType"], row["name"], row.get("releaseDate"))
AI agents can call it too: add the Actor to Apify's MCP server and ask for a show's latest episodes in plain language.
Use cases
- Podcast research: compare the shows of a niche by episode count, release rhythm, episode length and languages.
- Guest booking and PR: search a topic, read every show's latest episode titles and descriptions, and find who covers it.
- Podcast ad sales: build lists of active shows by keyword and market, with publisher and release frequency.
- Media monitoring: a weekly schedule with
sinceDatedelivers only the new episodes of the shows you follow. - Content and SEO teams: export a full back catalog of titles and descriptions for analysis.
Related Spotify scrapers
- Spotify Scraper: Play Counts, Monthly Listeners & Playlists: tracks, albums, playlists, charts and artists from any link or keyword.
- Spotify Play Count Scraper: stream counts for every track of an artist's discography, an album or a playlist.
- Spotify Monthly Listeners Scraper: monthly listeners, followers, world rank and top cities for artist rosters.
- Spotify Playlist Scraper: whole playlists with every track's play count, priced per playlist, with change tracking.
- Spotify Artist Scraper: full artist profiles with biography, social links, top tracks and related artists.
- Spotify Charts Scraper: Top 200, top artists and top albums by country, daily or weekly, with streams.
- Spotify Related Artists Scraper: "Fans also like" lists with each related artist's monthly listeners, followers and world rank, up to two levels deep.