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:
Alexander
2026-04-28 16:27:14 +02:00
commit a1f6701bac
163 changed files with 95884 additions and 0 deletions
+57
View File
@@ -0,0 +1,57 @@
# Melodee
## Overview
Industrial-grade self-hosted streaming music server. Comprehensive music management and streaming system with metadata enrichment from multiple sources.
## Key Features
- **Stars**: 62
- **APIs**: OpenSubsonic, Jellyfin API, Native REST API
- **Metadata Sources**: MusicBrainz (local cache), Last.fm, Spotify, iTunes, Deezer
- **Formats**: AAC, AC3, M4A, FLAC, OGG, APE, MP3, WAV, WMA, and more
- **License**: MIT
## Source
| Resource | URL |
|----------|-----|
| **Repository** | https://github.com/melodee-project/melodee |
| **Website** | https://melodee.org |
| **Documentation** | https://melodee.org/docs |
## Architecture
Multi-stage pipeline:
1. **Inbound** - Scan detects new files
2. **Ingestion** - Convert, normalize tags, apply cleanup rules
3. **Staging** - Optional manual curation
4. **Storage** - Publish to libraries
5. **Indexed** - Fast search and streaming via APIs
## Tech Stack
- **Language**: C# (.NET 10)
- **UI**: Blazor (Radzen components)
- **Scheduling**: Quartz.NET
- **Database**: PostgreSQL
## APIs
- **OpenSubsonic** - Compatible with Subsonic clients
- **Jellyfin API** - Compatible with Finamp, Feishin, Streamyfin
- **Native REST** - `/scalar/v1` with OpenAPI spec at `/openapi/v1.json`
## Self-Hosting
```bash
docker pull ghcr.io/melodee-project/melodee:latest
docker run -p 8080:8080 -v /path/to/music:/music melodee
```
## Notes
- Designed for homelab (runs on Raspberry Pi to full servers)
- MusicBrainz local cache with monthly updates
- Real-time transcoding (MP3, Ogg, Opus)
- Scrobbling support (Last.fm)