Spotify Catalog & Podcast Scraper avatar

Spotify Catalog & Podcast Scraper

Pricing

from $0.99 / 1,000 results

Go to Apify Store
Spotify Catalog & Podcast Scraper

Spotify Catalog & Podcast Scraper

Scrape Spotify tracks, albums, artists, podcasts and episodes as clean JSON. Look up any Spotify URL or search by keyword for play counts, monthly listeners, followers, show ratings, episode descriptions and audio previews. No login, no API key.

Pricing

from $0.99 / 1,000 results

Rating

0.0

(0)

Developer

Farhan Febrian Nauval

Farhan Febrian Nauval

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Extract Spotify tracks, albums, artists, podcasts, and episodes as clean JSON — with play counts, monthly listeners, followers, show ratings, episode descriptions, and 30-second audio previews. Look up any Spotify link, or search the whole catalog by keyword.

Why use this actor

  • No account, no login, no API key required.
  • Real numbers — track play counts, artist followers and monthly listeners, podcast show ratings, playlist follower counts.
  • Podcasts included — show metadata (publisher, rating, description) plus a stream of every episode with its description and release date.
  • Two ways in — resolve a list of Spotify URLs / IDs, or search by keyword across six result types (tracks, albums, artists, playlists, podcasts, episodes).
  • Audio previews — each track can be enriched with its 30-second preview URL.
  • Stable JSON output ready for spreadsheets, databases, dashboards, or data pipelines, with automatic retries and export to JSON / CSV / Excel.

How it works

  1. Pick a modedetail (look up URLs) or search (by keyword).
  2. Give it the matching input: a list of Spotify links / IDs, or a search term plus the result types you want.
  3. The actor fetches each track, album, artist, podcast, episode, or playlist with its full public metadata.
  4. Every result is pushed to your dataset as one JSON row, ready to export.

You don't manage any scrapers, browsers, or rate limits — just run it.

Input

Detail mode — look up any Spotify URLs

{
"mode": "detail",
"urls": [
"https://open.spotify.com/track/69kOkLUCkxIZYexIgSG8rq",
"https://open.spotify.com/artist/4tZwfgrHOc3mvqYlEYSvVi",
"https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk"
],
"includeSSRPreview": true,
"maxItems": 100,
"proxyConfiguration": { "useApifyProxy": false }
}

Search mode — find catalog items by keyword

{
"mode": "search",
"searchTerm": "daft punk",
"searchTypes": ["tracks"],
"limit": 20,
"maxItems": 100
}
FieldTypeDescription
modestringdetail (look up URLs) or search (keyword).
urlsarraySpotify links (detail mode). Mix any track / album / artist / show / episode / playlist URLs.
urisarrayOptional. Direct IDs like spotify:track:69kOkLUCkxIZYexIgSG8rq (detail mode).
searchTermstringKeyword to search for (search mode).
searchTypesarrayAny of tracks, albums, artists, playlists, podcasts, episodes (search mode).
limitintegerResults per page (search, album/playlist tracks). Max 50. Default 20.
offsetintegerWhere to start paging from. Default 0.
maxItemsintegerMax rows for the whole run (0 = no limit). Default 100.
includeSSRPreviewbooleanAdd each track's 30-second audio preview URL. Default true.
proxyConfigurationobjectOptional. Off by default; Spotify catalog data is public.

Output

Every row carries a small header — _source, _scrapedAt, _input (the URL/term it came from), and _entityType (track, album, artist, show, episode, or playlist) — followed by the full Spotify object.

Track (detail mode, with audio preview)

{
"_source": "api",
"_scrapedAt": "2026-07-11T00:14:05Z",
"_input": "https://open.spotify.com/track/69kOkLUCkxIZYexIgSG8rq",
"_entityType": "track",
"previewUrl": "https://p.scdn.co/mp3-preview/6de52dda0d37a0646987856c3b9f7da075d965b4",
"name": "Get Lucky (feat. Pharrell Williams and Nile Rodgers)",
"id": "69kOkLUCkxIZYexIgSG8rq",
"uri": "spotify:track:69kOkLUCkxIZYexIgSG8rq",
"playcount": "698527246",
"duration": { "totalMilliseconds": 369626 },
"trackNumber": 8,
"contentRating": { "label": "NONE" },
"albumOfTrack": { "name": "Random Access Memories", "…": "… more" },
"firstArtist": { "items": [ { "profile": { "name": "Daft Punk" }, "uri": "spotify:artist:4tZwfgrHOc3mvqYlEYSvVi" } ] }
}

Artist (detail mode)

{
"_source": "api",
"_input": "https://open.spotify.com/artist/4tZwfgrHOc3mvqYlEYSvVi",
"_entityType": "artist",
"profile": { "name": "Daft Punk" },
"stats": {
"followers": 11583500,
"monthlyListeners": 29350001,
"worldRank": 226,
"topCities": { "items": [ { "city": "Mexico City", "country": "MX", "numberOfListeners": 713083 } ] }
},
"discography": { "albums": { "…": "… full album/single/EP list" } }
}

