Harvest 30-Second Preview URLs for a Tracklist
Collect Spotify's 30-second MP3 preview URLs for every track in a playlist or album — ready for audio pipelines.

Spotify hosts a free 30-second MP3 for most tracks — it's the cheapest legal audio sample pipeline there is. Thirdwatch's Spotify Scraper reads Spotify's public embed pages — no API key, no OAuth app — and returns structured track rows for playlists, albums, artists, and individual tracks.
Skip the setup: Run this as a ready-to-go task on Apify — pre-loaded with the configuration from this guide.
Why harvest preview URLs
For audio fingerprinting, recommendation demos, or review tooling, a 30-second preview is enough — and Spotify serves them publicly. What's missing is a bulk way to collect the URLs.
Every track row carries previewUrl when the track offers one; a playlist run harvests dozens at once.
The scraper reads the embed surface directly, so a playlist URL in means a full tracklist dataset out.
How does this compare to the alternatives?
| Approach | Cost model | Coverage | Effort |
|---|---|---|---|
| Spotify Web API | Free tier, OAuth app | Full catalog | App registration + tokens |
| Manual playlist export tools | Per-export or subscription | Playlists only | Account auth required |
| Thirdwatch Spotify Scraper | Pay per row | Public playlists, albums, artists, tracks | Paste a URL, run |
Why this Actor
- No API key or app registration — public embed pages carry the data.
- One input field accepts playlists, albums, artists and tracks together.
- Every track row includes a 30-second
previewUrlMP3 when available. includeEntityRowsadds a container-level summary row for each playlist or album.- Pure HTTP and fast — a playlist pull costs a fraction of a cent.
How to do it in 3 steps
Step 1: Configure the input
Set the inputs as shown below — urls takes the targets, Playlist, album, artist and track URLs all work in the same input; maxTracksPerEntity bounds the tracklist size.
Step 2: Run the Actor
Run it from the console, the API, or the linked saved task. One dataset row is written per track.
Step 3: Use the output
Track rows carry artists, album, duration, release date, preview URL and Spotify URI; includeEntityRows adds a summary row per playlist or album.
{
"urls": [
"https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M"
],
"maxTracksPerEntity": 50
}Each dataset row looks like:
{
"title": "Flowers",
"artists": "Miley Cyrus",
"parentName": "Today's Top Hits",
"parentType": "playlist",
"position": 1,
"durationSec": 200,
"isExplicit": false,
"releaseDate": "2023-01-13",
"previewUrl": "https://p.scdn.co/mp3-preview/...",
"spotifyUrl": "https://open.spotify.com/track/...",
"uri": "spotify:track:..."
}What to watch for
Play counts and follower numbers aren't available — embed surfaces don't carry them, so playlist-popularity metrics are out of scope. Playlists return roughly the top 50 tracks per entity.
Related use cases
- Export a Spotify Playlist's Full Tracklist as Data
- Pull a Spotify Album's Track Metadata in One Run
- Export an Artist's Spotify Top Tracks and Info
- Compare Track Overlap Across Two Spotify Playlists
- All Thirdwatch use-case guides
Run the Spotify Scraper on Apify Store — pay per result, free to try, no credit card to test.
Frequently asked questions
Do I need a Spotify API key or developer app?
No — the Actor reads public embed pages, so there is nothing to register or provision.
What entity types work?
Playlists, albums, artists, and individual tracks — all accepted in the same `urls` list.
Do I get play counts or follower numbers?
No — embed pages don't expose them. You get catalog metadata: tracks, artists, durations, release dates, previews.
Is there a playlist size cap?
Embed pages return roughly the first 50 tracks per playlist; `maxTracksPerEntity` controls how many rows you keep.
What's in the preview URL?
A 30-second MP3 preview hosted by Spotify, where the track offers one — handy for audio-fingerprinting or review pipelines.
Does it work for editorial playlists?
Yes — Spotify-curated playlists like Today's Top Hits work the same as user playlists.