Spotify Play Count Scraper
Pricing
from $2.00 / 1,000 track play counts
Spotify Play Count Scraper
Scrape Spotify play counts (stream counts) for every track on any track, album, playlist, or artist. One flat row per track. HTTP-only, no API key.
Pricing
from $2.00 / 1,000 track play counts
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
5 days ago
Last modified
Categories
Share
Get the play count (stream count) of every track on any Spotify track, album, playlist, or artist — as one flat row per track. Paste a URL, URI, or bare ID and the actor auto-detects the type, expands albums and playlists track-by-track, and returns a clean table you can drop straight into a spreadsheet, royalty model, or chart tracker. HTTP-only, no login, no API key.
What you get
One row per track, every row carrying its play count:
| Field | Example | Notes |
|---|---|---|
trackName | Never Gonna Give You Up | |
playcount | 1605446789 | The stream count (integer) |
playcountFormatted | 1,605,446,789 | Human-readable |
artistNames | Rick Astley | Comma-joined; artists[] also provided |
albumName / albumId / albumUrl | Whenever You Need Somebody | |
trackUrl / trackUri / trackId | https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT | |
durationMs / durationText | 213573 / 3:34 | |
explicit / trackNumber / discNumber | false / 1 / 1 | |
releaseDate | 1987-11-12T00:00:00Z | |
sourceType / sourceId / sourceName / sourceUrl | album / … | Which input the row came from |
dataSource / scrapedAt | partner / ISO 8601 |
When to use it
- Royalty / revenue modelling — pull every track's streams for an album or catalog and multiply by your per-stream rate.
- Chart & A&R tracking — snapshot play counts for a playlist or an artist's top tracks over time.
- Competitive research — compare stream counts across releases.
- Agent / MCP workflows — a narrow tool: items in, flat play-count rows out.
Not for podcasts or episodes (they have no play count), monthly-listener / world-rank / top-cities data, or audio downloads. For the full entity picture (artists, podcasts, search, monthly listeners), use the companion Spotify Scraper — All-in-One.
Input
| Field | Required | Default | Description |
|---|---|---|---|
spotifyUrls | ✅ | — | List of track / album / playlist / artist URLs, spotify: URIs, or bare 22-char IDs (mixed freely). |
defaultType | — | track | How to interpret bare IDs with no type prefix (track/album/playlist/artist). |
maxResults | — | 1000 | Hard cap on total track rows charged + returned. Also caps cost. |
proxyConfiguration | — | Apify datacenter (US) | Datacenter US works for Spotify's Partner API. Switch to residential only if you hit rate limits. |
Example input
{"spotifyUrls": ["https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT","https://open.spotify.com/album/4aawyAB9vmqN3uQ7FjRGTy","spotify:playlist:37i9dQZF1DXcBWIGoYBM5M"],"maxResults": 500}
How each input type expands
| Input | Rows returned |
|---|---|
| Track | 1 row |
| Album | one row per track (fully paginated) |
| Playlist | one row per track (episodes skipped; fully paginated) |
| Artist | the artist's top tracks (≈10) |
Pricing — Pay Per Event
| Event | Price |
|---|---|
| Actor start | $0.00005 |
| Track play count (per track row) | $0.002 |
A 12-track album ≈ $0.024. A 500-track playlist ≈ $1.00. maxResults caps the worst case. Pay-Per-Usage (compute + proxy) is also available — pick at run time.
Usage examples
Apify API
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~spotify-play-count-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{ "spotifyUrls": ["https://open.spotify.com/album/4aawyAB9vmqN3uQ7FjRGTy"], "maxResults": 200 }'
JavaScript (apify-client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('khadinakbar/spotify-play-count-scraper').call({spotifyUrls: ['spotify:artist:0gxyHStUsqpMadRV0Di1Qt'],defaultType: 'artist',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map((t) => `${t.trackName}: ${t.playcountFormatted}`));
MCP (AI agents)
Exposed as apify--spotify-play-count-scraper via the Apify MCP server. Feed a Spotify URL/ID, get back per-track play counts as structured JSON.
How it works
Spotify exposes per-track play counts through its internal Partner API (the same data the web player shows). This actor obtains a short-lived web-player token by extracting the current TOTP secret live from Spotify's own JavaScript bundle — so it self-heals when Spotify rotates the secret or the GraphQL operation hashes. All over plain HTTP through a residential proxy; no browser, no login, no cookies.
Reliability notes
- Datacenter (US) proxy works. The Spotify Partner API tolerates Apify datacenter IPs; residential is optional for heavier jobs.
- Honest failure. If Spotify is unreachable (block/auth), the run fails clearly instead of silently returning an empty dataset.
- Play counts can be null for a small number of tracks Spotify itself doesn't expose a count for; those rows are still returned with
playcountAvailable: false.
Legal
Use this actor only for data you are authorized to access and in compliance with Spotify's Terms of Service and applicable law. It collects publicly visible information and performs no login or authentication bypass. You are responsible for how you use the data. Not affiliated with or endorsed by Spotify.