Spotify Playlist Scraper avatar

Spotify Playlist Scraper

Pricing

from $2.00 / 1,000 track scrapeds

Go to Apify Store
Spotify Playlist Scraper

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

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

ParseForge Banner

🎧 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 pitchersSee exactly which artists and labels a curator is placing, and how big the playlist really is.
Labels, distributors and A&R teamsMonitor editorial and user playlists for your catalogue and your competitors' releases.
Data scientists and researchersBuild clean track-level datasets with release dates, durations and artist links for analysis.
Developers and product teamsFeed 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, localised intl-xx links 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. artistNames and artistUrls list 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-DD release date, not just a year.
  • 🎧 30-second MP3 previews. The previewUrl on each row is a direct link to Spotify's public audio preview, usable in prototypes and demos.
  • ❀️ Playlist reach on every row. sourceSaves carries 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 sourceTrackCount and 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:

FieldTypeDescription
πŸ–Ό imageUrlstring640px album cover of the track.
🎡 titlestringTrack title as published.
πŸ”— urlstringCanonical Spotify URL of the track.
πŸ†” idstringSpotify's 22-character track ID.
🏷 uristringSpotify URI, such as spotify:track:....
πŸ”’ positionnumber1-based position in the playlist or album.
🎀 artistsstringAll credited artists, comma separated.
πŸ’Ώ albumstringAlbum the track belongs to.
πŸ”— albumUrlstringSpotify URL of that album.
πŸ†” albumIdstringSpotify ID of that album.
πŸ”’ trackNumbernumberPosition of the track on its album.
πŸ“… releaseDatestringFull release date, YYYY-MM-DD.
πŸ“† releaseYearnumberRelease year.
⏱ durationMsnumberLength in milliseconds.
⏱ durationstringLength as m:ss.
πŸ”ž isExplicitstringYes or No.
▢️ isPlayablestringYes or No, as Spotify reports it to visitors.
🚦 playabilityReasonstringPLAYABLE, COUNTRY_RESTRICTED and similar.
🎬 hasVideostringYes when the track has a music video.
🎧 previewUrlstringDirect 30-second MP3 preview.
πŸ“€ sourceTypestringplaylist, album or track.
πŸ“Œ sourceNamestringName of the playlist or album.
πŸ”— sourceUrlstringURL of the playlist or album.
πŸ†” sourceIdstringSpotify ID of the playlist or album.
πŸ‘€ sourceOwnerstringPlaylist owner or album artist.
πŸ”— sourceOwnerUrlstringProfile URL of the owner or artist.
πŸ”’ sourceTrackCountnumberTrue total number of tracks in the playlist or album.
❀️ sourceSavesnumberPlaylist save count as a plain number. N/A on albums.
πŸ–Ό sourceImageUrlstringCover art of the playlist or album.
🎀 artistNamesarrayEach credited artist, in order.
πŸ”— artistUrlsarraySpotify profile URL of each credited artist, same order.
πŸ•’ scrapedAtstringISO timestamp of collection.
❌ errorstringPopulated 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 Disclosed and N/A sentinels 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 ActorTypical Spotify playlist scrapers
Fields per track3310 to 20
Artist URLsOne per credited artist, in orderUsually names only, or the first artist
Album, track number, release dateYes, full YYYY-MM-DDOften year only, or missing
30-second preview URLYesRarely
Playlist save countYes, as a plain numberSometimes, as "33.9M" text
True total track countYes, on every rowRarely
Tracks per playlistFirst 100. See the ceiling belowVaries; several stop at 100 too
Play counts, popularity, ISRCNo. Not publicSome, via a browser session
Login or API key requiredNoSometimes

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

  1. Create a free Apify account. New accounts get $5 in free credit. Sign up here.
  2. Open the Actor and go to the Input tab.
  3. Paste your links. Playlist, album or track URLs, one per line. Spotify URIs and bare IDs work too.
  4. Set Max Items to the number of tracks you want back across all links.
  5. 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.
  6. Click Start and watch the log. It names each playlist as it opens it and reports the running count.
  7. 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.

πŸ’‘ 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.