Spotify Scraper — Artists, Tracks & Playlists avatar

Spotify Scraper — Artists, Tracks & Playlists

Pricing

from $5.00 / 1,000 result scrapeds

Go to Apify Store
Spotify Scraper — Artists, Tracks & Playlists

Spotify Scraper — Artists, Tracks & Playlists

Scrape Spotify artists, albums, tracks, playlists, podcasts, episodes, and search with play counts and monthly listeners. HTTP-only, no API key. MCP/API-ready.

Pricing

from $5.00 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

44

Total users

18

Monthly active users

10 days ago

Last modified

Share

Spotify Scraper — All-in-One

Spotify Scraper - All-in-One is an Apify Actor for artists, albums, tracks, playlists, podcast shows, episodes, and keyword search. It accepts Spotify URLs, URIs, or 22-character IDs, plus free-text search queries. Each record in the dataset represents one Spotify entity or one search-result item, and the returned fields surface identity, popularity, ownership, release, and listing details such as monthly listeners, followers, play count, world rank, publisher, track lists, and episode lists. The Actor works without a Spotify API key and is usable through Apify API and Apify MCP.

Best fit and connected workflows

This Actor fits workflows that start with a Spotify link or a catalog query and end with structured records ready for analysis, enrichment, or agent use.

Typical routing patterns include:

  • Artist monitoring from an artist URL, URI, or ID, with monthly listeners, followers, world rank, biography, and top tracks.
  • Album and playlist review from a Spotify link, with track listings, labels, release dates, and follower counts where available.
  • Podcast research from a show or episode reference, with publisher, description, ratings, and episode listings for shows.
  • Catalog discovery from keyword search, where each query returns top results across artists, albums, tracks, playlists, shows, and episodes.
  • AI agent tool calls through Apify MCP, where concise records are useful for fast retrieval and detailed mode expands nested listings.

Practical scenario

A music analyst has a Spotify artist URL and wants a quick snapshot before a meeting. They enter the artist link, keep concise output, and run the Actor. The dataset record returns the artist name, monthly listeners, followers, world rank, top tracks, biography, data source, and scrape timestamp. The analyst uses those fields to compare the artist with a recent campaign list, then decides whether to pull the album and playlist records for a deeper check in the next run.

Input

FieldTypePurpose
Spotify URLs, URIs, or IDsarrayScrapes Spotify references from full links, Spotify URIs, or bare 22-character IDs. Entity type is auto-detected from the reference.
Search queriesarraySearches Spotify by keyword and returns top results across entity types.
Default type for bare IDsstringAssumes a type for bare IDs with no URL or URI context.
Search results per typeintegerControls how many results of each type keyword search returns.
Max resultsintegerCaps the total number of result records produced and billed in the run.
Response formatstringconcise returns the core record plus the first nested items; detailed expands nested listings.
Proxy configurationobjectProxy settings for requests, with Residential proxy enabled by default.

Focused input example

{
"spotifyUrls": [
"https://open.spotify.com/artist/3TVXtAsR1Inumwj472S9r4",
"spotify:album:4yP0hdKOZPNshxUOjY0cZj"
],
"searchQueries": ["arctic monkeys"],
"defaultType": "artist",
"searchResultsPerType": 5,
"maxResults": 10,
"responseFormat": "concise"
}

Output

Each dataset item is one scraped Spotify entity or one search-result item. The schema includes flat fields for quick processing and nested arrays for tracks, episodes, artists, and top cities where present.

FieldTypePurpose
typestringEntity type such as artist, album, track, playlist, show, or episode.
idstring or nullSpotify entity ID.
uristring or nullSpotify URI.
urlstring or nullOpen Spotify URL.
namestring or nullEntity name.
verifiedboolean or nullVerification status where available.
biographystring or nullArtist biography text.
monthlyListenersinteger or nullMonthly listener count.
followersinteger or nullFollower count.
worldRankinteger or nullSpotify world rank for supported records.
playcountinteger or nullPlay count for supported entities and items.
durationMsinteger or nullDuration in milliseconds.
explicitboolean or nullExplicit content flag.
labelstring or nullLabel for album records where present.
releaseDatestring or nullRelease date.
totalTracksinteger or nullTotal track count.
totalEpisodesinteger or nullTotal episode count.
publisherstring or nullPublisher for podcast records.
descriptionstring or nullDescription text.
coverArtstring or nullCover image URL.
avatarImagestring or nullArtist image URL.
topCitiesarray or nullTop listener cities for artist records.
topTracksarray or nullTop tracks for artist records.
tracksarray or nullTrack listing for albums and playlists.
episodesarray or nullEpisode listing for podcast shows.
artistsarray or nullRelated artists where present.
ownerobject or nullOwner information for playlists.
ratingobject or nullRating data where present.
popularityDataAvailableboolean or nullIndicates whether popularity data was available.
dataSourcestring or nullSource of the record, such as partner or embed.
scrapedAtstringTimestamp of the scrape.

