Files
metadata-agregator/docs/research/music-metadata-api
Alexander a1f6701bac 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
2026-04-28 16:28:53 +02:00
..

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