Spotify Songs Scraper avatar

Spotify Songs Scraper

Pricing

Pay per event

Go to Apify Store
Spotify Songs Scraper

Spotify Songs Scraper

Extract public Spotify track, album, artist and playlist metadata from open.spotify.com URLs for music research, catalog QA and playlist monitoring.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Export public Spotify song, album, artist and playlist metadata from open.spotify.com pages.

Use this actor to collect Spotify catalog metadata, preview links, release dates, artist URLs, album URLs, playlist positions and public counts for music marketing, catalog QA and playlist research workflows.

What does Spotify Songs Scraper do?

Spotify Songs Scraper reads public Spotify web pages and turns their metadata into a clean Apify dataset.

It supports:

  • 🎡 Track pages
  • πŸ’Ώ Album pages
  • πŸ‘€ Artist pages
  • πŸ“‹ Playlist pages
  • πŸ”— Track links exposed by album and playlist pages

The actor uses the public HTML metadata Spotify exposes to browsers. It does not require a Spotify login, cookies or API credentials.

Who is it for?

Music teams use this actor when they need structured Spotify metadata without manual copy-paste.

Common users include:

  • 🎧 Music marketers checking playlist placements
  • 🏷️ Record labels validating release pages
  • πŸ“ˆ Playlist analysts monitoring public playlist structure
  • 🧾 Catalog operations teams checking song metadata
  • πŸ”Ž Research teams building market/category datasets
  • πŸ€– Automation builders enriching music databases

Why use this Spotify extractor?

Spotify pages are useful, but manual collection is slow and inconsistent.

This actor helps you:

  • Export many Spotify URLs in one run
  • Normalize track, album, artist and playlist metadata
  • Preserve source URLs for auditability
  • Follow public playlist/album track links
  • Capture preview audio and image URLs when exposed
  • Build repeatable monitoring jobs on Apify

What Spotify data can you extract?

The output depends on what Spotify exposes on each public page.

Typical track data:

  • Song name
  • Spotify track URL
  • Spotify ID
  • Artist name and artist URL
  • Album URL
  • Release date
  • Duration in seconds
  • Preview audio URL when available
  • Cover image URL
  • Track number

Typical album data:

  • Album name
  • Album URL
  • Release date
  • Artist URL when exposed
  • Cover image
  • Public track links
  • Disc and track positions

Typical playlist data:

  • Playlist name
  • Playlist URL
  • Description
  • Item count
  • Saves count when exposed
  • Image URL
  • Linked track URLs
  • Playlist positions
  • Allowed-country count when exposed

Typical artist data:

  • Artist name
  • Artist URL
  • Description
  • Monthly listener count when exposed
  • Image URL

Data table

FieldDescription
sourceUrlOriginal URL submitted or parent URL for expanded tracks
urlSpotify URL for the saved record
spotifyIdID parsed from the Spotify URL
pageTypetrack, album, artist, playlist, user or unknown
resultTypepage for source pages or track for song records
nameSong, album, artist or playlist name
descriptionPublic Spotify description/snippet
artistNameArtist name where exposed
artistUrlSpotify artist URL where exposed
albumUrlSpotify album URL where exposed
releaseDateRelease date where exposed
durationSecondsTrack duration in seconds
previewUrlPublic preview audio URL when exposed
imageUrlCover/profile/playlist image URL
trackNumberAlbum track number where exposed
discNumberAlbum disc number where exposed
itemCountPlaylist item count where parsed
monthlyListenersArtist monthly listener count where parsed
savesCountPlaylist save count where parsed
allowedCountriesCountCount of allowed country tags for playlist pages
parentUrlAlbum or playlist URL for expanded track records
parentNameAlbum or playlist name for expanded track records
positionTrack position in the parent page
scrapedAtISO timestamp when the record was saved

How much does it cost to scrape Spotify songs?

This actor uses pay-per-event pricing.

You pay a $0.005 start fee plus one item event for each saved Spotify metadata record.

Plan tierPrice per saved record
Free$0.00052489
Bronze$0.00045643
Silver$0.00035601
Gold$0.00027386
Platinum$0.00018257
Diamond$0.00012780

Example: 1,000 saved Spotify records cost about $0.53 on Free tier before the start fee, and about $0.46 on Bronze tier before the start fee.

Tips to control cost:

  • Start with a small maxItems value
  • Test one playlist or album before large batches
  • Disable linked track expansion if you only need page-level metadata
  • Use the Apify scheduler for predictable recurring monitoring

