A high-performance, self-hosted service that enables real-time Spotify listening sessions via a web interface. Synchronize playback with guests using YouTube audio sources, optimized for low latency and minimal resource usage.
- Real-time Synchronization: WebSocket-based state management ensures listeners hear exactly what you hear.
- Efficient Audio: Opus codec streaming with configurable file-based caching.
- Smart Pre-fetching: Background processing of upcoming tracks using
yt-dlpandffmpeg. - Resilient: Automatic
yt-dlpmanagement and self-healing capabilities.
- System: 1 vCPU, ~70MB RAM plus ~90MB per active download (maximum 2 concurrent).
- Network: Residential IP recommended to avoid YouTube datacenter blocks.
- Software:
ffmpeg(required for native deployment). - Spotify Premium: Recommended for uninterrupted playback synchronization.
docker-compose up -dAlternatively, run directly:
docker run -d -p 7093:7093 \
-v ./configs:/app/configs \
-v ./data:/app/data \
togewire- Install
ffmpeg. - Download the latest binary from GitHub Releases.
- Run
./togewire.
- Create an app in the Spotify Developer Dashboard.
- Set the Redirect URI to
http://<your-ip>:7093/callbackor your domain (e.g.,https://togewire.domain.tld/callback). - Launch Togewire and input your credentials via the web interface.
- (Optional) Use Cloudflare Tunnel for secure external access.
- Player: Navigate to
/playerto join the session. - Embed: Refer to
web/togeplayer-iframe/iframe.htmlfor iframe implementation details.
TOGEWIRE is an independent project and is not affiliated with, endorsed by, or sponsored by Spotify, YouTube, or Google. This project utilizes yt-dlp for content retrieval and FFmpeg for audio processing.
Licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See LICENSE for details.