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,69 @@
|
||||
# LMS (Lightweight Music Server)
|
||||
|
||||
## Overview
|
||||
|
||||
Self-hosted music streaming software with comprehensive metadata support. Access your music collection from anywhere using a web interface.
|
||||
|
||||
## Key Features
|
||||
|
||||
- **Stars**: 1,569
|
||||
- **API**: Subsonic/OpenSubsonic
|
||||
- **Language**: C++
|
||||
- **Metadata**: MusicBrainz identifiers, artist relationships, release types
|
||||
- **License**: GPL-3.0
|
||||
|
||||
## Source
|
||||
|
||||
| Resource | URL |
|
||||
|----------|-----|
|
||||
| **Repository** | https://github.com/epoupon/lms |
|
||||
| **AUR Package** | https://aur.archlinux.org/packages/lms |
|
||||
|
||||
## Metadata Features
|
||||
|
||||
- Multi-valued tags: genre, mood, artists
|
||||
- Artist relationships: composer, conductor, lyricist, mixer, performer, producer, remixer
|
||||
- Release types: album, single, EP, compilation, live
|
||||
- Release groups (different versions: remasters, reissues)
|
||||
- MusicBrainz identifier support
|
||||
- ListenBrainz integration
|
||||
|
||||
## Supported Tags
|
||||
|
||||
```
|
||||
# MusicBrainz IDs
|
||||
musicbrainz_composerid, musicbrainz_conductorid
|
||||
musicbrainz_lyricistid, musicbrainz_mixerid
|
||||
musicbrainz_producerid, musicbrainz_remixerid
|
||||
|
||||
# Sort order
|
||||
albumartistssort, composerssort, conductorssort
|
||||
lyricistssort, mixerssort, producerssort, remixerssort
|
||||
```
|
||||
|
||||
## Artist Info Folder
|
||||
|
||||
Supports Kodi-style artist information folders:
|
||||
- `artist.nfo` files for biography, sort name, MBID
|
||||
- Custom artist images
|
||||
|
||||
## Self-Hosting
|
||||
|
||||
```bash
|
||||
# Build from source (requires C++ compiler)
|
||||
git clone https://github.com/epoupon/lms.git
|
||||
cd lms
|
||||
mkdir build && cd build
|
||||
cmake ..
|
||||
make -j$(nproc)
|
||||
|
||||
# Or use Docker
|
||||
docker pull epoupon/lms
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- Very complete metadata support
|
||||
- Handles duplicate artist/release names via MBIDs
|
||||
- Lightweight C++ implementation
|
||||
- Active development (3 open issues)
|
||||
Reference in New Issue
Block a user