Subsonic Album Info

Keep the template and fill it with as much details as possible

Feature description:

Yesterday Navidrome released 0.49.0 :tada:
And I have some requests regarding it.

In 0.49.0 Navidrome added support for getAlbumInfo and getAlbumInfo2 endpoints for Album descriptions from last.fm. Now Tolriq, I know how little you like using endpoints reaching out to last.fm, but I’d assume album descriptions are easily offlineable and wouldn’t go against your offline-first approach to Symfonium.

Problem solved:

No problem, just felt it would be a nice addition since it’s there :stuck_out_tongue:

Brought benefits:

Explain what benefits it brings to all users and not just you and your possibly very unique need

Well that’s new. Anyway, album descriptions are just a nice to have I can see some users wanting them to know more information behind the music in their library.

Screenshots / Mockup:

If possible please provide screenshots of your idea of the implementation or how other application do this.
Literally your app but with Plex:

2 Likes

You need to convince @deluan to expose those info via the Search3 endpoint :wink:

1 Like

Oh hi Tolriq you’re here early, and yes @deluan please :pray:

EDIT: On further inspection of my clock, I’m just up really late :laughing:

Two issues with this:

  1. albumInfo is not added in search results, according to the API specs. I could add it there, but Synfonium won’t work with other Subsonic compatible servers.

  2. More important: the albumInfo is fetched on demand, it is only stored in Navidrome after calling getAlbumInfo, so calls to search3 would only return the albumInfo for any given album if a call to getAlbumInfo was previously done.
    Moreover Navidrome would not be able to call Last.fm for each of the albums returned in calls to search3 as it would quickly hit Last.fm’s rate limit.

This is a problem with how the API enable these external info endpoints (same problem with artistInfo): they are meant to be used on demand, not for offline sync.

Some servers do return the artist biography in the search3 endpoint.
Same could probably be done for the albums.

I’m already assuming everything as optional on the Subsonic API since no one do the same thing in the same ways.

About the getXXXInfo to fetch the data the first time this is OK, I’ve already have an option to force call that endpoint to force the data fetching (for the artists to fetch the art previoulys for Navidrome :p). But having to do 1 query per artist / albums each and every time there’s a sync is a real problem as painfully slow.

Subsonic have no API or data to be able to do differential sync, so it’s important that most sync that can be fast should be fast.

Probably something for the API extension like returning an artistInfo / albumInfo in the search if the data was loaded (including an empty value if there’s nothing but it was fetched to avoid refetching).