Skip to content

[Bug]: ListenBrainz integration doesn't respect multiple artists #3638

@jamie6king

Description

@jamie6king

I confirm that:

  • I have searched the existing open AND closed issues to see if an issue already exists for the bug I've encountered
  • I'm using the latest version (your issue may have been fixed already)

Version

0.54.3-SNAPSHOT (pr-2709/a1e1f6b3)

Current Behavior

Currently, I have a FLAC song that is tagged "Artist 1; Artist 2", which is picked up by Navidrome:

Screenshot 2025-01-10 at 14 55 27

However, the final scrobble via the Listenbrainz API to my self-hosted Maloja instance looks like this:

Screenshot 2025-01-10 at 14 57 11

Only one artist is picked up / sent.

Expected Behavior

Both artists should be sent to the scrobbling service. Not sure about the Listenbrainz API, but Maloja auto-detects different artists if they are seperated by ; or / (like how I tagged my songs).

Steps To Reproduce

  1. Use the latest pr-2709 rewrite build
  2. Add a new song featuring multiple artists seperated by ;
  3. Check that Navidrome picks it up
  4. Add a Listenbrainz-compatible server to the config
  5. Listen to it enough so that a scrobble is sent
  6. Check the scrobble

Environment

- OS: MacOS 15.2 (client) / Arch Linux + Docker (server)
- Browser: LibreWolf 133
- Client: WebUI

How Navidrome is installed?

Docker

Configuration

name: "navidrome"

services:

    server:

        container_name: "navidrome"
        image: "deluan/navidrome:pr-2709"
        restart: "unless-stopped"

        networks:

            - "frontend"

        ports:

            - "8140:4533"

        volumes:

            - "./files/data:/data"
            - "../syncthing/files/folders/Media/Music:/music:ro"

        environment:

            ND_LISTENBRAINZ_BASEURL: "https://scrobble.0xportal.cloud/apis/listenbrainz/1/"


networks:

    frontend:

        name: "external"
        external: true

Relevant log output

navidrome  | time="2025-01-10T15:07:36Z" level=debug msg="API: New request /rest/scrobble" client=NavidromeUI requestId=92098cc26c83/N31ZWuCl6m-000032 username=null version=1.8.0
navidrome  | time="2025-01-10T15:07:36Z" level=debug msg="Scrobbling tracks" ids="[`b606c28429196cf36e0d779198291c7d`]" requestId=92098cc26c83/N31ZWuCl6m-000032 times="[2025-01-10 15:04:18.396 +0000 UTC]"
navidrome  | time="2025-01-10T15:07:36Z" level=info msg=Scrobbled artist="Kendrick Lamar" requestId=92098cc26c83/N31ZWuCl6m-000032 timestamp="2025-01-10 15:04:18.396 +0000 UTC" title="Money Trees" user=null
navidrome  | time="2025-01-10T15:07:36Z" level=debug msg="Buffering Scrobble" artist="Kendrick Lamar" requestId=92098cc26c83/N31ZWuCl6m-000032 scrobbler=listenbrainz track="Money Trees"
navidrome  | time="2025-01-10T15:07:36Z" level=debug msg="API: Successful response" endpoint=/rest/scrobble requestId=92098cc26c83/N31ZWuCl6m-000032 status=OK
navidrome  | time="2025-01-10T15:07:36Z" level=debug msg="HTTP: GET http://navidrome:4533/rest/scrobble?u=null&t=[REDACTED]&s=[REDACTED]&f=json&v=1.8.0&c=NavidromeUI&id=b606c28429196cf36e0d779198291c7d&time=1736521458396&submission=true" elapsedTime=7.9ms httpStatus=200 remoteAddr="172.19.0.24:56948" requestId=92098cc26c83/N31ZWuCl6m-000032 responseSize=148 userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:133.0) Gecko/20100101 Firefox/133.0"
navidrome  | time="2025-01-10T15:07:36Z" level=debug msg="Sending scrobble" artist="Kendrick Lamar" scrobbler=listenbrainz track="Money Trees"
navidrome  | time="2025-01-10T15:07:36Z" level=debug msg="HTTP: GET http://navidrome:4533/api/song?id=b606c28429196cf36e0d779198291c7d" elapsedTime=2.6ms httpStatus=200 remoteAddr="172.19.0.24:56964" requestId=92098cc26c83/N31ZWuCl6m-000033 responseSize=1448 userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:133.0) Gecko/20100101 Firefox/133.0"

Anything else?

Not sure if it's relevant (might make separate issue if true) or a design choice, but it might be linked to the the fact that the "now playing" aspects still follow the first-artist rule:

Screenshot 2025-01-10 at 15 09 35 Screenshot 2025-01-10 at 15 09 47

Code of Conduct

  • I agree to follow Navidrome's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions