-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Album art browser in web plugin UI #5568
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Thank you for the PR! The changelog has not been updated, so here is a friendly reminder to check if you need to add an entry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot reviewed 5 out of 6 changed files in this pull request and generated 1 comment.
Files not reviewed (1)
- beetsplug/web/static/beets.css: Language not supported
Thank you for the PR! The changelog has not been updated, so here is a friendly reminder to check if you need to add an entry. |
Description
This PR adds a "browse albums" page to the web plugin's UI, with a couple tweaks (via query params, to preserve backwards compatibility) to the API in order to enable it. This is a feature that's been requested and kind of hacked together in the past. This implementation has the following characteristics:
It includes assorted other improvements to the web plugin as well. A list summarizing the changes:
album_art
route includes theb64
query string (regardless of its value), the art data will be returned as base64 data rather than binary. This was mainly because this conversion was easier (for me) to do in Python than in JavaScript.all_albums
route includes therandom
query string (regardless of value), the albums will be returned in random order.Here is what the browser looks like. I figured others will likely have libraries like mine where the album art situation is patchy so I tried to make the alt text look nice:

To Do
I haven't done any of these yet because I'm not sure this will even get merged, much less what from its current state will end up making it in. It doesn't really change any of the documented functionality of the web plugin. And there are no tests as the JS is completely untested and the API changes are not straightforward or particularly interesting to test (randomness? base-64 encoding?)
That said, I'm happy to do any of these that reviewers would like me to and I'll certainly add a changelog entry if this gets to a mergeable state.