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
1.6 KiB
1.6 KiB
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
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