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

Scrobbling

You can send what you listen to in BeetstreamNext to external listening-history services. Supported services are ListenBrainz, Last.fm and Libre.fm.

To scrobble, a user needs the Scrobbling role (it is on by default), and the external_scrobbling setting needs to be enabled server-wide.

Connecting ListenBrainz

  1. On ListenBrainz, copy your user token from your settings page.

  2. In BeetstreamNext, open your account page (or the admin panel’s Connections tab) and paste the token in the Scrobble card.

Connecting Last.fm or Libre.fm

These need the lastfm_api_key and the lastfm_shared_secret settings, set by an admin. Libre.fm uses the same ones.

Note

Last.fm only shows the shared secret once when the API key is created. If you didn’t save it, create a new API key (leave the callback URL empty) and use its new key and secret.

Each user:

  1. In the Scrobble card, click Connect on the service.

  2. Click Open Last.fm, and approve access to your account on their site.

  3. Come back to BeetstreamNext and click I’ve approved it.

Your password is never seen by BeetstreamNext, only the session key returned by Last.fm is stored (encrypted).

Using multi-scrobbler

multi-scrobbler can collect your listens and forward them to many services at once (Last.fm, Maloja, Koito, etc.). There are two ways to use it with BeetstreamNext:

  • ListenBrainz endpoint: in multi-scrobbler, add a ListenBrainz endpoint source, then in the Scrobble card here set the URL to your multi-scrobbler address (for example http://multi-scrobbler:9078) and use the token from that source.

  • Subsonic source: in multi-scrobbler, add a Subsonic source pointing at your BeetstreamNext server with your username and an app password. Nothing to set up here, but multi-scrobbler works by polling the “now playing” endpoint, so play times are less precise.

Important

With the ListenBrainz endpoint on a self-hosted multi-scrobbler instance, you need to allow BeetstreamNext to reach it on your private network: see Services on your local network.

What is sent

WhenWhat
A track starts (client sends a “now playing”)Artist, title, album
A track is finished (client sends a scrobble)Same as above, plus the time you played it, and the track length

If the track has MusicBrainz IDs in your Beets library (recording, release, artist), they are sent too, so ListenBrainz can match the track exactly. BeetstreamNext also identifies itself as the submitting client.

Note

Radio streams, podcasts, and tracks shorter than 30 seconds are not scrobbled.