Apple Music Scraper
Pricing
from $1.19 / 1,000 results
Apple Music Scraper
Scrape Apple Music albums, songs, artists and music videos with localized prices and availability across 50+ countries. Full album tracklists, charts, artwork, previews and metadata. No API key.
Pricing
from $1.19 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 minutes ago
Last modified
Categories
Share

Scrape Apple Music albums, songs, artists and music videos with localized pricing and availability across 50+ countries in a single run. Get full album tracklists, charts, artwork, audio previews, genres and rich metadata — all from one search. No API key required, no login, no setup.
Why this scraper?
🌍 52 countries, native currencies, one run
Price and check availability for any album, song or video across the US, all of Europe, Latin America, Asia-Pacific and the Middle East at once. Every result carries each country's exact local price and currency.
💿 Full album tracklists
Turn on tracklists and every album returns its complete track list — each track with title, number, duration, explicitness, a 30-second preview URL and its own Apple Music link. Most cheap scrapers stop at the album cover.
📈 Browse the charts
Pull Apple Music's current most-played songs or albums for any country straight from Apple's official charts feed, then enrich every entry with full metadata and multi-country pricing.
🎧 Albums, songs, artists and music videos
Search any combination of catalogue types in one run. Expand an artist into their full discography. Look up exact items by Apple ID or by pasting an Apple Music URL.
🖼️ Media included
High-resolution artwork (up to 1200px), 30-second audio previews for songs, and video previews for music videos — every record.
🎯 Powerful filtering
Filter by type, genre, explicit/clean, price band, release window and streamable status.
💸 Pay only for results
Flat per-item pricing. You only pay for items actually returned. Filtered-out items and failed retries are never charged.
Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
searchQuery | string | "" | Keyword(s) to search Apple Music. Leave empty to browse charts or scrape IDs/URLs. |
entityTypes | array | ["album","song"] | What to return when searching: album, song, artist, musicVideo. |
browseCharts | string | "" | Browse the charts instead of searching: songs or albums. |
country | string | US | Single storefront to price against. Also used for search/charts discovery. Ignored if countries or allCountries is set. |
countries | array | [] | Multiple storefronts to price each item against in one run. |
allCountries | boolean | false | Price across all 52 supported storefronts. Overrides the country fields. |
maxResults | integer | 10 | Maximum number of items to return. |
searchLanguage | string | "" | Apple language code for localized titles/genres (e.g. de_de, ja_jp). Prices stay localized per country. |
appleIds | array | [] | Exact Apple catalogue IDs (album/song/artist/video) to scrape directly. Bypasses search. |
startUrls | array | [] | Apple Music / iTunes URLs to scrape directly. |
includeTracklist | boolean | false | For albums, fetch the full tracklist. |
expandArtistAlbums | boolean | false | When an artist is found, also scrape their albums. |
filterTypes | array | [] | Keep only these types in the output. |
explicitFilter | string | all | all, clean, or explicit. |
genres | array | [] | Filter by genre (substring match — e.g. pop, hip-hop). |
minPrice | integer | – | Only items whose lowest price across countries is at least this amount. |
maxPrice | integer | – | Only items whose lowest price across countries is at most this amount. |
releasedAfter | string | "" | Only items released on or after this date (YYYY-MM-DD). |
releasedBefore | string | "" | Only items released on or before this date (YYYY-MM-DD). |
streamableOnly | boolean | false | Only items currently streamable on Apple Music. |
includeMedia | boolean | true | Include artwork and preview URLs. |
useProxy | boolean | false | Route requests through Apify Proxy. Off by default. |
Output schema
Every item returns the following fields.
| Field | Type | Description |
|---|---|---|
type | string | album, song, artist or musicVideo. |
id | string | Apple catalogue ID (the item's own ID). |
artistId | string | Apple artist ID. |
collectionId | string | Apple album/collection ID. |
trackId | string | Apple track ID (songs and videos). |
amgArtistId | string | Legacy AllMusic artist ID, when present. |
name | string | Primary display name (track, album or artist). |
artistName | string | Artist name. |
collectionName | string | Album name. |
trackName | string | Track name (songs and videos). |
censoredName | string | Censored display name, when listed. |
primaryGenre | string | Primary genre. |
primaryGenreId | string | Apple genre ID. |
artistType | string | Artist type, for artist records. |
collectionType | string | Collection type (e.g. Album). |
trackNumber | number | Track position within the album. |
trackCount | number | Number of tracks in the album. |
discNumber | number | Disc number. |
discCount | number | Number of discs. |
durationMs | number | Track duration in milliseconds. |
durationSec | number | Track duration in seconds. |
explicit | boolean | Whether the item is explicit. |
trackExplicit | boolean | Track-level explicit flag. |
collectionExplicit | boolean | Album-level explicit flag. |
isStreamable | boolean | Whether the item is streamable. |
maturity | string | clean, explicit or unknown. |
copyright | string | Copyright / rights line (often names the label). |
releaseDate | string | Release date (ISO 8601). |
artworkUrl | string | Artwork URL. |
artworkUrlHiRes | string | High-resolution artwork URL (up to 1200px). |
previewUrl | string | 30-second audio (or video) preview URL. |
appleMusicUrl | string | Apple Music link to the item. |
artistUrl | string | Apple Music link to the artist. |
collectionUrl | string | Apple Music link to the album. |
chartRank | number | Position in the charts, when browsing charts. |
prices | array | Per-country price/availability blocks (see below). |
priceByCountry | object | The same prices keyed by country code. |
countriesPriced | number | How many countries returned a price/availability record. |
lowestPrice | number | Lowest price across all priced countries in this run. |
tracks | array | Full album tracklist (only when includeTracklist is on). |
scrapedAt | string | Timestamp of the scrape (ISO 8601). |
Each entry in prices contains:
| Field | Type | Description |
|---|---|---|
country | string | ISO country code. |
countryName | string | Country name. |
currency | string | Local currency code. |
trackPrice | number | Track buy price, when sold individually. |
collectionPrice | number | Album buy price, when sold. |
finalPrice | number | Effective buy price (track price if present, else album price). |
isAvailable | boolean | The item exists in this storefront. |
isStreamable | boolean | Streamable in this country. |
appleMusicUrl | string | Apple Music link for this storefront. |
Each entry in tracks (when enabled) contains: trackId, trackNumber, discNumber, trackName, durationMs, durationSec, explicit, isStreamable, previewUrl, trackPrice, appleMusicUrl.
Example record
{"type": "album","id": "1468058165","artistId": "159260351","collectionId": "1468058165","name": "Lover","artistName": "Taylor Swift","collectionName": "Lover","primaryGenre": "Pop","trackCount": 18,"explicit": false,"copyright": "℗ 2019 Taylor Swift","releaseDate": "2019-08-23T07:00:00Z","artworkUrl": "https://is1-ssl.mzstatic.com/image/thumb/.../100x100bb.jpg","artworkUrlHiRes": "https://is1-ssl.mzstatic.com/image/thumb/.../1200x1200bb.jpg","appleMusicUrl": "https://music.apple.com/us/album/lover/1468058165","prices": [{ "country": "US", "countryName": "United States", "currency": "USD", "collectionPrice": 11.99, "finalPrice": 11.99, "isAvailable": true },{ "country": "GB", "countryName": "United Kingdom", "currency": "GBP", "collectionPrice": 9.99, "finalPrice": 9.99, "isAvailable": true },{ "country": "JP", "countryName": "Japan", "currency": "JPY", "collectionPrice": 2037, "finalPrice": 2037, "isAvailable": true }],"countriesPriced": 3,"lowestPrice": 9.99,"tracks": [{ "trackNumber": 1, "trackName": "I Forgot That You Existed", "durationSec": 171, "explicit": false, "previewUrl": "https://audio-ssl.itunes.apple.com/...m4a" },{ "trackNumber": 2, "trackName": "Cruel Summer", "durationSec": 178, "explicit": false, "previewUrl": "https://audio-ssl.itunes.apple.com/...m4a" }],"scrapedAt": "2026-06-24T04:33:00.000Z"}
Examples
1. Search a song and compare prices across countries
{"searchQuery": "blinding lights","entityTypes": ["song"],"countries": ["US", "GB", "DE", "JP", "BR"],"maxResults": 5}
2. Scrape an album with its full tracklist
{"searchQuery": "tears of the kingdom","entityTypes": ["album"],"includeTracklist": true,"country": "US","maxResults": 3}
3. Browse the top albums chart in the UK
{"browseCharts": "albums","country": "GB","maxResults": 25}
4. Daily price feed for specific IDs across every storefront
{"appleIds": ["1468058165", "1488408555"],"allCountries": true}
💰 Pricing
$1.49 per 1,000 items — you only pay for items actually returned. Failed retries and filtered-out items are never charged.
| Items | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.49 |
| 10,000 | ~$14.90 |
| 100,000 | ~$149.00 |
Subscribers pay less at every tier, down to $0.89 per 1,000 on the Diamond plan.
Flat-rate alternatives typically charge $5 per 1,000 results.
Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | Approx. time |
|---|---|
| 10 items × 1 country | ~10 s |
| 50 items × 5 countries | ~60 s |
| 100 items × all countries | ~5 min |
Multi-country runs add one fast pricing pass per country. Memory stays under 100 MB.
Known limitations
- Buy prices reflect what Apple exposes per storefront; many catalogue items are streaming-only and return availability without a buy price.
- Tracklists are fetched for albums only, in the primary country.
- Region-exclusive titles only appear in the storefronts that carry them.
Technical details
- Source: Apple's public iTunes Search and Lookup APIs and the official Apple Music charts feed.
- Memory: 512 MB.
- Retry: Automatic retry on network errors, exponential backoff, 3 attempts per request.
- Output: Every run writes an
OUTPUTsummary and aHEALTHstatus to the key-value store.
Run it on a schedule
This actor is built for repeat use. Set it to run daily, weekly, or hourly, and the data keeps flowing without you touching it.
- Schedule runs — open the actor, go to Schedules, and pick a cadence. Each run only charges you for the results it returns.
- Connect it to your stack — push results straight to Google Sheets, Slack, a webhook, or your database using Apify Integrations. No glue code needed.
- Pull results via API — every run writes a clean dataset you can fetch with one API call, ready for whatever you build on top of it.
Set it once and it runs on its own.
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl