feat: initial implementation of metadata aggregator
- 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
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
# MusicBrainz Server
|
||||
|
||||
## Overview
|
||||
|
||||
MusicBrainz is the canonical open-source music encyclopedia. It's a community-maintained database that collects music metadata and makes it available to the public via a REST API.
|
||||
|
||||
## Key Features
|
||||
|
||||
- **Coverage**: 100M+ tracks, comprehensive artist/release/recording/work metadata
|
||||
- **Data**: Relationships, genres, tags, ratings, ISRCs, barcodes
|
||||
- **API**: REST (XML/JSON)
|
||||
- **License**: GPL-2.0 (code), CC0/CC BY-NC-SA (data)
|
||||
|
||||
## Source
|
||||
|
||||
| Resource | URL |
|
||||
|----------|-----|
|
||||
| **Repository** | https://github.com/metabrainz/musicbrainz-server |
|
||||
| **Docker Setup** | https://github.com/metabrainz/musicbrainz-docker |
|
||||
| **API Documentation** | https://musicbrainz.org/doc/MusicBrainz_API |
|
||||
| **Website** | https://musicbrainz.org |
|
||||
|
||||
## API Examples
|
||||
|
||||
```bash
|
||||
# Lookup artist by MBID
|
||||
GET /ws/2/artist/{mbid}?fmt=json
|
||||
|
||||
# Search releases
|
||||
GET /ws/2/release?query=artist:nirvana&fmt=json
|
||||
|
||||
# Lookup by ISRC
|
||||
GET /ws/2/recording?isrc=USEE10001993
|
||||
```
|
||||
|
||||
## Self-Hosting
|
||||
|
||||
Requires PostgreSQL + Solr. Use the official Docker setup:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/metabrainz/musicbrainz-docker.git
|
||||
cd musicbrainz-docker
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- Foundation for most other music metadata projects
|
||||
- Replication support to keep local mirror up-to-date
|
||||
- MetaBrainz Foundation (non-profit) maintains it
|
||||
Reference in New Issue
Block a user