Important
version 2.2.0 breaking changes
- Subsonic clients can no longer sign in with the account password. Create an app passwords instead. The account password only works in the web UI.
- Account passwords are now stored as scrypt hashes. The upgrade migrates them automatically (using your
BEETSTREAMNEXT_KEY, so keep the same key for the first start after upgrading).
BeetstreamNext exposes your Beets music library over the OpenSubsonic API, letting you stream your music to any Subsonic/OpenSubsonic/Navidrome client. It supports essentially the whole specification (only video-streaming is left out), and adds a bunch of its own extras :)
- Multi-user accounts: per-user bookmarks, ratings, favorites, play queues... (details)
- Streaming: direct play, on-the-fly transcoding, adaptive-bitrate HLS, server-side ReplayGain, self-healing streams (details)
- Jukebox mode: play on the server's own hardware, a Sonos speaker, or a Chromecast device (details)
- Library augmentation: artist bios, similar artists/songs, ratings, lyrics, sonic similarity (details)
- Internet radio & podcasts, managed independently of your Beets library (details)
- Playlists: BeetstreamNext's own per-user playlists, and read/write access to Beets'
playlist/smartplaylistfiles (details) - Public shares: landing pages and download links, no client or account required (details)
- Beets import & notifications: acts as a replacement for Betanin. Run and watch imports from the admin panel, reimport skipped albums, and receive Apprise alerts.
- Security: IP allow/deny lists, adaptive rate-limiting (details)
- Advanced Beets queries: prefix a client search with
beets:/b:to run a full Beets query instead of a simple search
- External scrobbling (Last.fm, Libre.fm, ListenBrainz)
- Chromaprint-based sonic similarity (alternative to AudioMuse-AI)
- Jukebox: Web UI control panel, and more backends (Snapcast, DLNA/UPnP, AirPlay)
- Web UI player and library browser (in-browser playback, sortable track table)
- Playlist export to Spotify, Deezer, Tidal, etc
- Augmented public shares for read-only setups (serve versions with clean tags and embedded art)
- Share options: Selectable format/bitrate for shares downloads
- Share options: Expiry or download-count limits, password protection
- Proper OIDC support (Authelia, Authentik, etc)
- Prometheus metrics
- Backup/restore settings and BeetstreamNext data
Read the full docs for installation, configuration reference, all features in detail, API coverage, reverse-proxy/CORS setup, and tested clients.
git clone https://github.com/FlorentLM/BeetstreamNext.git
cd BeetstreamNext
pip install .Enable it in Beets' config.yaml:
plugins: beetstreamnextThen run it:
beet beetstreamnextBeetstreamNext can also run standalone, see Installation.
This project is licensed under the MIT License. See the LICENSE file for details.
No ads, no telemetry, no analytics. Your data stays on your server (details).

