Spotify Play Count & Insights Scraper avatar

Spotify Play Count & Insights Scraper

Pricing

from $20.00 / 1,000 entity scrapeds

Go to Apify Store
Spotify Play Count & Insights Scraper

Spotify Play Count & Insights Scraper

Exact stream counts, monthly listeners, world rank, full discography PLUS historical trend tracking, related artists, playlists, contact info (emails/socials), revenue estimates, lyrics and podcasts. Drop-in superset of beatanalytics/spotify-play-count-scraper.

Pricing

from $20.00 / 1,000 entity scrapeds

Rating

0.0

(0)

Developer

Yuliia Kulakova

Yuliia Kulakova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Exact stream counts, monthly listeners, world rank and the full discography graph straight from Spotify — the data the official Web API hides — plus historical trend tracking, related artists, playlists, lead-gen contact info, lyrics and podcasts.

A drop-in superset of beatanalytics/spotify-play-count-scraper: the same inputs work unchanged, and it returns the same fields and many more.

banner


What you get

Exact play countsPer-track stream counts that the Spotify Web API doesn't expose.
Audience signalsMonthly listeners, followers, world rank, top cities (with listener counts per city).
Full discographyAlbums, singles, popular releases, "Appears On", "Featuring" — with per-track streams.
Related artists graph"Fans also like" with optional enrichment (monthly listeners + followers per related artist) and graph-crawl depth.
Playlist attribution"Discovered On" — which editorial/user playlists are driving the streams.
Historical trendsPersisted snapshots + automatic deltas + stream velocity per day across scheduled runs.
Lead-gen contact infoEmails (from bio) + categorised social links + website.
Revenue estimatesPer-artist royalty range from the industry-standard $0.003–0.005 per-stream payout band.
LyricsTime-synced lyrics per track (requires your sp_dc cookie — see FAQ).
PodcastsShow metadata + paginated episode list (name, duration, release date).
Full playlist contentsOwner, follower count, paginated track list with addedAt timestamps.
Original-actor compatibilityOptional flat play_counts.csv export matching beatanalytics/spotify-play-count-scraper.

Works without configuration — proxies are included, auth is self-healing, and the actor is resilient to Spotify's periodic web-player rotations.


Use cases

  • Music marketer / A&R — scout rising artists by city, by monthly-listener velocity, by playlist co-occurrence.
  • Independent label / Manager — pull contact info and audience size for outreach targeting.
  • Music journalist / Analyst — cite exact stream counts with provenance.
  • Royalty analyst — estimate revenue from streams using transparent payout assumptions.
  • Playlist curator — see which playlists already feature an artist.
  • Data engineer — schedule the actor and feed a clean time-series into your warehouse.
  • Podcast aggregator — pull show metadata + full episode catalogue.

Quick start

Paste a Spotify URL — that's the whole minimum input:

{
"urls": ["https://open.spotify.com/artist/06HL4z0CvFAxyc27GXpf02"]
}

You get an artist record with monthly listeners, followers, world rank, top 10 tracks (with stream counts), top 5 cities, full discography lists, biography, external links, contact info, and analytics — all in one record.


Common inputs

Crawl all albums of an artist (full per-track streams):

{
"urls": ["https://open.spotify.com/artist/06HL4z0CvFAxyc27GXpf02"],
"followAlbums": true
}

Scrape by keyword instead of URL:

{
"searchQueries": ["Taylor Swift", "phonk", "lofi beats"],
"searchType": "track",
"maxSearchResults": 5
}

Resolve a playlist fully (with follower count):

{
"urls": ["https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M"],
"includePlaylists": true
}

Related-artists graph with monthly-listener enrichment:

{
"urls": ["https://open.spotify.com/artist/3TVXtAsR1Inumwj472S9r4"],
"includeRelatedArtists": true,
"relatedArtistsDepth": 1,
"enrichRelatedArtists": true,
"includeDiscoveredOnPlaylists": true
}

Historical trend tracking — schedule daily/weekly:

{
"urls": ["https://open.spotify.com/artist/06HL4z0CvFAxyc27GXpf02"],
"enableHistory": true,
"historyDatasetName": "my-spotify-history"
}

From the second run onwards every record carries a history.delta block with streamChange, listenerChange, streamVelocityPerDay, and a trend (up / down / flat).

Podcast show + episode catalogue:

{
"urls": ["https://open.spotify.com/show/2MAi0BvDc6GTFvKFPXnkCL"],
"includePodcasts": true
}

Inputs reference

Compatible with beatanalytics/spotify-play-count-scraper

FieldTypeDefaultDescription
urlsarraySpotify URLs/URIs (artist, album, track, playlist, show, episode)
followAlbumsbooleanfalseFor each artist URL, also crawl every album
followSinglesbooleanfalseFor each artist URL, also crawl every single/EP
followPopularReleasesbooleanfalseCrawl Spotify's curated "popular releases"
scrapePreviewUrlsbooleanfalseInclude 30s preview URLs alongside play counts

Added in this actor

