Listenbrainz (Endpoint)
This Source enables multi-scrobbler to accept scrobbles from outside applications as if it was a Listenbrainz server.
If your service/player has a "Scrobble to Listenbrainz" feature and there is an option to set the Listenbrainz URL then multi-scrobbler can accept scrobbles from that service/player by imitating a real Listenbrainz server.
- To scrobble to Listenbrainz, create a Listenbrainz (Client)
- To monitor and re-scrobble activity from your Listenbrainz account, create a Listenbrainz (Source)
Setup
URL
In general, you should use one of the following as the base URL when configuring your application to scrobble to multi-scrobbler:
http://myMultiScrobblerIP:9078http://myMultiScrobblerIP:9078/1/
Default Scrobble Submit URL
If you are not using a slug for multiple endpoints then multi-scrobbler will accept Listenbrainz scrobbles at
http://myMultiScrobblerIP:9078/1/submit-listens
which is the standard Listenbrainz server path for scrobbling.
Some Services Require HTTPS
Some services that can scrobble to a custom Listenbrainz URL may require the URL to have a real domain (example.com) and/or use SSL (https://). In this case you should setup multi-scrobbler behind a reverse proxy to support this functionality. It is out of the scope of this project to do this solely within multi-scrobbler.
Token
Most Listenbrainz clients require a token (Authentication Token) to be provided during setup. This value can be anything you want, just make sure to use the same value for token in your multi-scrobbler configuration for the endpoint.
Multiple Endpoints
If you are setting up multiple Listenbrainz (Endpoint) Sources MS can differentiate scrobbles based on Token so that you can use the same endpoint for many users.
However, if you cannot configure multiple tokens for your scenario you may also use a URL Slug to tell MS which Source belongs to a specific user.
Using a Slug
When a slug is defined in ENV/File config MS will listen for listenbrainz routes using the slug as a the route path. Example:
LZE_SLUG=foobar
MS will accept calls to
http://myMultiScrobblerIP:9078/api/listenbrainz/foobar
for scrobble submission.
Setup for Popular Apps
Navidrome
Details
Set the ListenBrainz.BaseURL (env ND_LISTENBRAINZ_BASEURL) to http://myMultiScrobblerIP:9078/1/
Music Assistant
Details
- In your Music Assistant UI navigate to Settings -> Plugins
- Click Add a plugin
- Add ListenBrainz Scrobbler
- In the ListenBrainz Scrobbler configuration screen:
- Save the configuration and you are ready to scrobble
To troubleshoot any errors, and assuming you are using Home Assistant, view the Logs in the Music Assistant Add-ons. Please include these logs in any reported issue.
Configuration
- ENV
- File
- AIO
This is configuration for the ENV Config Type.
| Environmental Variable | Required? | Default | Description |
|---|---|---|---|
LZENDPOINT_ENABLE | No | Use LZ Endpoint as a Source without any other configuration. Only required if slug/token are not provided as ENVs | |
LZE_TOKEN | No | LZ "Authentication Token" you provided to the scrobbling application | |
LZE_SLUG | No | (Optional) The URL suffix to use for accepting LZ scrobbles |
Config Structure
This displays the structure of the File Configuration for a endpointlz type Source with all possible properties, their shape, and descriptions/types. Use this to understand how to write a valid config.
Config Example
This displays an example config file of a endpointlz Source File Configuration that adheres to the shown Config Structure.
- text mode lets you edit the JSON directly.
- tree mode gives you a guided point-and-click editing experience that always keeps the JSON syntax valid.
Both modes validate that the configuraion is correct. Any errors show up as squiggly lines.
After you finish editing, switch to text and then copy all text to get a completed config.
Config Example Mobile Experience
This displays an example config file of a endpointlz Source File Configuration that adheres to the shown Config Structure.
The example config file editor is meant for a larger screen experience so only the read-only example is shown. Please use this site on a tablet/laptop/desktop to enable file editor features.
[
{
"name": "myLz",
"enable": true,
"data": {
"token": "myToken"
}
}
]
Config Structure
This displays the structure of the all-in-one (config.json) configuration with all possible properties, their shape, and descriptions/types. Use this to understand how to write a valid config.
Select the endpointlz type from the respective sources node below, then expand it.
Config Example
This displays an example config file of a all-in-one (config.json) configuration that includes a endpointlz Source that adheres to the shown Config Structure.
- text mode lets you edit the JSON directly.
- tree mode gives you a guided point-and-click editing experience that always keeps the JSON syntax valid.
Both modes validate that the configuraion is correct. Any errors show up as squiggly lines.
After you finish editing, switch to text and then copy all text to get a completed config.
Config Example Mobile Experience
This displays an example config file of a all-in-one (config.json) configuration that includes a endpointlz Source that adheres to the shown Config Structure.
The example config file editor is meant for a larger screen experience so only the read-only example is shown. Please use this site on a tablet/laptop/desktop to enable file editor features.
{
"sources": [
{
"name": "myLz",
"enable": true,
"data": {
"token": "myToken"
},
"type": "endpointlz"
}
]
}