a1f6701bac
- 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
Music Metadata API
Overview
A high-performance metadata enrichment API for music servers, backed by SQLite databases containing 256 million tracks. Written in Go with OpenAPI 3.1 spec.
Key Features
- Coverage: 256M tracks in SQLite databases
- Performance: 100 req/s with burst capacity of 200
- Batch API: Up to 400 entities per request
- Data: Images, genres, labels, copyright, release dates, ISRC
- License: MIT
Source
| Resource | URL |
|---|---|
| Repository | https://github.com/Aunali321/music-metadata-api |
| API Docs | Swagger UI at /docs endpoint |
API Endpoints
| Endpoint | Description |
|---|---|
POST /batch/lookup |
Batch lookup (up to 400 entities) |
GET /lookup/isrc/{isrc} |
Lookup tracks by ISRC |
GET /lookup/track/{id} |
Lookup track by ID |
GET /lookup/artist/{id} |
Lookup artist by ID |
GET /lookup/album/{id} |
Lookup album by ID |
GET /lookup/album/{id}/tracks |
Get all tracks in album |
GET /search/track?q=&limit= |
Search tracks by name |
GET /search/artist?q=&limit= |
Search artists by name |
Self-Hosting
# Docker
docker run -p 8080:8080 \
-v /path/to/databases:/data:ro \
ghcr.io/aunali321/music-metadata-api:latest
# Or build locally (requires Go 1.24+)
./metadata-api -db /path/to/main_database.sqlite3
Notes
- Requires separate SQLite databases (not included in repo)
- Independent open-source project (not affiliated with Spotify)
- Best for high-volume bulk lookups
- OpenAPI 3.1 spec available at
/openapi.yaml