How to scrape Spotify songs

  1. Open the actor on Apify.
  2. Paste Spotify track, album, artist or playlist URLs into Spotify URLs.
  3. Choose a Maximum records limit.
  4. Keep Expand albums and playlists into tracks enabled if you want song rows.
  5. Run the actor.
  6. Export the dataset as JSON, CSV, Excel, XML or via API.

Input example

{
"startUrls": [
{ "url": "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT" },
{ "url": "https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M" }
],
"maxItems": 100,
"includeLinkedTracks": true,
"requestDelayMs": 100
}

Output example

{
"sourceUrl": "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT",
"url": "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT",
"spotifyId": "4cOdK2wGLETKBW3PvgPWqT",
"pageType": "track",
"resultType": "track",
"name": "Never Gonna Give You Up",
"artistName": "Rick Astley",
"artistUrl": "https://open.spotify.com/artist/0gxyHStUsqpMadRV0Di1Qt",
"albumUrl": "https://open.spotify.com/album/5Z9iiGl2FcIfa3BMiv6OIw",
"releaseDate": "1987-11-12",
"durationSeconds": 214,
"previewUrl": "https://p.scdn.co/mp3-preview/...",
"imageUrl": "https://i.scdn.co/image/...",
"scrapedAt": "2026-07-09T00:00:00.000Z"
}

Tips for best results

  • Use public open.spotify.com URLs.
  • Prefer playlist or album URLs when you want many song records.
  • Keep maxItems high enough for expanded tracks.
  • Use a delay for large batches.
  • Store the dataset ID if you need reproducible exports.

Integrations

You can connect the dataset to:

  • Google Sheets for playlist reports
  • Airtable for catalog review
  • BigQuery or Snowflake for music analytics
  • Zapier or Make for notifications
  • Apify webhooks for recurring monitors
  • Internal enrichment pipelines through the Apify API

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/spotify-songs-scraper').call({
startUrls: [{ url: 'https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M' }],
maxItems: 100,
includeLinkedTracks: true
});
console.log(run.defaultDatasetId);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/spotify-songs-scraper').call(run_input={
'startUrls': [{'url': 'https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT'}],
'maxItems': 25,
})
print(run['defaultDatasetId'])

cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~spotify-songs-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"startUrls":[{"url":"https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M"}],"maxItems":100}'

MCP usage

Use the Apify MCP server with Claude Code or Claude Desktop to run this actor from natural language prompts.

MCP URL:

https://mcp.apify.com/?tools=automation-lab/spotify-songs-scraper

Claude Code setup:

$claude mcp add apify-spotify-songs https://mcp.apify.com/?tools=automation-lab/spotify-songs-scraper

Claude Desktop JSON config:

{
"mcpServers": {
"apify-spotify-songs": {
"url": "https://mcp.apify.com/?tools=automation-lab/spotify-songs-scraper"
}
}
}

Example prompts:

  • "Run Spotify Songs Scraper for this playlist and summarize the first 50 tracks."
  • "Extract metadata from these Spotify album URLs and return a CSV."
  • "Monitor this playlist weekly and tell me when the first 10 songs change."

Scheduling and monitoring

For recurring workflows:

  1. Create a task with your Spotify URLs.
  2. Add a schedule in Apify.
  3. Export each run dataset or connect a webhook.
  4. Compare new datasets against previous runs.

This is useful for playlist placement monitoring and catalog checks.

Limitations

Spotify decides which metadata is present in public HTML.

Some fields may be missing for certain regions, pages or entities. The actor does not bypass login-only content, private playlists, Spotify API restrictions or Premium-only features.

Legality

This actor extracts publicly available metadata from public Spotify web pages. You are responsible for using the data legally and respecting Spotify's terms, copyright rules, privacy requirements and local regulations.

FAQ

Does it need a Spotify account?

No. The actor targets public open.spotify.com metadata that is visible without login.

Can it scrape private playlists?

No. Private or login-only data is outside the actor scope.

Why are some fields null?

Spotify does not expose every field on every page. The actor leaves unavailable values as null instead of guessing.

Can it extract lyrics?

No. Spotify lyrics are not part of the public metadata used by this actor.

Can it get ISRC or popularity scores?

Only if Spotify exposes them in the public page metadata. The current HTTP extraction does not rely on private APIs.

Explore other automation-lab actors on Apify:

Support

If a public Spotify URL returns no metadata, include the run ID and URL when reporting the issue. That lets us compare the page response and update the extractor if Spotify changes its markup.