jeffvli / sonixd

A full-featured Subsonic/Jellyfin compatible desktop music player
GNU General Public License v3.0
1.8k stars 74 forks source link

Option to show playlist mosaics in the playlists grid view & artists view #274

Open wanieru opened 2 years ago

wanieru commented 2 years ago

Is your feature request related to a problem? Please describe. I like the random mosaic art for the playlists when viewing the playlist itself, but it's a shame that when viewing the lists of playlists (in grid view, or list view with coverArt enabled), I just see a bunch of generic icons. Similarly, I don't like browsing my artist list when most of them don't have a cached icon.

Describe the solution you'd like Fetch playlist data when on the playlists view, so the playlists can show the same mosaics art that are shown when viewing the playlist itself. When viewing artists (in grid view, or list view with coverArt enabled), similarly fetch albums for the artist to generate mosaic art, if there's no art available. As fetching this data when on the playlists/artists view would be a lot more data, this might be better as an opt-in setting.

Describe alternatives you've considered For the artists, many of them have artist art that is fetched when viewing the artist page itself. This could also be pre-fetched when on the list, so I don't have to open an artist to cache their artwork. The generated mosaics, or the data used to generate the mosaics, could also be cached so you don't need fetch the playlists content/artist albums every single time.

Additional context

Playlist mosaic: image

Playlist icon on the playlists page: image

Artist icon on the artists page (before viewing artist page): image

Artist icon on the artist page: image

jeffvli commented 2 years ago

This issue may be harder to tackle since it's a Navidrome specific issue.

For playlists, the mosaic image is usually generated on the server side and then displayed for the playlist. In Navidrome's case, no image is currently generated. I've definitely seen some discussion around it but it seems it's still on their development backburner. In this case I'd prefer to wait until Navidrome implements it directly instead of working with a hacky client-side solution.

For the artists, I could probably add a button in the config page to fetch all artists (which will add the images to Navidrome's database). I want to avoid adding any additional fetching to the list views since it may impact performance especially for other servers.