Spotify Scraper
Pricing
from $2.50 / 1,000 results
Spotify Scraper
[๐ฐ $2.5 / 1K] Extract Spotify artists, albums, tracks, playlists, and podcasts. Search by keyword or paste links to get listeners, play counts, track lists, episodes, and more.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Pull artists, albums, tracks, playlists, and podcasts from Spotify at scale โ monthly listeners, global world rank, follower counts, play counts, biographies, related artists, and full track and episode lists with ISO release dates and formatted durations. No login, no API keys, no app registration. Built for music-data analysts, playlist curators, A&R scouts, and app builders who need clean, structured Spotify catalog data without juggling developer credentials or rate-limited tokens.
Why This Scraper?
- Five entity types from one input โ tracks, artists, albums, playlists, and podcasts/shows, all from a single keyword search or a pasted link.
- Artist intelligence built in โ monthly listeners, total followers, global world rank, genres, biography, related artists, and external links on every artist.
- Podcast & episode support โ search shows by keyword or paste a show link and pull every episode with publish dates and durations. The leading competitor does not do podcasts at all.
- Up to 1,000 search results per keyword โ page deep into Spotify's search index with smooth pagination and automatic de-duplication.
- Per-track play counts โ real listen counts on album tracks and artist top tracks, not just titles.
- Track and episode child rows linked to their parent โ every track or episode is its own row carrying a
parentId, so a playlist's contents land in a table ready to filter, sort, and join. - Deep playlist pagination โ go past the old ~100-track embed ceiling all the way up to Spotify's 10,000-track playlist limit.
- Paste any Spotify link โ full
open.spotify.comlinks, shortspotify.linkURLs, andspotify:URIs are all accepted, with the entity type detected automatically. - Audio previews on podcast episodes โ playable preview-clip URLs on every episode row, plus the largest available cover or profile image on every record.
Use Cases
Music Analytics & A&R
- Track an artist's monthly listeners and global world rank over time
- Compare play counts across an album's tracks to spot breakout songs
- Discover rising acts through related-artist chains
- Benchmark follower growth across a roster of artists
Playlist Research & Curation
- Export the full track list of any editorial or user playlist
- Find which artists dominate a popular playlist
- Audit your own playlists for duplicates or stale tracks
- Build seed lists for recommendation engines
Podcast Intelligence
- Pull a show's entire back catalog of episodes with publish dates
- Track release cadence and episode durations across competing shows
- Build a searchable index of episodes by topic or keyword
Catalog & Metadata Enrichment
- Enrich an internal music database with Spotify IDs, cover art, and release dates
- Resolve track and album metadata in bulk from a list of links
- Feed structured catalog data into dashboards and reporting tools
App & Product Development
- Power music-discovery features without managing OAuth tokens
- Seed a new app with real catalog metadata for testing
- Build search and lookup tools on top of a clean dataset
Getting Started
Simple Keyword Search
One keyword, the default 50 results:
{"searchTerms": ["Taylor Swift"],"searchType": "artists"}
Search Podcasts Without Track Lists
Find shows by keyword and keep runs lean by skipping episode lists:
{"searchTerms": ["true crime", "history"],"searchType": "podcasts","includeTracks": false,"maxResults": 25}
Scrape Specific Links (Advanced)
Paste any mix of artist, album, playlist, and track links โ the type of each is detected automatically โ and cap each parent at 200 tracks:
{"urls": ["https://open.spotify.com/artist/06HL4z0CvFAxyc27GXpf02","https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M","spotify:album:1NAmidJlEaVgA3MpcPFYGq"],"includeTracks": true,"maxTracksPerItem": 200,"maxResults": 0}
Input Reference
Search by Keyword
| Parameter | Type | Default | Description |
|---|---|---|---|
searchTerms | string[] | [] | Keywords to look up on Spotify, such as "Taylor Swift", "lofi beats", or "true crime". Each keyword returns results of the type you pick below. |
searchType | string | Tracks | What kind of Spotify results to return for your keywords. Options: Tracks, Artists, Albums, Playlists, Podcasts & Shows. |
Scrape Specific Links
| Parameter | Type | Default | Description |
|---|---|---|---|
urls | string[] | [] | Paste Spotify links to scrape directly โ artists, albums, tracks, playlists, podcasts/shows, or episodes. Works with open.spotify.com links, short links, and spotify: links. |
Options
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 50 | Maximum number of items to collect per keyword search, and the maximum number of links to process. Set to 0 for no limit. |
includeTracks | boolean | true | For albums, playlists, artists, and podcasts, also collect the individual tracks (or episodes). Turn this off to get only the main record and keep runs lean. |
maxTracksPerItem | integer | 100 | Maximum number of tracks or episodes to collect from each album, playlist, artist, or podcast. Set to 0 for all. Useful for very large playlists, which can hold thousands of tracks. |
Output
Every row carries a recordType field โ artist, album, playlist, podcast, track, or episode โ so you can filter cleanly downstream. Parents (artist, album, playlist, podcast) and their child track/episode rows are saved to separate dataset views. Every row includes id, name, url, imageUrl, and a scrapedAt ISO 8601 timestamp.
Artist (recordType: "artist")
{"recordType": "artist","id": "06HL4z0CvFAxyc27GXpf02","name": "Taylor Swift","url": "https://open.spotify.com/artist/06HL4z0CvFAxyc27GXpf02","imageUrl": "https://i.scdn.co/image/ab6761610000e5eb...","monthlyListeners": 91245031,"followers": 119284756,"worldRank": 3,"biography": "Taylor Swift is a singer-songwriter...","genres": ["pop", "country pop"],"externalLinks": [{ "name": "Instagram", "url": "https://instagram.com/taylorswift" }],"relatedArtists": [{ "id": "1McMsnEElThX1knmY4oliG", "name": "Olivia Rodrigo" }],"scrapedAt": "2026-06-28T14:30:00+00:00"}
| Field | Type | Description |
|---|---|---|
monthlyListeners | number | Monthly listener count |
followers | number | Total follower count |
worldRank | number | Global popularity rank (may be null) |
biography | string | Artist biography text |
genres | string[] | Associated genres (often empty even for major artists) |
externalLinks | object[] | Social/web links as {name, url} |
relatedArtists | object[] | Similar artists as {id, name} |
Album (recordType: "album")
{"recordType": "album","id": "1NAmidJlEaVgA3MpcPFYGq","name": "Lover","url": "https://open.spotify.com/album/1NAmidJlEaVgA3MpcPFYGq","imageUrl": "https://i.scdn.co/image/ab67616d0000b273...","artists": "Taylor Swift","releaseDate": "2019-08-23T00:00:00Z","owner": "Republic Records","trackCount": 18,"scrapedAt": "2026-06-28T14:30:00+00:00"}
| Field | Type | Description |
|---|---|---|
artists | string | Album artist name(s), comma-separated |
releaseDate | string | ISO 8601 release date |
owner | string | Record label |
trackCount | number | Number of tracks on the album |
Playlist (recordType: "playlist")
{"recordType": "playlist","id": "37i9dQZF1DXcBWIGoYBM5M","name": "Today's Top Hits","url": "https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M","imageUrl": "https://i.scdn.co/image/ab67706f00000002...","owner": "Spotify","description": "The hottest tracks right now.","followers": 34829174,"trackCount": 50,"scrapedAt": "2026-06-28T14:30:00+00:00"}
| Field | Type | Description |
|---|---|---|
owner | string | Playlist owner's display name |
description | string | Playlist description |
followers | number | Playlist follower count |
trackCount | number | Number of tracks in the playlist |
Podcast / Show (recordType: "podcast")
{"recordType": "podcast","id": "4rOoJ6Egrf8K2IrywzwOMk","name": "The Joe Rogan Experience","url": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk","imageUrl": "https://i.scdn.co/image/ab6765630000ba8a...","owner": "Joe Rogan","description": "The official podcast of comedian Joe Rogan.","trackCount": 2200,"scrapedAt": "2026-06-28T14:30:00+00:00"}
| Field | Type | Description |
|---|---|---|
owner | string | Publisher name |
description | string | Show description |
trackCount | number | Total number of episodes |
Track (recordType: "track")
Returned as a parent (from a track search or track link) and as a child row inside albums, playlists, and artist top tracks. Child rows add parentId, parentName, and parentType; playlist children also add addedAt.
{"recordType": "track","id": "1BxfuPKGuaTgP7aM0Bbdwr","name": "Cruel Summer","url": "https://open.spotify.com/track/1BxfuPKGuaTgP7aM0Bbdwr","imageUrl": "https://i.scdn.co/image/ab67616d0000b273...","artists": "Taylor Swift","albumName": "Lover","releaseDate": "2019-08-23T00:00:00Z","trackNumber": 2,"duration": 178426,"durationFormatted": "2:58","isExplicit": false,"playCount": 1842930571,"parentId": "1NAmidJlEaVgA3MpcPFYGq","parentName": "Lover","parentType": "album","scrapedAt": "2026-06-28T14:30:00+00:00"}
| Field | Type | Description |
|---|---|---|
artists | string | Track artist name(s), comma-separated |
albumName | string | Name of the track's album |
releaseDate | string | ISO 8601 release date (parent track rows) |
trackNumber | number | Position on the album |
duration | number | Length in milliseconds |
durationFormatted | string | Human-readable length, e.g. "2:58" |
isExplicit | boolean | Explicit-content flag |
playCount | number | Total play count (may be null) |
parentId / parentName / parentType | string | The album, playlist, or artist this track belongs to (child rows only) |
addedAt | string | When the track was added to the playlist (playlist children only) |
Episode (recordType: "episode")
Returned as a parent (from an episode link) and as a child row inside podcasts. Child rows add parentId, parentName, and parentType.
{"recordType": "episode","id": "512ojhOuo1ktJprKbVcKyQ","name": "#2000 - Comedy & Conversation","url": "https://open.spotify.com/episode/512ojhOuo1ktJprKbVcKyQ","imageUrl": "https://i.scdn.co/image/ab6765630000ba8a...","owner": "The Joe Rogan Experience","description": "A wide-ranging conversation...","releaseDate": "2026-06-15T00:00:00Z","duration": 10845000,"durationFormatted": "3:00:45","isExplicit": true,"audioPreviewUrl": "https://podz-content.spotifycdn.com/...","parentId": "4rOoJ6Egrf8K2IrywzwOMk","parentName": "The Joe Rogan Experience","parentType": "podcast","scrapedAt": "2026-06-28T14:30:00+00:00"}
| Field | Type | Description |
|---|---|---|
owner | string | Publishing show name |
description | string | Episode description |
releaseDate | string | ISO 8601 publish date |
duration | number | Length in milliseconds |
durationFormatted | string | Human-readable length, e.g. "3:00:45" |
isExplicit | boolean | Explicit-content flag |
audioPreviewUrl | string | Preview clip URL (may be null) |
parentId / parentName / parentType | string | The podcast this episode belongs to (child rows only) |
Tips for Best Results
- Search caps at 1,000 results per keyword. Spotify's own search index returns at most 1,000 hits for any term. To go beyond that, split a broad search into several narrower keywords (e.g. by genre or year).
- Use
includeTracksandmaxTracksPerItemto control cost. A single big playlist can return thousands of track rows. TurnincludeTracksoff when you only need parent records, or setmaxTracksPerItemto keep large playlists and long-running shows in check. - Match
searchTypeto what you want. A keyword like "lofi" returns very different results as Tracks, Playlists, or Podcasts โ pick the type before you run. - Paste links for precision. When you already know the exact artist, album, or playlist, pasting links is faster and more reliable than searching by keyword.
- Mix links and searches freely. Keyword searches and pasted links run in the same job, so you can survey a topic and pull specific items in one go.
- Set
maxResultsto 0 for everything. Leave it at 0 to collect every available item (still bounded by Spotify's 1,000-per-search cap), or keep it small for quick test runs. - Genres and world rank can be empty. Spotify leaves these blank for some artists, so treat
genresandworldRankas optional when building reports.
Pricing
From $2.50 per 1,000 results โ flat, per-result pricing with no surprises. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.
| Results | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.45 | $0.39 | $0.32 | $0.25 |
| 1,000 | $4.50 | $3.85 | $3.15 | $2.50 |
| 10,000 | $45.00 | $38.50 | $31.50 | $25.00 |
| 100,000 | $450.00 | $385.00 | $315.00 | $250.00 |
A "result" is any row in the output dataset โ every parent (artist, album, playlist, podcast) and every child track or episode each count as one result, so a large playlist with its full track list returns many results. No compute or time-based charges โ you pay per result, plus a small fixed per-run start fee.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n โ Workflow automation
- Google Sheets โ Direct spreadsheet export
- Slack / Email โ Notifications on new results
- Webhooks โ Trigger custom APIs on run completion
- Apify API โ Full programmatic access
Legal & Ethical Use
This actor is designed for legitimate music research, catalog analysis, playlist curation, and product development using publicly available Spotify data. Users are responsible for complying with applicable laws and Spotify's terms of service. Do not use extracted data for spam, harassment, or any illegal purpose, and respect the rights of artists, creators, and rights holders when using catalog metadata.