Spotify Scraper - Podcasts, Music & Artist Data avatar

Spotify Scraper - Podcasts, Music & Artist Data

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Spotify Scraper - Podcasts, Music & Artist Data

Spotify Scraper - Podcasts, Music & Artist Data

Search and extract podcast shows, episodes, artists, and tracks from Spotify Web API. Get popularity scores, genres, follower counts. Requires free Spotify developer credentials.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

cloud9

cloud9

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

1

Monthly active users

9 days ago

Last modified

Share

Search and extract podcast shows, episodes, artists, and tracks from Spotify Web API. Get popularity scores, genres, follower counts. Requires free Spotify developer credentials.

Use cases

  • Research podcast or album competition in a genre
  • Collect show and episode metadata for a directory
  • Track popularity scores over time
  • Find shows for advertising or guest outreach
  • Build a music or podcast discovery feature

Input

You need your own free Spotify key. Get one at https://developer.spotify.com/dashboard — it takes a minute and costs nothing. Without it the Actor cannot fetch data.

ParameterTypeRequiredDefaultDescription
modestringYes"searchShows"What to search for Allowed: searchShows, showEpisodes, searchArtists, searchTracks.
searchQuerystringNoSearch term (required for search modes)
showIdstringNoSpotify show/podcast ID for showEpisodes mode (e.g., '4rOoJ6Egrf8K2IrywzwOMk')
marketstringNo"US"ISO 3166-1 alpha-2 country code (e.g., US, JP, GB)
maxResultsintegerNo50Maximum number of results
clientIdstringNoYour Spotify API Client ID (free at developer.spotify.com)
clientSecretstringNoYour Spotify API Client Secret

Example input

{
"mode": "searchShows",
"market": "US",
"maxResults": 50,
"clientId": "YOUR_CLIENT_ID",
"clientSecret": "YOUR_CLIENT_SECRET"
}

Output

Each dataset item has the following shape (fields vary by mode):

FieldType
namestring
typestring
publisherstring
totalEpisodesnumber
popularitynumber
externalUrlstring

The dataset also ships a preset table view (Overview), so the key columns are readable straight away in Apify Console, and exportable to JSON, CSV, Excel, or XML.

How to run it

In Apify Console — open the Actor, fill in the input form, click Start, then download the results from the Dataset tab.

With the JavaScript client

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('cloud9_ai/spotify-scraper').call({
"mode": "searchShows",
"market": "US",
"maxResults": 50,
"clientId": "YOUR_CLIENT_ID",
"clientSecret": "YOUR_CLIENT_SECRET"
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

With the Python client

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('cloud9_ai/spotify-scraper').call(run_input={
"mode": "searchShows",
"market": "US",
"maxResults": 50,
"clientId": "YOUR_CLIENT_ID",
"clientSecret": "YOUR_CLIENT_SECRET"
})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)

With the APIPOST https://api.apify.com/v2/acts/cloud9_ai~spotify-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN with the input JSON as the body.

Notes and limits

  • Bring your own Spotify key (free — https://developer.spotify.com/dashboard). It is a secret input, so it is not written to the dataset or the log.
  • maxResults caps how much a single run collects, which is also what caps the run's cost.
  • Requests are paced and failed requests are retried automatically, so runs stay inside the source's rate limits.
  • Only publicly available data is collected. How you use the output is your responsibility, including the source's terms of use and any applicable data-protection law.

Support

Found a bug, or need a field that isn't in the output? Open an issue on the Issues tab of this Actor in Apify Console. Issues there are read and answered.

License

Apache-2.0