Navidrome rating data not displayed anywhere in Symfonium

Issue description:

Apologies if this might be a duplicate of [7.0B1] LMS track and album rating not shown in Symfonium. I’m having a similar issue, except it’s with Navidrome as my server, instead of LMS.

Even though the Navidrome server has rating data available for my tracks, I cannot see that rating data available anywhere in Symfonium’s UI.

See additional information after screenshots for more context.

Logs:

After enabling the debugging logs, I went to my “Top Rated” playlist to open & play the track titled “75ZOO (Original Mix)”.

In the logs, it looks like the track was retrieved at timestamp 2023-12-06 22:39:50.761, and interestingly the metadata shows “userRating”:5, despite that not being reflected in the UI’s track details (per screenshot).

debug-20231206_224008.zip (3.1 MB)

Screenshots:

Rating data shown in Feishin:

Rating data shown in Navidrome:

Rating data missing in Symfonium:

Additional information:

  • I use MusicBee as my main music manager.
  • I created an m3u playlist containing all my tracks that have a 5-star rating, and imported this playlist to my Navidrome server.
  • I opened this playlist in Sonixd (connected to my Navidrome server), bulk selected all tracks in the playlist, and assigned a 5-star rating to them.
  • I verified that the Navidrome server successfully synced with these rating updates by seeing that the UIs for Navidrome, Sonixd, and Feishin all reflected the changes.
  • I cannot see that 5-star rating data in Symfonium (neither in “rating” or “user rating”).

Lastly, I’ll just note that rating is a critical piece of metadata for me in my library (and I suspect for many others). If this is more of a current limitation than a bug, then any solutions to help streamline how this data can be managed in bulk within Symfonium would be a huge help :slightly_smiling_face:

Thanks for your time and efforts!

Below is the data returned by Navidrome over it’s search3 API, as you can see no rating returned.

The userRating you see is for the getSong endpoint.

@deluan The userRatings are no more returned via search3 it seems.

The genres are also strangely splits here.

 {
          "id": "18d65fd287c4d065875c330b4a619181",
          "parent": "5d3ae12d2404dc13ac3a625665f221e2",
          "isDir": false,
          "title": "75ZOO (Original Mix)",
          "album": "A Magic World",
          "artist": "KAS:ST",
          "track": 11,
          "year": 2020,
          "genre": "Techno (Peak Time",
          "genres": [
            {
              "name": "Techno (Peak Time"
            },
            {
              "name": "Driving)"
            }
          ],
          "coverArt": "mf-18d65fd287c4d065875c330b4a619181_6514f91d",
          "size": 14126651,
          "contentType": "audio/mpeg",
          "suffix": "mp3",
          "duration": 349,
          "bitRate": 320,
          "path": "KAS:ST/A Magic World/11 - 75ZOO (Original Mix).mp3",
          "created": "2023-12-05T02:49:52.687419259Z",
          "albumId": "5d3ae12d2404dc13ac3a625665f221e2",
          "artistId": "7d186f3b3e60b77123b4affafd67a4bd",
          "type": "music",
          "isVideo": false,
          "bpm": 150,
          "comment": ""
        },

Not sure what is happening here. Both 0.50.1 and develop returns userRating in search3 response, just tested on Navidrome demo (0.50.1) and my personal (develop). From demo:

                {
                    "id": "6c1d3a94f64e40acdb63538c5d9597d6",
                    "parent": "837bd9e9773342fd0627303ba9a4dda2",
                    "isDir": false,
                    "title": "10 Days (Instrumental)",
                    "album": "What I Tell Myself Vol. 1 and 2 (Instrumentals)",
                    "artist": "Forget the Whale",
                    "track": 9,
                    "year": 2017,
                    "genre": "Rock",
                    "genres": [
                        {
                            "name": "Rock"
                        }
                    ],
                    "coverArt": "mf-6c1d3a94f64e40acdb63538c5d9597d6_0",
                    "size": 6650368,
                    "contentType": "audio/mpeg",
                    "suffix": "mp3",
                    "starred": "2023-11-20T15:03:29Z",
                    "duration": 276,
                    "bitRate": 191,
                    "path": "Forget the Whale/What I Tell Myself Vol. 1 and 2 (Instrumentals)/09 - 10 Days (Instrumental).mp3",
                    "playCount": 20,
                    "played": "2023-12-01T13:11:25Z",
                    "created": "2023-03-10T02:16:32.166472432Z",
                    "albumId": "837bd9e9773342fd0627303ba9a4dda2",
                    "artistId": "fdc4b76e5a8a1fd0eafed73269b8e99f",
                    "type": "music",
                    "userRating": 5,
                    "isVideo": false,
                    "bpm": 0,
                    "comment": "http://www.jamendo.com cc_standard"
                },

