Spotify Album Metadata and Artwork Scraper avatar

Spotify Album Metadata and Artwork Scraper

Pricing

from $1.08 / 1,000 item extracteds

Go to Apify Store
Spotify Album Metadata and Artwork Scraper

Spotify Album Metadata and Artwork Scraper

Resolve public Spotify album URLs or IDs into album metadata, artists, release details, label and rights context, cover-art sizes, and normalized track rows.

Pricing

from $1.08 / 1,000 item extracteds

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

Extract Spotify album metadata and artwork from public album URLs or IDs. Each dataset item combines album identity, artists, exact release date, record-label/copyright context, every available cover-art size, canonical links, and a normalized nested track listing.

Supply one album for an artwork lookup or a list of albums for recurring music-catalog enrichment. No Spotify login, cookies, developer application, or API credential is required.

What can you extract?

DataExamples
Album identitySpotify ID, URI, URL, name, album type
ArtistsNormalized album artist names
Release detailsExact release date and release year
Rights contextPublic label and copyright text
Catalog summaryTrack count, total duration, explicit and playable flags
Cover artworkAll exposed image URLs with width and height
Track rowsPosition, disc/track number, ID, name, artists, duration, flags, preview URL
External linksCanonical Spotify album and track URLs

Artwork files themselves are not downloaded. The output contains stable Spotify CDN image URLs and dimensions so your pipeline can select the needed size.

Who is this Spotify album extractor for?

  • Music catalog teams enriching album IDs from a source spreadsheet.
  • Developers normalizing public album and track data for an application.
  • Designers and editorial teams retrieving available cover-art variants.
  • Labels and researchers comparing publicly exposed release and rights metadata over time.
  • Data engineers sending consistent Spotify album records to a warehouse, sheet, or webhook.

Why use this Actor?

The Actor accepts both album URLs and bare IDs, removes duplicates, and emits one integration-friendly album record per unique input. Tracks and artwork are included inside that record with no separate per-track charge. It uses lightweight public Spotify surfaces rather than a browser, making small recurring catalog jobs fast and economical.

The parser fails visibly when Spotify changes the expected structured response. It does not convert blocked or malformed pages into misleading empty records.

How to get started

  1. Open the Actor in Apify Console.
  2. Add one or more public Spotify album URLs or 22-character album IDs.
  3. Keep Include normalized tracks enabled for catalog enrichment.
  4. Set Maximum albums if you want to process only the first part of a supplied list.
  5. Click Start.
  6. Open the default dataset, then export JSON, CSV, Excel, XML, or RSS.

A working input:

{
"albumUrlsOrIds": [
"https://open.spotify.com/album/4aawyAB9vmqN3uQ7FjRGTy",
"0Lg1uZvI312TPqxNWShFXL"
],
"includeTracks": true,
"maxAlbums": 100
}

Input parameters

FieldTypeDefaultDescription
albumUrlsOrIdsarrayexample Spotify albumRequired public album URLs or bare 22-character IDs; duplicates are removed
maxAlbumsinteger100Maximum unique supplied albums to process, from 1 to 1,000
includeTracksbooleantrueInclude normalized nested track rows; disable for album/artwork-only output

Only Spotify album URLs and IDs are accepted. Playlist, artist, episode, show, and track URLs fail input validation instead of producing a false album record.

Output example

The default dataset contains one item per album. This shortened example comes from the prefilled public album:

{
"spotifyId": "4aawyAB9vmqN3uQ7FjRGTy",
"spotifyUri": "spotify:album:4aawyAB9vmqN3uQ7FjRGTy",
"spotifyUrl": "https://open.spotify.com/album/4aawyAB9vmqN3uQ7FjRGTy",
"name": "Global Warming",
"artists": ["Pitbull"],
"releaseDate": "2012-11-16",
"releaseYear": 2012,
"label": "RCA Records, a division of Sony Music Entertainment",
"totalTracks": 18,
"artwork": [
{
"url": "https://image-cdn-fa.spotifycdn.com/image/...",
"width": 300,
"height": 300
}
],
"tracks": [
{
"position": 1,
"discNumber": 1,
"trackNumber": 1,
"spotifyId": "6OmhkSOpvYBokMKQxpIGx2",
"name": "Global Warming (feat. Sensato)",
"artists": ["Pitbull", "Sensato"],
"durationMs": 85400,
"explicit": true,
"playable": true
}
]
}

Nullable fields such as releaseDate, label, playable, or previewUrl are null when Spotify does not publicly expose them. Popularity is intentionally not claimed because it is not consistently exposed by the supported anonymous album surfaces.

How much does it cost to extract Spotify albums?

The Actor uses pay-per-event pricing:

  • a $0.00005 one-time run-start event;
  • one Item extracted event per unique Spotify album saved;
  • nested tracks and artwork have no separate charge.

