AllMusic Editorial Ratings, Genres & Taxonomy Scraper
Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.
AllMusic Editorial Ratings, Genres & Taxonomy Scraper
Scrapes AllMusic's editorially curated artist and album data — the only source of AllMusic's proprietary genre/style taxonomy, staff star ratings, and similar-artist relationships. This data is not available from any music API (Spotify, MusicBrainz, Last.fm, etc.).
What you get
Each record contains:
| Field | Description |
|---|---|
allmusic_id |
AllMusic entity ID (MN... for artists, MW... for albums) |
entity_type |
artist or album |
name |
Artist or album name |
active_years |
Decades active — e.g. 1990s - 2020s (artists only) |
editorial_rating |
AllMusic staff star rating 0–10 (albums only, when staff-reviewed) |
genres |
Pipe-separated genres — e.g. `Pop/Rock |
styles |
Pipe-separated styles — e.g. `Black Metal |
similar_artists |
Pipe-separated similar artist names |
discography_count |
Number of releases in discography timeline (album pages only) |
allmusic_url |
Canonical AllMusic URL |
Note: AllMusic withholds moods, themes and biography text from the page itself, so those fields are always
nullin the output. A future upgrade would capture them.
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
urls |
array | — | Direct AllMusic artist/album URLs. If provided, sitemap crawl is skipped |
maxItems |
integer | 10 | Maximum records to scrape (0 = no limit) |
entityType |
string | artist |
Filter sitemap crawl to artist, album, or both |
Direct URL mode
Supply a list of AllMusic artist or album URLs to scrape specific entities:
{
"urls": [
{ "url": "https://www.allmusic.com/artist/septicflesh-mn0000000031" },
{ "url": "https://www.allmusic.com/artist/radiohead-mn0000260174" }
],
"maxItems": 100
}
Sitemap crawl mode
Leave urls empty to crawl entities from AllMusic's 396-entry sitemap index (~3M+ artists and albums):
{
"maxItems": 1000,
"entityType": "artist"
}
Sample output
{
"allmusic_id": "MN0000000031",
"entity_type": "artist",
"name": "SepticFlesh",
"active_years": "1990s - 2020s",
"editorial_rating": null,
"genres": "Pop/Rock",
"styles": "Black Metal | Death Metal | Heavy Metal | Symphonic Black Metal",
"moods": null,
"themes": null,
"editorial_bio_summary": null,
"similar_artists": "Hypocrisy | Samael | Rotting Christ | Dimmu Borgir | Dark Tranquillity | Nightrage | Mors Principium Est",
"influenced_by": null,
"followers_of": null,
"discography_count": null,
"allmusic_url": "https://www.allmusic.com/artist/septicflesh-mn0000000031"
}
Use cases
- Music recommendation research — AllMusic styles/genres as feature signals for ML models
- Library metadata enrichment — Linking AllMusic IDs via MusicBrainz url-rels for cross-source joins
- Music journalism — Bulk export of editorial ratings for catalog analysis
- Knowledge graph construction — Similar-artist relationships as graph edges
Technical notes
- Quick and cheap per album
- Cloudflare passive tracking present but not blocking (200 OK responses)
- Polite concurrency (5 parallel requests) to stay within Cloudflare monitoring thresholds
- AllMusic IDs (
mn.../mw...) are stable join keys referenced by MusicBrainz url-rels