I recently installed Funkwhale on a server to self-host some music streaming, and while I very much enjoy the service, I think there are a few small things that could be changed to improve browsing and overall make it easier to use Funkwhale.
1. Browse By Album
Most of the albums I upload to my instance have various artists, as such it doesn’t make sense for the primary sorting mechanism to be by Artist. I think adding another tab next to Artist in the Library Browse view which allows viewing all albums on the instance would be very useful. I’m basically imagining the “Recently Added” section of the “Browse” view, but for the sole purpose of listing, sorting, and viewing albums.
Another reason this would be useful for my instance is much of the music I upload is in different languages, so using the search bar becomes very difficult (since I would have to type in whatever language the album is in, and cannot always recall the exact spelling, or cannot type the characters required for certain Asian languages).
2. Browse By Library
This recommendation would require a much larger restructure of Funkwhale - and to be honest, I don’t have it fully thought out. I really like the concept of a “Library” being a container for music that you upload. However, I don’t see a way in which I can browse user’s shared Libraries.
It’d be nice if I could segment by Artist, Album, or Tracks from within the entire Instance (All Libraries), from within all Libraries I “follow” (which may require another feature of users being able to follow specific Libraries, and not just instances being able to follow libraries), or from within a single Library that I want to search through.
I hope this makes sense.
3. Re-Encoded On Import
Another small pain point for me is that I have to instruct users on how to re-encode their content (and I cannot bar certain formats from being uploaded). I would love to say “my Funkwhale instance can only store content in X, Y, Z formats and X, Y, Z bitrates”. And I would also love to say that if a user attempts to upload something not in those formats that they have the option to re-encode all content in an Import Session to a particular allowed/supported format (if the format they uploading is not already of that format).
For the time being, I am sharing a Python script with my users and instructing them how to re-encode locally using ffmpeg and this recursive helper script. It’s not too bad, but I just think more fine-grained controls over this kind of thing would be excellent!
Again, I really appreciate this project existing - from my short time using it, it seems to have some real promise. I hope to see it grow and add more fun features!