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
58 lines
1.5 KiB
Markdown
58 lines
1.5 KiB
Markdown
# 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)
|