Music is universal. Your links should be too.
TuneBridge is a cross-platform music link converter that helps you share music effortlessly across streaming platforms. Share a link from Apple Music, Spotify, or Tidal, and TuneBridge finds the same track or album on all supported services—ensuring every listener can enjoy the music, regardless of their preferred platform.
Ever wanted to share your favorite song, only to realize your friend uses a different streaming service? TuneBridge solves this by automatically finding the same track or album on all major platforms—so everyone can listen, no matter where they stream.
- Instant Conversion - Drop a music link and get matches across Apple Music, Spotify, and Tidal
- Discord Bot - Automatically converts music links in your Discord server
- Web Interface - Simple browser-based tool for quick conversions
- RESTful API - Integrate music link conversion into your own apps
- Accurate Matching - Uses ISRC (tracks) and UPC (albums) for precise cross-platform matches
- Rich Previews - OpenGraph cards that work everywhere—Discord, Slack, Twitter, and more
- Aspire Dashboard - Built-in observability and telemetry dashboard (role-based access)
Get started in 5 minutes with automatic HTTPS:
git clone https://github.com/tsmarvin/TuneBridge.git
cd TuneBridge
./setup-secrets.sh
nano apple_key.p8
nano atproto_password.txt
nano discord_token.txt
nano spotify_client_secret.txt
nano tidal_client_secret.txt
# Edit secrets/ with your credentials
cp .env.example .env
nano .env
# Edit .env with your configuration
docker-compose up -dVisit https://localhost to start converting links.
📖 Complete Quick Start Guide →
docker run -p 10000:10000 \
-e SPOTIFY_CLIENT_ID="your_client_id" \
-e SPOTIFY_CLIENT_SECRET="your_client_secret" \
ghcr.io/tsmarvin/tunebridge:latestVisit http://localhost:10000 to start converting links.
- Install .NET 10.0 SDK
- Clone the repository
- Add your API credentials to
appsettings.json(see Configuration Guide) - Run:
dotnet run
- Quick Start Guide - Get up and running in 5 minutes
- Configuration Guide - Set up API credentials and environment variables
- API Reference - Integrate TuneBridge into your applications
- Deployment Guide - Deploy to Docker, Kubernetes, or cloud platforms
- Testing Guide - Run and write tests
- Caching Guide - Configure ATProto PDS caching
- ATProto Lexicon Setup - Configure lexicon resolution and DNS for ATProto compliance
TuneBridge connects to official APIs from music streaming services. When you provide a link:
- Extract - Identifies the track or album from the URL
- Match - Uses external IDs (ISRC/UPC) or metadata to find equivalents
- Return - Provides links for all available platforms
The result? You share the music, not the platform.
Add TuneBridge to your Discord server to automatically convert music links in conversations:
- Get a Discord bot token (see Configuration Guide)
- Set
DISCORD_TOKENenvironment variable - Invite the bot to your server
When someone shares a Spotify link, TuneBridge responds with a card showing Apple Music and Tidal alternatives—and vice versa.
- .NET 10.0 - Modern, cross-platform framework
- Apple MusicKit API - Apple Music integration
- Spotify Web API - Spotify integration
- Tidal API - Tidal integration
- NetCord - Discord bot library
- API keys are hashed and never stored in plain text
- Input URLs with tracking parameters are kept private (not stored on ATProto PDS)
- Rate limiting ensures fair usage (20 requests/hour per user)
- All credentials configured via environment variables
TuneBridge can be deployed anywhere:
- Docker - Simple containerized deployment
- Cloud Services - Azure Container Apps, AWS ECS, Google Cloud Run
- Kubernetes - Scalable orchestration
- Self-hosted - Run natively on Linux, Windows, or macOS
See the Deployment Guide for platform-specific instructions.
Create an account to get your API key:
curl -X POST http://localhost:10000/account/register \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","password":"SecurePassword123"}'Convert a link:
curl -X POST http://localhost:10000/music/lookup/urlList \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"uri":"https://open.spotify.com/track/..."}'See the API Reference for complete documentation.
# Run all tests
dotnet test
# Run unit tests only (no API credentials needed)
dotnet test --filter "FullyQualifiedName~Unit"See the Testing Guide for more details.
This project is licensed under the MIT License - see the LICENSE file for details.
Taylor Marvin
Because music connects us—no matter where we listen.