Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Features overview

Zero-file-modification by default

BeetstreamNext is designed for people who manage metadata inside Beets but don’t want tags written back to disk. Every setting that would write something to your files/disk defaults to off, and disk writes in general are additionally gated behind the allow_disk_writes setting.

OpenSubsonic API: Full coverage

BeetstreamNext implements (almost) all of the Subsonic/OpenSubsonic REST API, including its extensions.

The only endpoints it doesn’t support are the video-related ones (BeetstreamNext is an audio server, and Beets doesn’t manage video anyway). See API coverage for the full endpoint-by-endpoint checklist, and Tested clients for apps confirmed to work.

BeetstreamNext’s additional features

AreaAdditions over BeetsMore details
StreamingDirect play, on-the-fly transcoding, adaptive-bitrate HLS, server-side ReplayGain, self-healing streamsStreaming & audio quality
Metadata & artworkArtist bios, top tracks, similar artists/songs, album/artist ratings, lyrics, album editions, sonic similarityLibrary augmentation
Multi-userMulti-user auth, user roles, bookmarks/ratings/favorites/queues that sync across devices, chat featuresAccounts, permissions & chat
Non-library audioInternet radio stations, podcast subscriptions & downloadsRadio & podcasts
ScrobblingSend your listens to ListenBrainzScrobbling
PlaylistsBeetstreamNext’s own per-user playlists, and read/write access to Beets’ playlist/smartplaylist filesPlaylists
SharingPublic landing pages and download links (no client or account required)Sharing
SecurityIP allow/deny lists, adaptive rate-limitingSecurity
Jukebox modeOpenSubsonic’s jukebox mode, augmented by Sonos and Chromecast supportJukebox mode
Beets importBetanin-like interactive or non-interactive imports (also triggerable from Subsonic clients) and watched-folder auto-importBeets import
NotificationsApprise notifications (Discord, Telegram, ntfy, email, webhooks, etc) when imports start, finish, fail, or need inputNotifications
Advanced Beets queriesPrefix any search from your client app with beets: or b: to run a complex Beets query instead of simple searchLibrary augmentation

External data sources

Additional data and library augmentation comes from third-party services (they are all entirely optional):

DataSourceEnabled by
Artist biographyLast.fm (if lastfm_api_key is set), or Wikipediafetch_artists_biographies
Artist top tracks & similar artists/songsLast.fmlastfm_api_key
Artist imagesDeezer’s public search APIfetch_artists_images
Missing album artCover Art Archivefetch_artists_images/save_album_art
Album/artist community ratingDiscogs’ public ratingdiscogs_ratings
Album edition/version info (e.g. “Deluxe Edition”)MusicBrainzfetch_album_version
Acoustic similarity & playlist path-findingAudioMuse-AI (your own self-hosted instance)audiomuse_url and audiomuse_api_token
Radio station / podcast faviconsThe station/feed’s site, falling back to DuckDuckGo’s icon proxyautomatic, when an icon isn’t supplied
Internet radio station discoveryRadio Browserenable_radio_discovery
Podcast channel discoveryPodcast Indexenable_podcast_discovery
Song LyricsUses Beets’ lyrics plugin’s configured external sourcesfetch_lyrics/save_lyrics

Important

None of these ever get written into Beets or your files, unless the matching save_* setting is also enabled. See Library augmentation for more detail.


See the configuration reference for any of the settings mentioned here.