At the BRONZE tier the current per-album price is $0.001796. Example totals are approximately:

AlbumsEstimated total
1$0.001846
10$0.01801
100$0.17965

Your subscription tier can apply a lower per-album event price. Failed inputs and albums that are not saved do not create an album event.

Catalog enrichment workflow

For a repeatable enrichment job:

  1. Export album IDs from your catalog database.
  2. Pass them to albumUrlsOrIds on a scheduled Task.
  3. Use Spotify ID as the stable merge key.
  4. Flatten tracks or artwork downstream only when your destination requires rows.
  5. Store scrapedAt to compare later snapshots.

The Actor does not maintain history itself. Apify schedules and dataset retention let you build snapshots without an always-on service.

Artwork retrieval workflow

Use artwork[].width and artwork[].height to choose the closest available image variant. Keep includeTracks: false when only album identity and artwork are needed. Respect Spotify's terms and the rights attached to each image; a public image URL is not a license to republish artwork.

Integrations and exports

Dataset results work with Apify integrations and standard exports:

  • download JSON, JSONL, CSV, Excel, XML, or RSS;
  • send completed runs through webhooks;
  • connect Google Sheets or Zapier;
  • retrieve dataset items from the Apify API;
  • load nested JSON into a warehouse or transformation job.

CSV exports serialize nested arrays. Use JSON or JSONL when you need complete track and artwork structures.

Run through the Apify API with cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~spotify-album-metadata-artwork/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"albumUrlsOrIds": ["4aawyAB9vmqN3uQ7FjRGTy"],
"includeTracks": true,
"maxAlbums": 1
}'

Use the returned run's defaultDatasetId to retrieve items after completion.

JavaScript API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/spotify-album-metadata-artwork').call({
albumUrlsOrIds: ['https://open.spotify.com/album/0Lg1uZvI312TPqxNWShFXL'],
includeTracks: true,
maxAlbums: 1,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].name, items[0].artwork);

Python API example

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/spotify-album-metadata-artwork').call(run_input={
'albumUrlsOrIds': ['0Lg1uZvI312TPqxNWShFXL'],
'includeTracks': True,
'maxAlbums': 1,
})
items = list(client.dataset(run['defaultDatasetId']).iterate_items())
print(items[0]['name'], items[0]['tracks'][0])

Use with MCP and AI agents

Claude Code setup

Add the Actor to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/spotify-album-metadata-artwork"

Claude Desktop setup

Use this JSON in Claude Desktop's MCP configuration. The same remote-server URL also works for Cursor setup and VS Code setup in clients that support HTTP MCP servers:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/spotify-album-metadata-artwork"
}
}
}

Example prompts:

  • “Extract metadata, all cover sizes, and tracks for these Spotify album URLs.”
  • “Resolve these album IDs and return the largest artwork URL for each.”
  • “Compare release dates and labels from this week's album catalog snapshot.”

Reliability, retries, and limits

The Actor makes two lightweight public HTML requests per album. Transient network errors, HTTP 429 responses, and server errors receive up to three bounded attempts with backoff. Deterministic invalid input and not-found responses are not blindly retried.

For a multi-album input, one exhausted album is logged and the remaining albums continue. If no album can be extracted, the run fails. The maximum input and processing cap is 1,000 albums per run. Spotify can change public fields, regional playability, previews, or image hosts without notice.

Troubleshooting

Why did my input fail immediately?

Confirm that every value is either a public open.spotify.com/album/... URL or a 22-character Spotify album ID. Remove track, playlist, artist, and shortened redirect URLs.

Why is a field null?

Spotify does not expose every release field for every album or market. Null is different from an empty string and means the supported public surface did not provide that value.

Why is a preview URL missing?

Audio previews and playability vary by track, licensing, and market. The Actor reports the public value but cannot create a preview that Spotify does not expose.

This Actor extracts publicly accessible metadata. You are responsible for complying with Spotify's terms, applicable copyright and database rights, privacy law, and the rules of your destination system. Do not use it to bypass access controls, download audio, impersonate users, or republish copyrighted artwork without permission. Keep request volumes reasonable and collect only what your legitimate workflow needs.

FAQ

Does it require a Spotify account or developer token?
No. It uses public anonymous album and embed surfaces.

Does it download songs or cover files?
No. It returns metadata, preview links when exposed, and artwork URLs/dimensions.

Can it search Spotify by artist or album name?
No. This focused Actor resolves supplied album URLs or IDs. It does not claim keyword search.

Are tracks charged separately?
No. One album event includes all exposed nested track rows and artwork variants.

Can I schedule it?
Yes. Create an Apify Task and attach a schedule for repeat snapshots or catalog enrichment.

These products cover different Spotify entity types and do not replace this supplied-album metadata and artwork workflow.