This guide shows you how to set up multi-scrobbler to act as a proxy between Tidal Hi-Fi and your music services like ListenBrainz, Last.fm, and others.
Multi-scrobbler allows you to:
- Scrobble to multiple services simultaneously (ListenBrainz, Last.fm, Maloja, etc.)
- Avoid API rate limits by batching requests
- Add additional metadata and filtering rules
- Monitor scrobbling activity via a web dashboard
- Handle network issues with retry logic and queuing
- Docker and Docker Compose installed on your system
- A ListenBrainz account and token (get yours at ListenBrainz Settings)
First, create a directory for your multi-scrobbler setup:
mkdir multi-scrobbler-setup
cd multi-scrobbler-setupThis file configures your scrobbling sources and destinations:
{
"sources": [
{
"name": "tidal-hifi-endpoint",
"type": "endpointlz",
"data": {
"token": "tidal-hifi-scrobbles-2025",
"slug": "tidal"
}
}
],
"clients": [
{
"name": "listenbrainz",
"type": "listenbrainz",
"data": {
"username": "YOUR_LISTENBRAINZ_USERNAME",
"token": "YOUR_LISTENBRAINZ_TOKEN"
}
}
]
}Replace the following values:
YOUR_LISTENBRAINZ_USERNAME: Your ListenBrainz usernameYOUR_LISTENBRAINZ_TOKEN: Your ListenBrainz user token
Security Note: The
tokenfield under sources (tidal-hifi-scrobbles-2025) is a security token that Tidal Hi-Fi will use to authenticate with multi-scrobbler. You can change this to any secure string you prefer.
name: multi-scrobbler
services:
multi-scrobbler:
image: foxxmd/multi-scrobbler:latest
restart: unless-stopped
volumes:
- ./data:/config
- ./config.json:/config/config.json:ro
ports:
- 9078:9078 # Web UI and API
environment:
TZ: Europe/Amsterdam # Change to your timezone
# Set if running on a different machine or domain
BASE_URL: http://localhost:9078
# Linux host permissions
PUID: 1000 # Your user ID (run `id -u` to find yours)
PGID: 1000 # Your group ID (run `id -g` to find yours)
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9078/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
networks:
default:
name: multi-scrobbler-netCustomize these values if needed:
TZ: Set to your timezone (e.g.,America/New_York,Europe/London)PUID/PGID: Runid -uandid -gto get your user/group IDsBASE_URL: Change if accessing from a different machine or domain
Run the service:
docker compose up -dVerify it's running:
docker compose logs -fYou should see logs indicating the service started successfully. The web dashboard will be available at http://localhost:9078.
Now configure Tidal Hi-Fi to use your multi-scrobbler instance:
-
Open Tidal Hi-Fi Settings (Ctrl+0 or Ctrl+=)
-
Navigate to the ListenBrainz section
-
Configure the following:
- Enable ListenBrainz: ✅ Checked
- API URL:
http://localhost:9078/api/listenbrainz/tidal - User Token:
tidal-hifi-scrobbles-2025(or your custom token from config.json) - Delay:
5000(5 seconds, adjust as needed)
-
Save the settings & restart Tidal
-
Check the Multi-Scrobbler Dashboard:
- Open http://localhost:9078 in your browser
- You should see your configured source and client
- Monitor the "Recent Activity" section
-
Play a song in Tidal Hi-Fi:
- Start playing any track
- Watch the multi-scrobbler logs:
docker compose logs -f - Check your ListenBrainz profile for new scrobbles
"Connection refused" errors:
- Ensure multi-scrobbler is running:
docker compose ps - Check if port 9078 is accessible:
curl http://localhost:9078/health
"Invalid token" errors:
- Verify the token in Tidal Hi-Fi matches the one in
config.json - Check that the token doesn't have extra spaces or characters
Scrobbles not appearing:
- Verify your ListenBrainz token is correct and has appropriate permissions
- Check the multi-scrobbler logs for error messages
- Ensure your ListenBrainz username is spelled correctly
You can add multiple clients to scrobble to several services simultaneously. Edit your config.json:
{
"sources": [
{
"name": "tidal-hifi-endpoint",
"type": "endpointlz",
"data": {
"token": "tidal-hifi-scrobbles-2025",
"slug": "tidal"
}
}
],
"clients": [
{
"name": "listenbrainz",
"type": "listenbrainz",
"data": {
"username": "YOUR_LISTENBRAINZ_USERNAME",
"token": "YOUR_LISTENBRAINZ_TOKEN"
}
},
{
"name": "lastfm",
"type": "lastfm",
"data": {
"username": "YOUR_LASTFM_USERNAME",
"password": "YOUR_LASTFM_PASSWORD",
"apiKey": "YOUR_LASTFM_API_KEY",
"secret": "YOUR_LASTFM_SECRET"
}
}
]
}If you want to access multi-scrobbler from another machine:
- Update
BASE_URLin docker-compose.yml to your server's IP/domain - Update the API URL in Tidal Hi-Fi to match your server address
- Ensure firewall allows port 9078
- Multi-Scrobbler Documentation: https://foxxmd.github.io/multi-scrobbler/
- Tidal Hi-Fi Issues: https://github.com/Mastermindzh/tidal-hifi/issues
- Multi-Scrobbler Issues: https://github.com/FoxxMD/multi-scrobbler/issues