Spotify Playlist Scraper
Pricing
from $2.00 / 1,000 track scrapeds
Spotify Playlist Scraper
Scrape Spotify playlist and album tracks with artists, album, release date, duration, explicit flag, 30-second preview URL and playlist save counts. No login or API key. Export to CSV, JSON, Excel or XML.
Pricing
from $2.00 / 1,000 track scrapeds
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share

π§ Spotify Playlist Scraper
π Export the tracks of any public Spotify playlist or album in seconds. Paste a link, get 33 fields per track back: every credited artist with a Spotify URL, the album, the exact release date, the duration, the explicit flag, a 30-second MP3 preview, and the playlist's own save count.
Spotify shows you a playlist one screen at a time and gives you no export button. This Actor reads the public data Spotify itself publishes for every playlist, album and track, and returns each track as one flat row, ready for a spreadsheet, a database or a data pipeline. No Spotify login, no developer account, no API key, no OAuth app to register.
Every run returns 33 fields per track. A five-track preview of Today's Top Hits completes in about 3 seconds in the cloud. A full sweep of an album plus a 100-track playlist, with every track's own page visited for album and artist details, takes under 30 seconds. Playlists, albums and single tracks all work, in any mix, from full URLs, spotify: URIs or bare IDs.
| π― Target Audience | π‘ Primary Use Cases |
|---|---|
| Music marketers and playlist pitchers | See exactly which artists and labels a curator is placing, and how big the playlist really is. |
| Labels, distributors and A&R teams | Monitor editorial and user playlists for your catalogue and your competitors' releases. |
| Data scientists and researchers | Build clean track-level datasets with release dates, durations and artist links for analysis. |
| Developers and product teams | Feed track metadata and preview URLs into apps, recommendation engines or catalog tools. |
π What the Spotify Playlist Scraper does
π‘ Why it matters: the playlist page tells you a song title and an artist name. What you actually need to act on a placement is structured data: who the credited artists are and where their profiles live, which album the track came from and when it was released, how long it is, whether it is explicit, and how many people saved the playlist it sits in. This Actor joins all of that onto one row per track.
- π Any public link. Playlist URLs, album URLs, single track URLs,
spotify:playlist:URIs, localisedintl-xxlinks and bare 22-character IDs are all accepted, in any combination. - π€ Every credited artist, with a URL. Featured artists are not flattened into the title.
artistNamesandartistUrlslist each one separately, in order, so "Die With A Smile" comes back as Lady Gaga and Bruno Mars with two profile links. - πΏ Album, track number and exact release date. The track's own page is visited for the album name and URL, its position on that album and the full
YYYY-MM-DDrelease date, not just a year. - π§ 30-second MP3 previews. The
previewUrlon each row is a direct link to Spotify's public audio preview, usable in prototypes and demos. - β€οΈ Playlist reach on every row.
sourceSavescarries the playlist's save count as a plain number (33,900,000, not "33.9M"), alongside the owner, the owner's profile URL and the true total track count. - πΌ 640px cover art. The track's album cover as a direct image URL, with the playlist cover in a separate column.
- π Honest coverage. Spotify publishes the first 100 tracks of a playlist to visitors. The Actor reports the real total in
sourceTrackCountand says so in the log, so you always know what share you have. - π¦ One fixed schema. Every track lands with the same 33 columns, so your spreadsheet or database mapping never breaks.
π¬ Full Demo (π§ Coming soon)
A short walkthrough video is in production and will land here.
π Output
Each track becomes one flat row. These are the fields:
| Field | Type | Description |
|---|---|---|
πΌ imageUrl | string | 640px album cover of the track. |
π΅ title | string | Track title as published. |
π url | string | Canonical Spotify URL of the track. |
π id | string | Spotify's 22-character track ID. |
π· uri | string | Spotify URI, such as spotify:track:.... |
π’ position | number | 1-based position in the playlist or album. |
π€ artists | string | All credited artists, comma separated. |
πΏ album | string | Album the track belongs to. |
π albumUrl | string | Spotify URL of that album. |
π albumId | string | Spotify ID of that album. |
π’ trackNumber | number | Position of the track on its album. |
π
releaseDate | string | Full release date, YYYY-MM-DD. |
π releaseYear | number | Release year. |
β± durationMs | number | Length in milliseconds. |
β± duration | string | Length as m:ss. |
π isExplicit | string | Yes or No. |
βΆοΈ isPlayable | string | Yes or No, as Spotify reports it to visitors. |
π¦ playabilityReason | string | PLAYABLE, COUNTRY_RESTRICTED and similar. |
π¬ hasVideo | string | Yes when the track has a music video. |
π§ previewUrl | string | Direct 30-second MP3 preview. |
π sourceType | string | playlist, album or track. |
π sourceName | string | Name of the playlist or album. |
π sourceUrl | string | URL of the playlist or album. |
π sourceId | string | Spotify ID of the playlist or album. |
π€ sourceOwner | string | Playlist owner or album artist. |
π sourceOwnerUrl | string | Profile URL of the owner or artist. |
π’ sourceTrackCount | number | True total number of tracks in the playlist or album. |
β€οΈ sourceSaves | number | Playlist save count as a plain number. N/A on albums. |
πΌ sourceImageUrl | string | Cover art of the playlist or album. |
π€ artistNames | array | Each credited artist, in order. |
π artistUrls | array | Spotify profile URL of each credited artist, same order. |
π scrapedAt | string | ISO timestamp of collection. |
β error | string | Populated only on rows that record a failure. |
Sample records
{"imageUrl": "https://i.scdn.co/image/ab67616d0000b2735cf234eeb7a2edf44bf64a46","title": "stupid song","url": "https://open.spotify.com/track/4LfCY65LvojKjWEnU7fNN4","position": 1,"artists": "Olivia Rodrigo","album": "you seem pretty sad for a girl so in love","albumUrl": "https://open.spotify.com/album/3WZZF72ihlKPZBS4zSsNHl","trackNumber": 2,"releaseDate": "2026-06-12","duration": "3:30","isExplicit": "No","previewUrl": "https://p.scdn.co/mp3-preview/894b272aa0422aeebe856825b55e5c736a9bc5ee","sourceType": "playlist","sourceName": "Todayβs Top Hits","sourceOwner": "Spotify","sourceTrackCount": 50,"sourceSaves": 33900000,"artistNames": ["Olivia Rodrigo"],"artistUrls": ["https://open.spotify.com/artist/1McMsnEElThX1knmY4oliG"]}
{"imageUrl": "https://i.scdn.co/image/ab67616d0000b27303cadf1b3f1ee5d1cb6d9dbb","title": "Dai Dai","url": "https://open.spotify.com/track/2y7zAK8Ke2lRYGpGRp4Yew","position": 5,"artists": "Shakira, Burna Boy","album": "Dai Dai","trackNumber": 1,"releaseDate": "2026-05-14","duration": "3:03","isExplicit": "No","sourceType": "playlist","sourceName": "Todayβs Top Hits","sourceOwner": "Spotify","sourceOwnerUrl": "https://open.spotify.com/user/spotify","sourceTrackCount": 50,"sourceSaves": 33900000,"artistNames": ["Shakira", "Burna Boy"],"artistUrls": ["https://open.spotify.com/artist/0EmeFodog0BfCgMzAIvKQp","https://open.spotify.com/artist/3wcj11K77LjEY1PkEazffa"]}
{"title": "Feel This Moment (feat. Christina Aguilera)","url": "https://open.spotify.com/track/2iblMMIgSznA464mNov7A8","position": 3,"artists": "Pitbull, Christina Aguilera","album": "Global Warming","albumUrl": "https://open.spotify.com/album/4aawyAB9vmqN3uQ7FjRGTy","trackNumber": 3,"releaseDate": "2012-11-16","duration": "3:49","isExplicit": "No","sourceType": "album","sourceName": "Global Warming","sourceOwner": "Pitbull","sourceOwnerUrl": "https://open.spotify.com/artist/0TnOYISbd1XYRBk9myaseg","sourceTrackCount": 18,"sourceSaves": "N/A","artistNames": ["Pitbull", "Christina Aguilera"]}
β¨ Why choose this Actor
- 33 fields per track, not a title and a name. Album, track number, full release date, duration, explicit flag, preview URL and every artist's profile link ride along on each row.
- Each artist is a separate record. Collaborations come back as an ordered list of names and URLs, which is what you need to join against artist data. Most alternatives give you one comma-separated string and no links.
- Playlist reach as a number. The save count is parsed into an integer you can sort and threshold on, next to the true total track count.
- Playlists, albums and tracks in one run. Mix them freely. Albums come back complete with a real track number per row.
- Honest about its limits. The comparison below states the 100-track ceiling before you spend anything, and every row reports the true total.
- No nulls. 33 columns, identical on every row, with
Not DisclosedandN/Asentinels instead of blanks so CSV and Excel imports stay predictable. - No credentials. No Spotify login, no developer app, no API key, no token to refresh.
- Fast and cheap to run. Plain HTTP requests, no browser. A hundred tracks with full details finishes in well under a minute.
π How it compares to alternatives
| This Actor | Typical Spotify playlist scrapers | |
|---|---|---|
| Fields per track | 33 | 10 to 20 |
| Artist URLs | One per credited artist, in order | Usually names only, or the first artist |
| Album, track number, release date | Yes, full YYYY-MM-DD | Often year only, or missing |
| 30-second preview URL | Yes | Rarely |
| Playlist save count | Yes, as a plain number | Sometimes, as "33.9M" text |
| True total track count | Yes, on every row | Rarely |
| Tracks per playlist | First 100. See the ceiling below | Varies; several stop at 100 too |
| Play counts, popularity, ISRC | No. Not public | Some, via a browser session |
| Login or API key required | No | Sometimes |
The ceiling, stated plainly. Spotify publishes the first 100 tracks of a playlist to logged-out visitors, and no public surface pages beyond that. This Actor reports the playlist's true total in sourceTrackCount and prints a warning in the log when a playlist is longer than what it could collect, so coverage is never a surprise. Albums are not affected in practice, because almost none exceed 100 tracks. Play counts, popularity scores, ISRC codes, audio features and the playlist's free-text description are not published to visitors and are out of scope.
π How to use
- Create a free Apify account. New accounts get $5 in free credit. Sign up here.
- Open the Actor and go to the Input tab.
- Paste your links. Playlist, album or track URLs, one per line. Spotify URIs and bare IDs work too.
- Set Max Items to the number of tracks you want back across all links.
- Decide on track details. Leave "Fetch Track Details" on for album, track number, release date and artist URLs, or turn it off for a faster run that keeps the playlist-level fields only.
- Click Start and watch the log. It names each playlist as it opens it and reports the running count.
- Download your data from the Storage tab as CSV, JSON, Excel or XML, or pull it from the API.
Example input:
{"startUrls": [{ "url": "https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M" },{ "url": "https://open.spotify.com/album/4aawyAB9vmqN3uQ7FjRGTy" }],"maxItems": 200,"enrichTracks": true}
πΌ Business use cases
π― Playlist pitching research.
An independent label wants to pitch a new single to the curators most likely to take it. They run the Actor across forty genre playlists and use artistUrls, releaseDate and sourceSaves to find the ones that regularly add tracks from artists at their size, released in the last 60 days, on playlists with real reach.
π Catalogue monitoring.
A distributor checks every Monday whether its releases are still on the editorial playlists that drive their streams. A scheduled run of the same list of playlists, diffed against last week's dataset on id and position, shows every addition, removal and move without anyone opening Spotify.
π Competitive intelligence.
An A&R team tracks which labels and artists are being placed on the playlists that matter in their genre. artistNames, album and releaseDate on every row make it a one-line group-by to see who is gaining placements quarter over quarter.
π Product and app development.
A team building a music quiz or a listening-party app needs titles, cover art and short audio clips for a set of playlists. imageUrl and previewUrl on every row are direct assets, and the fixed schema drops straight into their database.
π Automating Spotify Playlist Scraper
Schedule the Actor and route the results wherever your team already works.
- Make and Zapier. Trigger on a finished run and push new placements into a CRM, a Notion database or an Airtable base.
- Slack. Post a weekly digest of tracks added to or removed from the playlists you monitor.
- Airbyte. Load the dataset into a warehouse and track playlist positions and save counts over time.
- GitHub. Commit a nightly snapshot to a repository to keep an auditable history of a playlist.
- Google Drive. Drop each run's CSV into a shared folder for the rest of the team.
- Apify Schedules. Run the same playlist list every Monday morning without touching the console.
π Beyond business use cases
π¬ Research. Musicologists and social scientists can study how editorial playlists evolve: release recency, track length trends, explicit content share and artist concentration, all from structured rows with dates.
π Personal. Back up the playlists you have spent years building as a spreadsheet, or turn a friend's playlist into a listening guide with cover art and release dates.
π€ Non-profit. Community radio stations and music education programmes can build show playlists and teaching material from public Spotify playlists without a developer account.
π§ͺ Experimentation. The preview URLs and metadata make a tidy corpus for audio classification, recommendation prototypes or cover-art vision experiments.
π€ Ask an AI assistant about this scraper
The Actor exposes its input schema through Apify's MCP server, so an AI assistant connected to your Apify account can configure and run it for you. Ask it "get me every track on Today's Top Hits with release dates and artist links" and it will fill in the playlist URL, the item count and the details switch itself.
β Frequently Asked Questions
π Do I need a Spotify account, developer app or API key? No. The Actor reads the data Spotify publishes to any visitor. There is no login, no OAuth app and no token to manage.
π Which links does it accept?
Public playlist, album and track URLs from open.spotify.com, including localised intl-xx links and embed links, plus spotify:playlist:, spotify:album: and spotify:track: URIs and bare 22-character IDs.
π Why did I get 100 tracks from a 500-track playlist?
Spotify publishes the first 100 tracks of a playlist to logged-out visitors, and no public page or parameter goes further. The row's sourceTrackCount shows the real total, and the log prints a warning whenever a playlist is longer than the part it could collect.
π Can it read my private playlists? No. Only playlists that are public on Spotify are visible to visitors, and only those come back.
π€ How are featured artists handled?
Every credited artist appears in artistNames and artistUrls, in Spotify's order. The artists column keeps the readable comma-separated string as well.
π Is the release date the track's or the album's? It is the release date Spotify publishes on the track's page, which is the date of the album or single the track belongs to.
βοΈ What does "Fetch Track Details" do? It visits each track's own page to add the album name and URL, track number, full release date, 640px cover and artist URLs. It costs one extra request per track. Turn it off for a faster run that keeps the playlist-level fields.
π§ Can I download the full songs?
No. previewUrl is Spotify's public 30-second MP3 preview, and a few tracks have none in some regions, which the row marks as Not Disclosed.
π Does it return play counts or popularity? No. Those are not published to visitors and are out of scope. The playlist save count is, and it comes back as a plain number.
π³ Why do I see Not Disclosed instead of empty cells?
Because a blank cell is ambiguous. Not Disclosed means Spotify did not publish that value for that track, and N/A means the field does not apply, such as a save count on an album.
π‘ Do I need a proxy? No. Spotify's public pages are not blocked, so the proxy is off by default. Turn it on for very high volumes if you want the traffic spread across IPs.
β‘ How fast is it? A five-track preview finishes in about 3 seconds. An album plus a 100-track playlist, with details fetched for every track, takes under 30 seconds.
π Integrate with any app
Every run's dataset is available through the Apify API, so you can pull results into any language or platform that speaks HTTP. Apify also ships official clients for JavaScript and Python, plus native integrations for Make, Zapier, Airbyte, Slack, GitHub and Google Drive.
π Recommended Actors
- Deezer Music Catalog Scraper - the same job on Deezer's catalogue, with its own playlists and charts.
- MusicBrainz Scraper - open recording, release and artist metadata to enrich what you collect here.
- Songlink / Odesli Music Link Resolver - turn each Spotify track URL into its Apple Music, YouTube and Deezer equivalents.
- TheAudioDB Music Scraper - artist biographies, artwork and discographies for the artists on your playlists.
π‘ Pro Tip: browse the complete ParseForge collection.
π Need Help? Open our contact form
β οΈ Disclaimer: This is an independent tool, not affiliated with or endorsed by Spotify. It collects only publicly available data.