Spotify Podcast Show & Episode Metadata Extractor
Pricing
from $0.49 / 1,000 results
Spotify Podcast Show & Episode Metadata Extractor
Search Spotify podcast shows and episodes, fetch a show's full episode list, resolve a show or episode by link, and browse categories by market - with descriptions, durations, release dates and preview URLs.
Pricing
from $0.49 / 1,000 results
Rating
0.0
(0)
Developer
vexaloom-labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Features
Share
Collect podcast show and episode metadata from Spotify without a Spotify account, client ID or API key. Search the podcast catalog, export a show together with its complete episode archive, resolve a show or episode link, and keep only the release window you need.
The actor reads the same public web-player data that powers Spotify's podcast pages for logged-out visitors. It returns structured records, never audio downloads, and omits empty fields instead of writing null placeholders.
Modes
| Mode | What it returns | Inputs it uses |
|---|---|---|
searchShows | One record per matching podcast show | searchQuery |
searchEpisodes | One record per matching episode | searchQuery |
getShow | A show record followed by its episode archive | showIds, startUrls |
getEpisode | One record per episode ID or link | episodeIds, startUrls |
Search modes page through Spotify's result set until maxItems is reached or the source runs out. getShow pages through the complete episode archive, not just the first screen.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
mode | select | searchShows | One of the four modes above |
searchQuery | text | true crime | Keyword for searchShows and searchEpisodes |
showIds | string list | empty | Show IDs, spotify:show: URIs or show links |
episodeIds | string list | empty | Episode IDs, spotify:episode: URIs or episode links |
startUrls | string list | empty | Mixed show/episode links; regional and embed links work |
includeDetails | boolean | true | Enriches every search hit with the full show/episode object |
includeEpisodes | boolean | true | In getShow, export the show's episodes as well |
releasedAfter | text | empty | YYYY-MM-DD; older episodes are skipped |
releasedBefore | text | empty | YYYY-MM-DD; newer episodes are skipped |
maxItems | integer | 50 | Maximum records to save (1-5000) |
Examples:
{"mode": "searchShows","searchQuery": "daily news","maxItems": 25}
{"mode": "getShow","startUrls": ["https://open.spotify.com/show/3IM0lmZxpFAY7CwMuv9H4g"],"releasedAfter": "2026-01-01","maxItems": 120}
{"mode": "getEpisode","episodeIds": ["6cCnimrvXTnb5SIl1jXVtQ"],"maxItems": 10}
Show fields
showId- Spotify show IDname- show titledescription,descriptionHtml- plain-text and HTML synopsispublisher- publisher or creator namemediaType-audioorvideocontentType- Spotify content type, for exampleCONTENT_TYPE_PODCASTtotalEpisodes- episode count reported by Spotifyexplicit- whether Spotify marks the show explicitratingAverage,ratingCount- show rating and number of ratingstopics- array of{name, uri}topic objectsimages,imageUrl- cover art URLs, largest firstexternalUrl,shareUrl- canonical Spotify and share linksplayable,playabilityReason- public playback statusconsumptionOrder- Spotify episode ordering, for exampleRECENTshowTypes- Spotify show classifications when presenttrailer- trailer episode summary when Spotify exposes onerecordType- alwaysshowscrapedAt- ISO 8601 collection timestamp
Episode fields
episodeId- Spotify episode IDshowId,showName,showImageUrl- parent show identityname- episode titledescription,descriptionHtml- plain-text and HTML episode notesreleaseDate-YYYY-MM-DDreleaseDateTime- full ISO 8601 release timestampreleaseDatePrecision- Spotify precision, for exampleMINUTEdurationMs- episode length in millisecondsexplicit,contentRating- content rating informationmediaTypes,hasVideo- audio/video classificationaudioPreviewUrl- public 30-second preview clipvideoPreviewUrl- video preview when Spotify provides oneimages,imageUrl- episode artwork URLs, largest firstexternalUrl,shareUrl- canonical Spotify and share linksplayable,playabilityReason- public playback statusisPaywalled- whether the episode is paywalledaccessBadge- Spotify access badge when presentcreator- creator name when Spotify exposes oneisTrailer,isNineteenPlus- episode flags when presenttranscriptUrl- transcript link only when the public episode object exposes onerecordType- alwaysepisodescrapedAt- ISO 8601 collection timestamp
Pagination, dates and limits
- Search uses Spotify's offset pagination and stops when the result set is exhausted or
maxItemsis reached. getShowrequests 50 episodes per page and follows Spotify's next offset until the archive ends,maxItemsrecords have been saved, orreleasedAfterpasses.- Episodes are returned newest first by Spotify.
releasedAftertherefore also stopsgetShowpaging early, which keeps large archives inexpensive. - Search has a practical source ceiling of roughly 1,000 matching items;
getShowcan page through archives several thousand episodes long. - The public episode object does not expose full transcript text, private subscriber content, or downloadable audio.
Legacy inputs
The previous version required clientId and clientSecret. Both are no longer needed and are ignored when an old task still sends them. The old market input is also ignored: Spotify decides which catalog is visible from the network location where the actor runs, and Apify cloud runs normally see the US catalog. The former listCategories mode has no cookieless equivalent; a saved task that still sends it runs searchShows instead and reports that in the status message.
Data source and scope
- Public Spotify web-player data, read without cookies or login.
- No audio files are downloaded. Preview URLs are metadata links only.
- Podcast catalogs differ by region. Shows that Spotify does not offer in the actor's region can be absent or restricted.
- This is an independent tool and is not affiliated with or endorsed by Spotify.
FAQ
Do I need a Spotify developer app? No. There is no client ID, client secret, cookie or login step.
Why are some fields missing from a record? Empty values are omitted. Not every publisher supplies a description, rating, topic list, trailer, preview clip or video flag.
Can I fetch a show and its episodes in one run?
Yes. Use mode=getShow; the run emits one show record and then episodes until maxItems records have been saved in total.
Can I fetch only recent episodes?
Yes. Set releasedAfter and, optionally, releasedBefore. In getShow the date window also stops paging when the archive is older than the window.
Can I pass links instead of IDs?
Yes. showIds, episodeIds and startUrls accept bare IDs, spotify: URIs, standard open.spotify.com links, regional /intl-xx/ links and embed links.
Why does a search return fewer records than maxItems?
Spotify exhausted its public result set for that query, or the date window filtered the remaining episodes. The run status reports what was emitted.
Are transcripts included? Only a transcript link is included when Spotify's public episode object exposes one. Full transcript text is not part of the public payload.