Spotify Album Metadata and Artwork Scraper
Pricing
from $1.08 / 1,000 item extracteds
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
Maintained by CommunityActor 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?
| Data | Examples |
|---|---|
| Album identity | Spotify ID, URI, URL, name, album type |
| Artists | Normalized album artist names |
| Release details | Exact release date and release year |
| Rights context | Public label and copyright text |
| Catalog summary | Track count, total duration, explicit and playable flags |
| Cover artwork | All exposed image URLs with width and height |
| Track rows | Position, disc/track number, ID, name, artists, duration, flags, preview URL |
| External links | Canonical 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
- Open the Actor in Apify Console.
- Add one or more public Spotify album URLs or 22-character album IDs.
- Keep Include normalized tracks enabled for catalog enrichment.
- Set Maximum albums if you want to process only the first part of a supplied list.
- Click Start.
- 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
| Field | Type | Default | Description |
|---|---|---|---|
albumUrlsOrIds | array | example Spotify album | Required public album URLs or bare 22-character IDs; duplicates are removed |
maxAlbums | integer | 100 | Maximum unique supplied albums to process, from 1 to 1,000 |
includeTracks | boolean | true | Include 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 extractedevent 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:
| Albums | Estimated 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:
- Export album IDs from your catalog database.
- Pass them to
albumUrlsOrIdson a scheduled Task. - Use Spotify ID as the stable merge key.
- Flatten
tracksorartworkdownstream only when your destination requires rows. - Store
scrapedAtto 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 osfrom apify_client import ApifyClientclient = 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.
Legal and responsible use
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.
Related Actors from automation-lab
- Spotify Playlist Search and Metadata Scraper for playlist discovery and playlist track context.
- Spotify Podcast and Episode Search Scraper for shows and episodes rather than music albums.
These products cover different Spotify entity types and do not replace this supplied-album metadata and artwork workflow.