Album (detail mode)

{
"_source": "api",
"_entityType": "album",
"name": "Random Access Memories",
"label": "Columbia",
"type": "ALBUM",
"date": { "isoString": "2013-05-20T00:00:00Z", "precision": "DAY" },
"copyright": { "items": [ { "text": "(P) 2013 Daft Life Limited under exclusive license to Columbia Records…", "type": "P" } ] },
"tracksV2": { "totalCount": 13, "items": [ "… track list" ] }
}

Podcast show (detail mode) — followed by its episodes

{
"_source": "api",
"_entityType": "show",
"name": "The Joe Rogan Experience",
"publisher": { "name": "Joe Rogan" },
"mediaType": "MIXED",
"description": "The official podcast of comedian Joe Rogan.",
"rating": { "averageRating": { "average": 4.6576, "totalRatings": 950496, "showAverage": true } }
}

A show URL streams the show record above, then one row per episode (_recordType: "SHOW_EPISODE", _entityType: "episode") up to your maxItems cap, for example:

{
"_entityType": "episode",
"_recordType": "SHOW_EPISODE",
"name": "#2524 - Rupert Lowe",
"releaseDate": { "isoString": "2026-07-09T17:00:00Z", "precision": "MINUTE" }
}

Episode (detail mode) — with chapter timestamps when the creator provides them

{
"_source": "api",
"_entityType": "episode",
"name": "Essentials: The Science & Treatment of Obsessive Compulsive Disorder (OCD)",
"releaseDate": { "isoString": "2026-07-09T08:00:00Z", "precision": "MINUTE" },
"duration": { "totalMilliseconds": 2133184 },
"descriptionChapters": [
{ "timestamp": "00:00:00", "startSeconds": 0, "title": "Obsessive-Compulsive Disorder (OCD)" },
{ "timestamp": "00:01:54", "startSeconds": 114, "title": "Categories: Checking, Repetition & Order; Contamination & Disgust" },
{ "timestamp": "00:05:20", "startSeconds": 320, "title": "Sponsor: AG1" }
]
}

Playlist (detail mode)

{
"_source": "api",
"_entityType": "playlist",
"name": "Today’s Top Hits",
"uri": "spotify:playlist:37i9dQZF1DXcBWIGoYBM5M",
"description": "The hottest 50. Cover: Ella Langley",
"ownerV2": { "data": { "name": "Spotify" } },
"followers": 34194298,
"content": { "items": [ "… track list" ] }
}

Search result (search mode)

{
"_source": "api",
"_entityType": "track",
"_recordType": "SEARCH_RESULT",
"_input": "search:tracks:daft punk",
"name": "Get Lucky (feat. Pharrell Williams and Nile Rodgers)",
"uri": "spotify:track:69kOkLUCkxIZYexIgSG8rq",
"artists": { "items": [ { "profile": { "name": "Daft Punk" } } ] },
"albumOfTrack": { "name": "Random Access Memories", "…": "… more" },
"duration": { "totalMilliseconds": 369626 }
}
FieldTypeDescription
_sourcestringapi for catalog data, none for error rows.
_entityTypestringtrack, album, artist, show, episode, or playlist.
_recordTypestringSHOW_EPISODE (episode streamed from a show) or SEARCH_RESULT.
namestringTrack / album / show / episode / playlist name.
uri / idstringSpotify resource identifier.
playcountstringTotal plays (track detail).
durationobjectLength in milliseconds.
previewUrlstring30-second audio preview (tracks, when enabled).
statsobjectArtist followers, monthly listeners, world rank, top cities.
ratingobjectPodcast show average rating and total rating count.
descriptionChaptersarrayChapter timestamps parsed from an episode's description (when present).
releaseDate / dateobjectRelease timestamp.
label / copyrightstring / objectAlbum label and copyright line.
ownerV2 / followersobject / numberPlaylist owner and follower count.

Notes & limits

  • Keyword search returns up to 1000 results per type. For more coverage, use several narrower terms.
  • Podcast chapters: Spotify does not expose structured chapters for podcasts (that field is empty for shows). This actor recovers the chapter timestamps creators write into the episode description into descriptionChapters — present for shows like Huberman Lab, empty for shows that don't list them (e.g. most JRE episodes). For chaptered music/DJ mixes the native segments field is passed through when Spotify provides it.
  • Not available on the public catalog: ISRC codes and audio-analysis figures (danceability, tempo, energy, etc.) are not part of this data and are not returned.
  • Album and playlist tracks are returned per page (limit, max 50); increase limit or offset to page further.
  • Spotify catalog data is public, so no proxy is needed; you can still enable Apify Proxy if you prefer.