getCoverArt for artist doesn't work Airsonic-advanced kagemomiji

Issue description:

Hello,

I have a problem with airsonic-advanced kagemomiji retrieving artist art, they are not found in Symfonium.

Logs:

Upload description: nono31

Additional information:

 

 

Reproduction steps:

 
I have clean the cache.
 

Media provider:

Subsonic

Screenshots:

 

    

Check the server logs and fix the issue or report to the server author.

It gives cover Ids then the request fails. Nothing I can do on my side.

Hello,

humm I have some difficulties to check “GET” call on log even in DEBUG mode :confused: I have to search a little bit more.

The weird thing is in the log :

  • for album it call /rest/getCoverArt.view endpoint (response is ok) (using login and password)
  • for artist it call /ext/coverArt.view (response is ko) (using jwt)

The /ext/ url is provided by the server during sync.

Damned. OK, I have to check. It’s weird anybody else has not the same problem.

I’m trying to understand. Is it possible to know which server endpoint give the /ext/ url ?
I don’t see anything in the api documentation.

Usually those urls are served by “getArtistInfo2”

Ok thank you. I progress.
I manually executed theses endpoint :

  • getMusicFolders : to get the folder id
  • getArtists : to get an artist id
  • getArtistInfo2 : to get largeImageUrl

When I execute largeImageUrl I have the cover displayed.

It looks like the jwt contained in the url returned to Symfonium is wrong, so I decoded it and it is expired since March 27 0_0

I remove the provider and configure it again and it works.

But the jwt in only valid 5 minutes. By reloading manually getArtistInfo2 the jwt is updated.

Edit: it doesn’t work totally, 5 minutes later (jwt expired), many artists cover not loaded :frowning:

Why would the server returns an url only valid 5 mins ..

The data is synced I don’t send a query to ask for the image list every time, all that to have a different url that can’t be cached as different …

Some servers really makes strange choices.

You can uncheck the option to fetch additional metadata when adding the provider to avoid using getArtistInfo2. But this should probably be reported to the server side too.

Indeed, I can see in airsonic-advanced code a jwt expiration 5 minutes later.
In navidrome, the jwt doesn’t have any expiration date. It can be debatable…

But, how many time getArtistInfo2 is called in Symfonium ?

thank you for the trick, I’ll try it.

It’s only called once during sync, the urls are supposed to be external url to external website like last.fm or others. Not private time limited urls that expires.

This basically force clients to call getArtistsInfo2 every time before showing an artist image + the clients can’t cache the image properly since the url change each time forcing each time to download again the image. That’s the most possible inefficient things to do when exposing static images.