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,57 @@
|
||||
# Bedrock-API
|
||||
|
||||
## Overview
|
||||
|
||||
Multi-source music streaming aggregator written in Go. Provides unified gRPC API across multiple streaming platforms with cross-platform track bridging.
|
||||
|
||||
## Key Features
|
||||
|
||||
- **API**: gRPC + HTTP streaming proxy
|
||||
- **Performance**: High-performance Go implementation
|
||||
- **Bridging**: Resolves non-streamable tracks to playable alternatives
|
||||
- **Auth**: JWT with PostgreSQL backend
|
||||
- **License**: MIT
|
||||
|
||||
## Source
|
||||
|
||||
| Resource | URL |
|
||||
|----------|-----|
|
||||
| **Repository** | https://github.com/feralbureau/bedrock-api |
|
||||
|
||||
## Supported Providers
|
||||
|
||||
| Provider | Metadata | Search | Streaming | Playlist | Bridge |
|
||||
|----------|----------|--------|-----------|----------|--------|
|
||||
| Spotify | Yes | Yes | Bridged | Yes | SoundCloud |
|
||||
| SoundCloud | Yes | Yes | Yes | Yes | - |
|
||||
| Deezer | Yes | Yes | Bridged | Yes | SoundCloud |
|
||||
| YouTube Music | Yes | Yes | Limited | Yes | SoundCloud |
|
||||
| Yandex | Partial | Partial | - | - | - |
|
||||
| VK | Partial | Partial | - | - | - |
|
||||
|
||||
## Architecture
|
||||
|
||||
- **Unified gRPC/Protobuf models** for all music entities
|
||||
- **Cross-platform bridging** - resolves non-streamable tracks
|
||||
- **Parallel provider searches** with Go concurrency
|
||||
- **HTTP streaming proxy** with range request support
|
||||
- **Lyrics integration** (LrcLib, Genius in progress)
|
||||
|
||||
## Self-Hosting
|
||||
|
||||
```bash
|
||||
git clone https://github.com/feralbureau/bedrock-api.git
|
||||
cd bedrock-api
|
||||
|
||||
# Configure providers and database
|
||||
cp config.example.yaml config.yaml
|
||||
|
||||
# Run
|
||||
go run .
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- Best for streaming aggregation use cases
|
||||
- gRPC for high performance
|
||||
- Automatic track resolution across platforms
|
||||
Reference in New Issue
Block a user