Re: genres, by default Navidrome splits Genres by ;, / and ,, but this can be configured using the Scanner.GenreSeparators option

1 Like

@deluan well I don’t know either

But above is the data from the search3

And here’s the answer from getSong

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "navidrome",
    "serverVersion": "0.50.1 (f69c27d1)",
    "openSubsonic": true,
    "song": {
      "id": "18d65fd287c4d065875c330b4a619181",
      "parent": "5d3ae12d2404dc13ac3a625665f221e2",
      "isDir": false,
      "title": "75ZOO (Original Mix)",
      "album": "A Magic World",
      "artist": "KAS:ST",
      "track": 11,
      "year": 2020,
      "genre": "Techno (Peak Time",
      "genres": [
        {
          "name": "Techno (Peak Time"
        },
        {
          "name": "Driving)"
        }
      ],
      "coverArt": "mf-18d65fd287c4d065875c330b4a619181_6514f91d",
      "size": 14126651,
      "contentType": "audio/mpeg",
      "suffix": "mp3",
      "duration": 349,
      "bitRate": 320,
      "path": "KAS:ST/A Magic World/11 - 75ZOO (Original Mix).mp3",
      "created": "2023-12-05T02:49:52.687419259Z",
      "albumId": "5d3ae12d2404dc13ac3a625665f221e2",
      "artistId": "7d186f3b3e60b77123b4affafd67a4bd",
      "type": "music",
      "userRating": 5,
      "isVideo": false,
      "bpm": 150,
      "comment": ""
    }
  }
}

As you can see the userRating is here.

Else @stau the only explanation would be that you first synced the data in Symfonium, then added some ratings on the server and did not sync again on Symfonium?

Thanks for looking into this @Tolriq and @deluan.

I synced the ratings yesterday early afternoon (probably ~1pm). I synced Symfonium shortly after, but the user ratings were still not showing up until midnight.

However, another thing I did just before midnight was go into both my remote “Top Rated” playlist and my local copy of “Top Rated” playlist in Symfonium, bulk select all tracks, and apply a “Favourite” to all. I was going to use this as an alternate to 5-star ratings.

Now this morning I’m surprised to see the user ratings are all there. My first thought was that syncing the Symfonium favorites was the key to busting some cache or something, and therefore “actually” syncing with the server. But it’s very possible it just took a very long time to sync in the first place (like over 12 hours)?

The other thing that surprised me this morning was that my local tracks now have their ratings displayed as “User Rating”, but yesterday they were displayed as as “Rating”. I certainly didn’t change anything rating
-related for those (except for favoriting them).

Thought I’d share that extra context in case something weird is going on, but perhaps these are red herrings :sweat_smile:

Appreciate the tip on the genre split variable @deluan (and cheers from a fellow AP dev alumni :wink: super happy to be making good use of your work).

I can’t guess what you did I can only read logs.

A full sync in your logs is 29 sec so fast :wink:

End parse music [true/29.62s]

Anyway if you make changes on Navidrome you need to sync inside Symfonium, Subsonic API does not have proper differential API and media change identification to do that automatically.

The only other thing I can think of is that were issues syncing yesterday, because I did explicitly do that after syncing the ratings to the server (multiple times, to be sure). Anyway, if I ever run into this again I’ll make sure to capture the logs of an attempted sync as well. For now, it seems everything is magically functioning as I expect.

Thanks again - this app and your active support are awesome!