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.6 KiB
Markdown
58 lines
1.6 KiB
Markdown
# 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
|