Spotify Scraper avatar

Spotify Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Spotify Scraper

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

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

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.com links, short spotify.link URLs, and spotify: 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

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
}

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

ParameterTypeDefaultDescription
searchTermsstring[][]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.
searchTypestringTracksWhat kind of Spotify results to return for your keywords. Options: Tracks, Artists, Albums, Playlists, Podcasts & Shows.
ParameterTypeDefaultDescription
urlsstring[][]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

ParameterTypeDefaultDescription
maxResultsinteger50Maximum number of items to collect per keyword search, and the maximum number of links to process. Set to 0 for no limit.
includeTracksbooleantrueFor 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.
maxTracksPerIteminteger100Maximum 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"
}
FieldTypeDescription
monthlyListenersnumberMonthly listener count
followersnumberTotal follower count
worldRanknumberGlobal popularity rank (may be null)
biographystringArtist biography text
genresstring[]Associated genres (often empty even for major artists)
externalLinksobject[]Social/web links as {name, url}
relatedArtistsobject[]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"
}
FieldTypeDescription
artistsstringAlbum artist name(s), comma-separated
releaseDatestringISO 8601 release date
ownerstringRecord label
trackCountnumberNumber 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"
}
FieldTypeDescription
ownerstringPlaylist owner's display name
descriptionstringPlaylist description
followersnumberPlaylist follower count
trackCountnumberNumber 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"
}
FieldTypeDescription
ownerstringPublisher name
descriptionstringShow description
trackCountnumberTotal 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"
}
FieldTypeDescription
artistsstringTrack artist name(s), comma-separated
albumNamestringName of the track's album
releaseDatestringISO 8601 release date (parent track rows)
trackNumbernumberPosition on the album
durationnumberLength in milliseconds
durationFormattedstringHuman-readable length, e.g. "2:58"
isExplicitbooleanExplicit-content flag
playCountnumberTotal play count (may be null)
parentId / parentName / parentTypestringThe album, playlist, or artist this track belongs to (child rows only)
addedAtstringWhen 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"
}
FieldTypeDescription
ownerstringPublishing show name
descriptionstringEpisode description
releaseDatestringISO 8601 publish date
durationnumberLength in milliseconds
durationFormattedstringHuman-readable length, e.g. "3:00:45"
isExplicitbooleanExplicit-content flag
audioPreviewUrlstringPreview clip URL (may be null)
parentId / parentName / parentTypestringThe 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 includeTracks and maxTracksPerItem to control cost. A single big playlist can return thousands of track rows. Turn includeTracks off when you only need parent records, or set maxTracksPerItem to keep large playlists and long-running shows in check.
  • Match searchType to 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 maxResults to 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 genres and worldRank as 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.

ResultsNo discountBronzeSilverGold
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

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.