Date: 2026-03-18 | Requested by: user | Rounds: 3 | Pages fetched: 18/20 | Refresh by: 2026-06-18 (cadence: stable)
Stable cadence chosen because API availability and ToS for these services change infrequently; RYM's API has been "in development" for years with no near-term launch signals.
Rate Your Music (RYM) / Sonemic has no public API and no credible timeline for one. Scraping is forbidden by ToS and actively blocked by Cloudflare [1] [2]. All existing Python scrapers are broken [3]. The official interest registration form remains open but yields no access [4]. For MixBoard, RYM is not a viable data source.
Practical alternatives exist across a spectrum of richness and accessibility. MusicBrainz (already partially integrated via Chad Music's mb_id) offers the strongest foundation — free, open, well-documented REST API with genres, folksonomy tags, and ratings [5] [6]. Last.fm provides community-driven tags that include mood-like descriptors ("melancholic", "atmospheric") and strong similar-artist data [7] [8]. Discogs has an official API with styles/genres and rich release metadata, though its tag taxonomy is shallower [9] [10]. ListenBrainz extends MusicBrainz with listening data and metadata lookup APIs [11]. AOTY and AllMusic have no APIs and rely on scraping (both Cloudflare-protected) — impractical for a desktop app [12] [13].
For RYM-like descriptor depth ("melancholic", "lo-fi", "atmospheric"), the closest achievable combination is MusicBrainz folksonomy tags + Last.fm community tags. Neither individually matches RYM's curated descriptor system, but together they cover significant ground.
RYM has no public API. The Sonemic roadmap lists APIs as a post-completion deliverable, with prerequisite features still listed as "partially completed" [1]. An interest registration form exists at rateyourmusic.com/data-access/register-interest/ but provides no access [4]. A "Sonemic API beta launch" discussion thread from January 2019 exists with no follow-up [14]. Reddit threads from 2022 and 2023 confirm continued community frustration about the lack of API [2] [15].
Scraping is explicitly forbidden by RYM's Terms of Service: "Scraping / crawling RYM with automated tools without permission is forbidden [...] you can end up having your account permanently banned" [1]. The site is protected by Cloudflare with aggressive bot detection [1]. As of August 2024, even VPN access required a pilot authentication program [1].
Two Python scraping projects exist on GitHub:
dbeley/rymscraper) — explicitly marked as "not properly working anymore" due to Cloudflare protection [3]0hr1/IndexYourMusic) — self-described as "technically goes against RYM's TOS", uses sleep-based rate limiting, scrapes personal ratings only [16]Both are fragile, ToS-violating, and unsuitable for production integration in a desktop app.
MusicBrainz provides a comprehensive REST API (XML and JSON) with 13 core entity types: area, artist, event, genre, instrument, label, place, recording, release, release-group, series, work, url [5].
API details:
https://musicbrainz.org/ws/2/Data available:
inc=genres [18] [19]inc=tags — includes non-genre tags like moods, nationalities, descriptors [20] [21]inc=ratings [22]Genre/tag depth: MusicBrainz genres are a curated subset of folksonomy tags. The genre list includes granular entries (e.g., "acid house", "canterbury scene", "canzone d'autore") but lacks RYM-style mood descriptors [19]. However, folksonomy tags are unrestricted — users can and do tag with mood-like terms, though coverage is inconsistent and not curated for this purpose [20] [21].
ToS: Open data under CC0 (public domain) for core data, CC BY-NC-SA for community-contributed data. Fully permissible for desktop app use [5].
MixBoard relevance: Chad Music already uses mb_id fields, making MusicBrainz the natural primary source for metadata enrichment.
Last.fm provides a mature, free API with strong community tag data that includes mood-like descriptors.
API details:
https://ws.audioscrobbler.com/2.0/Data available:
Tag depth: Last.fm tags are crowdsourced and unstructured. Tag quality varies, but consensus-based weighting surfaces relevant tags effectively [26]. Tags include genres ("trip hop", "post-punk"), moods ("melancholic", "uplifting"), descriptors ("female vocalist", "instrumental"), and freeform labels. This is the closest practical approximation to RYM's descriptor system among available APIs.
ToS: API is free for non-commercial use. Commercial use requires contacting Last.fm. Desktop app integration for personal use is permitted [7].
API details:
https://api.discogs.com/Data available:
Tag depth: Discogs' genre/style system is two-level: broad genres + specific styles. It lacks mood descriptors entirely. Styles are curated from a fixed list — no freeform tagging [9].
ToS: API Terms of Use prohibit replicating or duplicating the database, circumventing rate limits, or charging for access to Discogs data [10]. Desktop app integration for metadata enrichment appears permissible as long as data is not replicated wholesale. The ToS state: "You will not [...] Attempt to or actually replicate, duplicate, reverse engineer, or access any part of Our API [...] for any purpose other than in compliance with these TOU" [10].
ListenBrainz is the MetaBrainz Foundation's open-source listening history service (like Last.fm but open).
API details:
https://api.listenbrainz.orgData available:
Relevance: ListenBrainz's metadata lookup API provides a convenient way to resolve artist+track names to MusicBrainz data with tags/genres included, without needing to do multi-step MB API lookups.
AOTY has no official API. The site has Cloudflare protection against bots [12].
An unofficial Python scraper exists on PyPI: album-of-the-year-api (v0.2.12) — provides methods for artist scores, album info, user data via web parsing [28]. The package explicitly states: "The website doesn't currently provide API support so web parsing is required to obtain data. [...] searching and POST requests are not allowed" [28].
Data available (via scraping): User scores, critic scores, album info, artist info; no mood/descriptor tagging system.
Verdict: Impractical for a shipping desktop app. Fragile, ToS-ambiguous, Cloudflare-protected.
AllMusic has no public API [13] [29]. A basic Node.js scraper exists (fpbrault/allmusic-scraper) but is minimal [13]. AllMusic's website uses heavy JavaScript rendering and anti-scraping measures [29].
Data available (if accessible): AllMusic has one of the richest professionally curated music taxonomies, including genres, styles, moods (e.g., "Bittersweet", "Brooding", "Reflective"), and themes (e.g., "Late Night", "Road Trip"). However, this data is proprietary and inaccessible via API.
Verdict: Not viable for programmatic access. The taxonomy is excellent in theory but locked behind a proprietary wall.
The music metadata API landscape in 2026 is bifurcated between open/accessible services with moderate tag depth and proprietary/closed services with rich tag depth.
Open and accessible: MusicBrainz and Last.fm form the practical foundation for most music apps needing metadata enrichment. MusicBrainz provides structured, curated data with growing genre coverage. Last.fm provides the richest freely-accessible tag data, with community-driven mood and descriptor tags that approximate (but don't match) RYM's depth. ListenBrainz bridges these by providing MusicBrainz data through convenient lookup APIs.
Rich but closed: RYM and AllMusic have the deepest, most nuanced tag/descriptor systems. RYM's descriptor system (mood, theme, lyrical content, form) is particularly valued by the music community [1]. AllMusic's professionally curated moods and themes are similarly rich. Neither offers API access, and both actively prevent scraping.
Middle ground: Discogs provides a solid official API but its genre/style system is relatively shallow (~300 styles, no moods). It excels at physical release metadata (formats, pressings, label info) rather than descriptive tagging.
For a desktop app like MixBoard seeking RYM-like descriptor enrichment, the practical approach involves layering multiple open sources: MusicBrainz for core metadata + genres, Last.fm for community tags including mood descriptors, and optionally Discogs for supplementary release info. This combination won't replicate RYM's curated descriptor depth, but it covers the most ground that's legally and technically feasible.
The AcousticBrainz project (which provided algorithmic mood/genre classification) has been deprecated [30]. Its data is still available in dumps but receives no new submissions. Commercial alternatives for AI-based music analysis exist (Cyanite, Bridge.audio) but are enterprise-oriented and cost-prohibitive for a personal app [31].
| Name | Type | Date | URL | Relevance |
|---|---|---|---|---|
| MusicBrainz API | API | Active | https://musicbrainz.org/doc/MusicBrainz_API | Primary metadata source, already linked via mb_id |
| Last.fm API | API | Active | https://www.last.fm/api | Best source for mood/descriptor tags |
| Discogs API | API | Active | https://www.discogs.com/developers | Official API, genre/style data |
| ListenBrainz API | API | Active | https://listenbrainz.readthedocs.io/en/latest/users/api/ | MB metadata lookup, listening stats |
| lastfm-mcp | MCP Server | 2026 | https://github.com/rianvdm/lastfm-mcp | MCP server for Last.fm API access |
| rymscraper | Scraper (broken) | 2020~ | https://github.com/dbeley/rymscraper | Python RYM scraper, broken by Cloudflare |
| album-of-the-year-api | PyPI Package | Active | https://pypi.org/project/album-of-the-year-api/ | Unofficial AOTY scraper |
| ChartBrainz | Web App | 2022 | MetaBrainz forum | RYM-style charts using MB data |
| Sonemic Roadmap | Roadmap | Active | https://sonemic.com/ | RYM/Sonemic development status |
MusicBrainz rate limit: Official docs state "never make more than ONE call per second" [6], but community discussion and developer confirmation indicate 5 requests per 5 seconds (burst) is acceptable [17]. The practical rate limit is more lenient than documented.
Last.fm commercial use: The API ToS are ambiguous about what constitutes "commercial use" for a free desktop app. A music player that doesn't charge for the Last.fm integration feature likely qualifies as non-commercial, but this is not explicitly clarified [7].
RYM API timeline: The Sonemic roadmap lists APIs as a future deliverable, but prerequisite features have been "partially completed" for years [1]. Multiple Reddit threads from 2022-2024 show community frustration about the lack of progress [2] [15]. No credible evidence of imminent launch exists.
Discogs ToS for desktop apps: The API ToS prohibit "replicating or duplicating" the database [10]. Using Discogs data to enrich local metadata (caching genre/style for tracks) may technically violate this — interpretation depends on scale and purpose.
Well-established:
Uncertain:
Gaps:
rianvdm/lastfm-mcp) is a recent project (2026) showing continued ecosystem activity [32]Round 1 — Broad sweep:
Round 2 — Targeted APIs:
Round 3 — Verification: