Replies: 1 comment 1 reply
-
|
To anyone looking for alternative web interfaces for beets, you might also want to check out beets-flask, a project I’m working on with @pSpitzner. It’s a similarly a web interface for beets that aims to provide a clean, responsive UI and easy integration with an existing beets setups. It’s also still evolving, but it might be worth a look if you’re experimenting at the moment. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
This discussion is a followup to the old beets forum topic Beetle : a web interface for beets talking about Beetle, a very cool (but still very immature) alternative web interface for beets written by @laBecasse.
On Mar 15, 2021 5:27 PM, I wrote:
I just wanted to share that I finally got around to playing with Beetle some more, and I fixed both of the above issues.
Displaying album art
I fixed the album art issue by forking beets to modify the web plugin; see ctrueden/beets@d4542ed. My problem stemmed from the fact that I have fetchart + embedart set to embed album art into each track while deleting the external album cover file:
So the
artpathfield is thus empty for all of my albums, and therefore accesses to beets web's/album/12345/artendpoint all yield 404. To work around this issue, I modified the web plugin to also look for art embedded in album tracks if using theartpathDB field fails.With this improvement in place, my Beetle is now beeautiful as intended:
If this approach is interesting for upstream, I could file a PR, but I thought I'd ask first if people think this is even a good idea generally (possible performance issues, etc.)?
Fixing the 500 errors
Beetle needs a
BEETLE_APIenvironment variable pointing to where the beets web API is being served. Unfortunately, there is no distinction between internal/server-facing versus external/client-facing API endpoint, andnpm run previewruns over localhost only by default, and I was unable to figure out how to convince the--hostflag to expose Beetle more broadly on my network. To address this, and related issues, I split the env var into two—API_SERVER_URLandBEETLE_API_CLIENT—and encapsulated a bunch of Beetle's API accesses into dedicated endpoints insrc/routes/api; see ctrueden/beetle@3a866b8 for the complete patch, done with assistance from Claude.Result: my Beetle instance now works when doing "single-page application" loads by clicking links, as well as when doing full page loads e.g. by pressing ctrl+R.
@laBecasse Unfortunately, it is difficult for me to file a PR with this fix, because I cannot log into GitLab, because I cannot receive emails from them—they simply never arrive. Apparently it's a problem lots of people have with GitLab? 🤷 Anyway, that's why I forked Beetle to GitHub rather than my space in GitLab.
Running with a proxy/reverse-proxy setup
I run beets on a Linux server named worf, where I have:
/quark/musichttp://worf.local/data/musichttp://localhost:8337, proxied tohttp://worf.local/beetshttp://localhost:3000, proxied tohttp://worf.local/musicbeets
config.yamlconfiguration for web plugin:Beetle `.env` config
Apache web server configuration
Things that still don't work
playlistsstill yields a 500 for me.I may spend some time trying to fix both of these issues relatively soon; we'll see!
In the meantime, I hope this post helps someone who wants to run a nicer web interface for beets than the web plugin's proof of concept implementation.
P.S. Another way to get a much nicer web interface is via iBroadcast, which lets you upload your own music collection to the cloud privately (like Google Play Music used to do, and YouTube Music still lets you do except that it is technically poor for several reasons IMHO), and then access it anywhere via a nice web player. I wrote the beets-ibroadcast plugin to facilitate partial or complete uploads of beets libraries into iBroadcast, as well as keeping tags and playlists synced.
P.P.S. See also #4336, which aims to discuss possible improvements to the beets-web interface.
Beta Was this translation helpful? Give feedback.
All reactions