Proper ListenBrainz Usage

Hi there,
I’m trying to start to use ListenBrainz the proper way, and since it will affect several parts of my listening workflow I have to ask some questions. I’m little bit obsessive regarding this topic since I like my scrobbles library to be nice and clean: as an album-oriented listener it’s not an heavy task to maintain a list of albums that I listened to with related timestamps, and then in a second moment update my scrobbles history using a manual file scrobbler. That’s how I scrobbled to last.fm in the past three years, when I wasn’t scrobbling directly from Spotify.

Regarding ListenBrainz

First of all, up to today I used to import my last.fm scrobbles to my LB account, and that resulted in a lot of broken matchings. Second, as mentioned previously, a good part of my past (2017/2018) last.fm scrobbles came from Spotify, the other part from a meticulously tagged local library (not fully MB-compliant yet). Since I’m planning to make my whole scrobbles history LB-compliant, I’ll have to manually work on the Spotify-sourced scrobbles, doing some edits regarding MB ids, but that’s not a big issue (apparently according to Last.fm I’ve listened to 906 albums, not a huge quantity to work in a programmatic way with).

Regarding past Spotify scrobbles, the first big issue that I encountered is when a digital media release of an album isn’t in the DB yet, what should I do? I saw that there is a specific python script, even though it doesn’t seem maintained, can I still use it? I will give an externsive read to the guidelines in the next few hours, so I’ll be a little more prepared about this kind of situation.

By looking at this page it seems that there isn’t a manual scrobbler yet, but that’s not a big issue too, I was planning to develop a MPD-based manual last.fm scrobbler in the near future, maybe I’ll shift its development to LB for the greater good.

Do you have any general advices to share about best practices regarding scrobbling here on LB?

Thanks for your valuable work

1 Like

I took a look at the APIs and found something interesting. The followings are two scrobbles of the same track, the first imported from Last.fm, the latter scrobbled using the LB plugin for Foobar2000 (the track has been properly tagged using Picard this afternoon).

Last.fm

{
    "inserted_at": "Fri, 30 Oct 2020 10:54:31 GMT",
    "listened_at": 1604012163,
    "recording_msid": "56ba975d-aac5-4c5b-bc51-49bea3ff41b3",
    "track_metadata": {
        "additional_info": {
            "artist_msid": "f350b083-ec55-405a-83f5-9c0be459c7e1",
            "recording_msid": "56ba975d-aac5-4c5b-bc51-49bea3ff41b3",
            "release_msid": "4c2feb0c-0d42-4297-8e70-ac3db59924e1"
        },
    },
}

Foobar2000

{
    "inserted_at": "Fri, 30 Oct 2020 16:40:24 GMT",
    "listened_at": 1604076025,
    "recording_msid": "8803fad8-55c1-467d-a661-40e44b22961a",
    "track_metadata": {
        "additional_info": {
            "artist_mbids": ["5700dcd4-c139-4f31-aa3e-6382b9af9032"],
            "artist_msid": "f350b083-ec55-405a-83f5-9c0be459c7e1",
            "recording_msid": "8803fad8-55c1-467d-a661-40e44b22961a",
            "release_group_mbid": "33101a28-ae05-3a69-873c-684e336fe2df",
            "release_mbid": "641d7371-c006-3c9a-9505-e5e6da07ccc4",
            "release_msid": "253bb3ee-f21d-434f-b342-47911742048d",
            "track_mbid": "539d102b-b633-31f2-aa56-82d9d48d8ae2",
        },
    },
}
  1. How are these UUIs from last.fm scrobbled tracks assigned?
UUIs
{
    "recording_msid": "56ba975d-aac5-4c5b-bc51-49bea3ff41b3",
    "track_metadata": {
        "additional_info": {
            "artist_msid": "f350b083-ec55-405a-83f5-9c0be459c7e1",
            "recording_msid": "56ba975d-aac5-4c5b-bc51-49bea3ff41b3",
            "release_msid": "4c2feb0c-0d42-4297-8e70-ac3db59924e1"
        },
    },
}
  1. Since the artist_msid from these two entries match, why for the first one the artist on the web client isn’t clickable while for the second one it is?

That python script is not needed. If you have spotify use connect to spotify feature to login to your account and it will automatically synchronise your listens in the background.

MSID is the Messybrainz id, it is a unique id for the artist, recording or release string so when you played the same artist it will have the same messybrainz id.
MBID are musicbrainz identifiers and represent a recording, artist, release, track and are submitted to listenbrainz by the foobar player. If this is submitted you know the exact recording that was being played so it knows what link should be shown.
Artist names are not always unique so it is possible that there might be several possible artists with the same name. In the future there might be some matching to guess what the correct artist, recording, release may be.

3 Likes

Thank you for your reply @dns_server, right now I’m playing with the APIs and I’ve noticed that, while I can send several Artist MBIDs, I can only send a single Artist name (when I tred to send an array I got the artist_name must be a single string 400 error). Any planning on moving from that? As far as I can tell there is no way to submit complete data about those tracks within the current state of things, right?

I think the idea is that you can use the IDs to actually identify the involved artists, while the artist_name is a readable representation on how the artists are actually credited. This allows for things like “Artist A with B feat. The C”

2 Likes