- gRPC service with MusicBrainz provider - PostgreSQL schema with migrations - Service layer with database-first caching - Repository pattern for data access - YAML configuration support - Research documentation for 17 music metadata projects
4.5 KiB
Music Metadata Providers & Aggregators Research
Open-source projects that can be queried via API to lookup artist/album/track information.
For deep analysis: See REVERSE_ENGINEERING_PROMPT.md for agent prompts to perform comprehensive architectural analysis of any project.
Execution plan: See REVERSE_ENGINEERING_PLAN.md for the ordered plan covering all 17 projects.
Aggregator ERDs: See AGGREGATORS_ERD.md for entity relationship diagrams of Tier 2 aggregators.
Architecture Analysis: See AGGREGATORS_ANALYSIS.md for deep critique of aggregator flaws and proposed redesign.
Proposed Schema: See ../PROPOSED_ERD.md for the ground-up ERD design addressing all identified flaws.
Quick Reference
| Project | Type | API | Sources | Stars |
|---|---|---|---|---|
| MusicBrainz | Database | REST | Self | Large |
| AcoustID | Fingerprinting | REST | MusicBrainz | - |
| ListenBrainz | Recommendations | REST | Self | - |
| music-metadata-api | Bulk Lookup | REST | Pre-aggregated | New |
| MiniMediaMetadataAPI | Aggregator | REST | 5 providers | 29 |
| Lidarr Metadata | Enhanced MB | REST | MusicBrainz | - |
| Harmony | Aggregator | REST | 10+ providers | 218 |
| GraphBrainz | Enhanced MB | GraphQL | Extensions | ~400 |
| Bedrock-API | Streaming | gRPC | 6 providers | - |
| minim | Library | Python | 7 APIs | - |
| MusicMetaLinker | Entity Linking | Python | 4 sources | - |
| Meelo | Server | REST | MB, Genius | 1,095 |
| Melodee | Server | Multi | 5 sources | 62 |
| Navidrome | Server | Subsonic | Last.fm | High |
| gonic | Server | Subsonic | Last.fm | - |
| LMS | Server | Subsonic | MusicBrainz | 1,569 |
| Accentor | Server | REST | User-controlled | - |
Categories
Tier 1: Dedicated Metadata Services
Core services focused on providing metadata:
- MusicBrainz Server - The canonical open music encyclopedia
- AcoustID - Audio fingerprinting → MusicBrainz lookup
- ListenBrainz - Recommendations, popularity, similar artists
- music-metadata-api - 256M tracks, batch API
- MiniMediaMetadataAPI - Multi-provider aggregation
- Lidarr Metadata API - Enhanced MusicBrainz for Lidarr
Tier 2: Aggregators (Multi-Source)
Projects that combine data from multiple sources:
- Harmony - Intelligent multi-source merge, MusicBrainz seeding
- GraphBrainz - GraphQL interface with extensible schema
- Bedrock-API - gRPC streaming aggregator
- minim - Python library for 7 music APIs
- MusicMetaLinker - Entity linking across databases
Tier 3: Self-Hosted Servers with Metadata APIs
Streaming servers that expose comprehensive metadata:
- Meelo - For collectors, flexible metadata parsing
- Melodee - All-in-one with multiple APIs
- Navidrome - Popular, lightweight
- gonic - Minimal Go implementation
- LMS - C++, comprehensive MusicBrainz support
- Accentor - Metadata-focused, user-controlled
Recommendations
| Use Case | Best Choice |
|---|---|
| Canonical metadata source | MusicBrainz |
| Multi-source aggregation | Harmony or GraphBrainz |
| High-volume lookups | music-metadata-api |
| Lightweight self-hosted | MiniMediaMetadataAPI |
| Audio fingerprint → metadata | AcoustID |
| GraphQL API | GraphBrainz |
| All-in-one streaming + metadata | Melodee or Meelo |
| Python integration | minim |
License Summary
| License | Projects |
|---|---|
| MIT | music-metadata-api, Melodee, GraphBrainz, Bedrock-API, minim, MusicMetaLinker |
| GPL-3.0 | MiniMediaMetadataAPI, Lidarr, Meelo, Navidrome, gonic, LMS |
| GPL-2.0 | MusicBrainz, ListenBrainz |
| AGPL-3.0 | Accentor |