FieldTypeDefaultDescription
searchQueriesarrayScrape by keyword instead of URL
searchTypeenumartistartist / album / track / playlist / all
maxSearchResultsint5Results per search query
includeRelatedArtistsbooleanfalseAdd "Fans also like" graph
relatedArtistsDepthint0Crawl related artists as their own records (0–3)
includeDiscoveredOnPlaylistsbooleanfalsePlaylist attribution per artist
includePlaylistsbooleanfalseResolve full playlist contents + follower count
includeLyricsbooleanfalseTime-synced lyrics (needs spDcCookie)
includePodcastsbooleanfalseResolve shows + episodes
includeAnalyticsbooleantrueEngagement, revenue range, momentum, concentration
includeContactInfobooleantrueEmails + categorized socials + website
includeAppearsOnbooleanfalse"Appears On" + "Featuring" discography
includeConcertsbooleanfalseConcerts (best-effort — see FAQ)
enrichRelatedArtistsbooleanfalseAdd monthly listeners + followers to each related artist
writePlayCountsCsvbooleanfalseEmit flat play_counts.csv to the key-value store
enableHistorybooleanfalsePersist snapshots + compute trends/velocity
historyDatasetNamestringspotify-historyNamed store reused across scheduled runs
spDcCookiestring (secret)sp_dc cookie for lyrics
proxyConfigurationobjectautoOptional. Proxies are included automatically — leave empty unless overriding.
maxConcurrencyint4Parallel workers
minDelayMsint350Throttle between requests

Output

Every record carries type, id, url, name, scrapedAt. Type-specific fields are layered on top.

Artist record: verified, followers, monthlyListeners, worldRank, topCities[], topTracks[], albums[], singles[], popularReleases[], relatedArtists[], discoveredOnPlaylists[], biography, externalLinks[], totalTopTrackStreams, followerToListenerRatio, contactInfo, analytics, history (when enabled).

Album: albumType, releaseDate, label, copyright, full tracks[] (each with streamCount), totalAlbumStreams.

Track: streamCount, duration, contentRating, trackNumber, album metadata, artists.

Playlist: owner, follower count, paginated tracks[] with addedAt.

Show: publisher, description, totalEpisodes, paginated episodes[] with name + duration + releaseDate.

Analytics block

{
"engagementRate": 1.56,
"topTrackConcentration": 0.08,
"topTrackStreams": 17637107878,
"estimatedTopTrackRevenueUSD": { "low": 52911324, "high": 88185539, "currency": "USD" },
"streamPayoutAssumption": { "low": 0.003, "high": 0.005, "currency": "USD" },
"discoveryPlaylistCount": 11,
"momentum": { "streamVelocityPerDay": 0, "trend": "flat" }
}

History block (with enableHistory)

{
"firstSeen": "2026-05-01T00:00:00Z",
"snapshotCount": 12,
"previous": { "at": "...", "monthlyListeners": 1000000, "totalStreams": 500000000 },
"delta": {
"daysElapsed": 1.0,
"streamChange": 1250000,
"streamVelocityPerDay": 1250000,
"trend": "up"
},
"series": [ { "at": "...", "monthlyListeners": 0, "totalStreams": 0 } ]
}

Pricing

Simple pay-per-event:

EventCost
Actor start$0.01
Each scraped entity (artist / album / track / playlist / show / episode)$0.02

Example run costs:

What you scrapeCalculationCost
1 artist with analytics + contact info$0.01 + 1 × $0.02$0.03
10 artists$0.01 + 10 × $0.02$0.21
100 artists daily (trend tracking)$2.01 / run~$60 / month
500 tracks (bulk play-count audit)$0.01 + 500 × $0.02$10.01
5,000 entities (catalog sweep)$0.01 + 5,000 × $0.02$100.01

Compare: Chartmetric / Soundcharts start at $250–350/month per seat and don't expose per-track play counts at all.


FAQ

Does this work without configuration? Yes. Paste a URL and run.

Why does lyrics require a cookie? Spotify gates the lyrics endpoint behind a logged-in session. To use lyrics, paste your sp_dc cookie value (F12 → Application → Cookies → sp_dc on open.spotify.com) into the input field. Without it, every other feature still works.

Are concerts complete? No — Spotify gates most concert data behind a logged-in session. Anonymous runs often return an empty list or partial entries with only an id. Use includeConcerts: true only when you specifically need the best-effort data.

Why no genres? Spotify removed the genres array from the artist endpoint in 2024. Nobody has it via this API surface anymore.

Are the revenue estimates accurate? They're a range based on the publicly cited Spotify net payout band of $0.003–0.005 per stream. We never claim a precise number — we always report a range, and we surface the streamPayoutAssumption so you can recompute with your own band.

Can I export to CSV / Excel? Yes. Apify automatically offers CSV, JSON, Excel, XML, and HTML export on every dataset. Additionally, writePlayCountsCsv: true writes a flat play_counts.csv to the key-value store matching the original scraper's shape.

Will repeated runs over-charge me for the same entity? Each run is metered independently. If you re-scrape the same artist daily, that's one billable entity per run. The historical store deduplicates time-series points so trend data stays clean.

What's the difference vs beatanalytics/spotify-play-count-scraper? Drop-in superset. Same inputs, same field names — plus related artists, "Discovered On" playlists, lyrics, podcasts, search by query, contact info, analytics block, historical trends, and "Appears On" / "Featuring".


This actor scrapes only publicly available Spotify data. It is not affiliated with, endorsed by, or sponsored by Spotify. Use responsibly and respect Spotify's Terms of Service and applicable laws.


Maintained by brilliant_gum on Apify.