Spotify Scraper — Tracks, Artists, Playlists, Charts
Pricing
from $0.12 / 1,000 scraped items
Spotify Scraper — Tracks, Artists, Playlists, Charts
Fast, cheap, full-coverage Spotify scraper. 50+ data categories including tracks, artists, albums, playlists, concerts, charts (Top 200 / Viral), lyrics, credits, recommendations, AI insights. Pay-per-event — no monthly fee.
Pricing
from $0.12 / 1,000 scraped items
Rating
0.0
(0)
Developer
Eduardo Airaudo
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
Spotify Scraper — Full Coverage, Pay-Per-Event
Extract any public Spotify data: tracks, artists, albums, playlists, users, podcasts, concerts, charts, lyrics, credits, recommendations, AI insights and more. 40+ categories, accepts Spotify IDs, URLs or search keywords.
Built to undercut canadesk/spotify ($10/mo + usage) and canadesk/spotify-plus ($16/mo + usage):
- $0 monthly rental fee
- $0.20 per 1,000 result items (pay-per-event)
- $0.30 per 1,000 single-entity fetches (bulk-fetch)
- Raw data optional — slim output by default
Features vs. canadesk/spotify
| Feature | canadesk | canadesk-plus | This actor |
|---|---|---|---|
| Monthly rental | $10 | $16 | $0 |
| Tracks / Artists / Albums | ✅ | ✅ | ✅ |
| Playlists / Users / Podcasts | ✅ | ✅ | ✅ |
| Lyrics (word-synced + translations) | ✅ | ✅ | ✅ |
| Track credits (producers, writers) | ❌ | ❌ | ✅ |
| Artist — appears on / featuring | ❌ | ❌ | ✅ |
| Artist — discovered on (playlists) | ❌ | ❌ | ✅ |
| Artist — related / discography rich | ❌ | partial | ✅ |
| Concert feed + concert locations | partial | partial | ✅ |
| Spotify Charts — Top 200 / Viral | ❌ | ❌ | ✅ |
| Top 20 by monthly listeners/followers | ❌ | ❌ | ✅ |
| Recommendations (seed → playlist) | ❌ | ❌ | ✅ |
| Search suggestions (autocomplete) | ❌ | ❌ | ✅ |
| Lyrics search | ❌ | ❌ | ✅ |
| Partner-API rich payloads | ❌ | ❌ | ✅ |
| Cross-platform enrichment | ❌ | ❌ | ✅ |
| No 50-result cap | ❌ | ✅ | ✅ |
| No simultaneous-entry cap | ❌ | ✅ | ✅ |
Input
All input fields are documented in the input form.
| Field | Type | Purpose |
|---|---|---|
mode | string | get / search / chart |
category | string | 42 categories (see below) |
queries | array | IDs, URLs, spotify:*:* URIs or search keywords |
maxResultsPerQuery | int | 1 – 1000 (default 50) |
market | string | ISO country (default US) |
lyricsLanguage | string | ISO lang for lyric translations |
chartDate | string | YYYY-MM-DD for historical charts |
concurrency | int | Parallel requests (1 – 20) |
delayMs | int | Pause between requests |
includeRaw | bool | Attach raw upstream JSON |
enrichWithContrast | string | ytmusic, applemusic, amazonmusic, pandora, gaana, tencent |
Categories
Single entities (mode=get):
track, track_credits, track_lyrics, album, album_tracks, album_metadata, artist, artist_overview, artist_albums, artist_singles, artist_appears_on, artist_discovered_on, artist_featuring, artist_related, artist_discography_overview, artist_concerts, artist_concert_locations, playlist, playlist_tracks, user_profile, user_followers, recommendations, partner_playlist, partner_track, partner_album, partner_artist_overview, partner_artist_discography.
Search (mode=search):
search_multi, search_tracks, search_artists, search_albums, search_playlists, search_users, search_podcasts, search_top_results, search_suggestions, search_lyrics.
Charts (mode=chart):
chart_top_200_tracks, chart_viral_tracks, chart_top_artists, chart_top_albums, chart_top_monthly_listeners, chart_top_followers.
Example inputs
Get artist overview from URL
{"mode": "get","category": "artist_overview","queries": ["https://open.spotify.com/artist/06HL4z0CvFAxyc27GXpf02"]}
Search tracks
{"mode": "search","category": "search_tracks","queries": ["bohemian rhapsody","taylor swift anti-hero"],"maxResultsPerQuery": 20,"market": "US"}
Top 200 tracks — Mexico
{"mode": "chart","category": "chart_top_200_tracks","queries": ["MX"],"chartDate": "2026-04-22"}
Word-synced lyrics with Spanish translation
{"mode": "get","category": "track_lyrics","queries": ["4iV5W9uYEdYUVa79Axb7Rh"],"lyricsLanguage": "es"}
Output
Each item is a flat JSON object with:
category— what was scrapedmode— get / search / chartquery— original inputid,type,name,uri,url— normalized entity fields- plus every field returned by the upstream API
- optional
raw— full upstream JSON (includeRaw=true) - optional
contrast— cross-platform data (enrichWithContrast)
Errors are pushed as { ok: false, error, query, category } so partial failures never break the run.
Pricing (pay-per-event)
| Event | Price | When charged |
|---|---|---|
actor-start | $0.00 | Once per run |
result-item | $0.0002 | Per dataset item (≈ $0.20 per 1k rows) |
bulk-fetch | $0.0003 | Reserved for single-entity fetches |
Example: a run that pushes 10,000 track rows costs $2.00 total. The same run on canadesk/spotify-plus would cost $16/mo rental + their per-result fees.
Environment variables
Set in Apify console → Actor → "Environment" (mark *_KEY vars as secret):
SPOTIFY_BYPASS_KEY— preferred. Internal bypass key for the self-hosted proxy. No quotas, no RapidAPI fees.RAPIDAPI_KEY— fallback: a key issued via RapidAPI if bypass is unavailable.RAPIDAPI_HOST— only needed withRAPIDAPI_KEY.SPOTIFY_API_BASE— override upstream. Default:https://spotify-proxy.checkleaked.cc/spotify-data.SPOTIFY_TIMEOUT_MS— request timeout (default 90s).SPOTIFY_MAX_RETRIES— retries on 429/5xx (default 3).
Auth priority: SPOTIFY_BYPASS_KEY > RAPIDAPI_KEY. Neither set → upstream returns 401.
Local development
npm installnpm run buildapify run
Edit storage/key_value_stores/default/INPUT.json to change input between runs.
License
MIT