Illustrative output record

{
"type": "artist",
"id": "3TVXtAsR1Inumwj472S9r4",
"uri": "spotify:artist:3TVXtAsR1Inumwj472S9r4",
"url": "https://open.spotify.com/artist/3TVXtAsR1Inumwj472S9r4",
"name": "Drake",
"verified": true,
"monthlyListeners": 98722254,
"followers": 111849680,
"worldRank": 9,
"topCities": [
{
"city": "London",
"country": "GB",
"listeners": 2284030
}
],
"topTracks": [
{
"name": "One Dance",
"playcount": 2900000000,
"durationMs": 173986
}
],
"popularityDataAvailable": true,
"dataSource": "partner",
"scrapedAt": "2026-05-30T18:20:00.000Z"
}

How it works

This Actor scrapes Spotify artists, albums, tracks, playlists, podcast shows, episodes, and keyword search results through HTTP requests. The live contract states that it is HTTP-only and uses no API key. The manifest also notes self-healing token and operation hashes extracted from the web player, plus a partner API popularity path with an embed fallback. The Actor auto-detects entity type from URLs, URIs, and bare IDs, and keyword search returns top results across supported entity types.

Pricing

Spotify Scraper — All-in-One uses Pay per event pricing on the Apify platform. The primary charged event is Result scraped, which is billed per result record, meaning each Spotify entity or search-result item counts as one billed result. Nested track and episode listings are included in the parent record and are charged as part of that single result.

There is also an Apify platform usage charge at Actor start. To see the current live pricing details, open the Pricing tab in the Actor console.

Example in words: if a execution produces twenty result records, the run is billed for twenty result scraped events, plus the Apify platform usage associated with starting the Actor.

Use with AI agents (MCP)

This Actor is available as an Apify Actor usable through Apify MCP. In agent workflows, it works as a retrieval tool for Spotify entity lookups and catalog search, returning structured records with provenance fields such as dataSource and scrapedAt.

Actor identity: khadinakbar/spotify-all-in-one-scraper

Find the Spotify artist from this URL, return the core record in concise mode, and include monthly listeners, followers, world rank, top tracks, data source, and scrape timestamp for downstream analysis.

When used through MCP, concise output is a strong fit for fast tool calls. Detailed output expands nested track, playlist, or episode listings and can take longer to complete. Search requests return top results per entity type, so one query can yield artists, albums, tracks, playlists, shows, and episodes in a single run. Cost is tied to result records, so maxResults helps keep runs predictable.

Best results and outcome guidance

Use full Spotify URLs, URIs, or IDs when you already know the exact entity. Use search queries when discovery across entity types is the goal. For playlists and podcast shows, detailed mode is useful when you want the full track or episode listing. For quick scans, concise mode usually provides the main entity fields and the first nested items in a compact record. If you are comparing records over time, keep the same input shape and output format so changes in followers, play counts, and monthly listeners are easier to read.

Continue the workflow

Design note

I found that the dataset schema always requires type, name, and scrapedAt, which makes every record suitable for deterministic downstream processing even when optional popularity fields are absent.

FAQ

Can I scrape artists, albums, tracks, playlists, shows, and episodes in one run?
Yes. The Actor auto-detects entity type from each Spotify URL, URI, or bare ID, and search queries can return multiple entity types together.

How should I choose between URLs and search queries?
Use Spotify references for exact entities. Use search queries for keyword-based discovery across the catalog.

What is the difference between concise and detailed output?
Concise returns the core record and the first nested items. Detailed expands nested track, playlist, or episode listings.

How does this Actor support AI workflows?
It is MCP-ready, returns structured JSON, and exposes stable fields such as type, name, dataSource, and scrapedAt for tool use.

How do I keep run size predictable?
Set maxResults to a clear cap and tune searchResultsPerType for keyword searches.

Apify API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const input = {
spotifyUrls: ['https://open.spotify.com/artist/3TVXtAsR1Inumwj472S9r4'],
responseFormat: 'concise',
maxResults: 1,
};
const run = await client.actor('khadinakbar/spotify-all-in-one-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Responsible use

Use the Actor for lawful research, analytics, catalog enrichment, and automation workflows that respect Spotify's terms and applicable laws. Review the returned records before using them in published analysis or customer-facing systems, especially when you rely on popularity fields, search results, or nested listings.