Related to #300
Research: docs/research/open-music-metadata-sources.md
Goal
Use MusicBrainz as typed identity evidence for artists, albums, and tracks, with open-data provenance and conservative automatic matching. Do not treat it as another broad link scraper.
Scope
- Replace first-result MusicBrainz text matching with typed artist, release-group/release, and recording lookups.
- Match by existing MBID, exact MusicBrainz URL relationship, or exact ISRC before metadata search.
- Treat metadata search as candidate generation with a conservative acceptance policy.
- Persist MusicBrainz links and provenance in existing entity-link metadata.
- Add a runtime-wide one-request-per-second limiter, contactable User-Agent, retry/backoff, and positive/negative caching.
- Add optional Cover Art Archive fallback only when a release MBID is known, without copying artwork by default.
- Add source attribution in the product.
- Document that commercial deployment requires a MetaBrainz service agreement or a separately designed CC0 dump ingestion path.
Identity model
- Artist: artist MBID.
- Album concept: release-group MBID.
- Album edition and artwork evidence: release MBID.
- Track: recording MBID plus ISRC evidence.
- Playlist: no open-database or cross-platform matching.
Playlist invariant
Playlists make no requests to MusicBrainz, Cover Art Archive, Wikidata, ListenBrainz, AcoustID, or Odesli. They resolve only through the exact submitted source platform and source ID.
Acceptance criteria
Out of scope
- MusicBrainz dump hosting or replication.
- ListenBrainz recommendations or popularity.
- AcoustID fingerprint generation.
- Discogs API metadata ingestion.
- Cross-platform playlist matching.
Related to #300
Research: docs/research/open-music-metadata-sources.md
Goal
Use MusicBrainz as typed identity evidence for artists, albums, and tracks, with open-data provenance and conservative automatic matching. Do not treat it as another broad link scraper.
Scope
Identity model
Playlist invariant
Playlists make no requests to MusicBrainz, Cover Art Archive, Wikidata, ListenBrainz, AcoustID, or Odesli. They resolve only through the exact submitted source platform and source ID.
Acceptance criteria
Out of scope