beetbox / beetbox/beets

Extensible web plugin

Open
#718 24 comments 0 reactions 0 assignees View on GitHub
discussion web
Dominant language
Python
Stars
15.7k
Forks
2.1k
Avg merge
4d 21h
Merged PRs (30d)
31

Description

Following discussion in #456 and on the mailing list [here](https://groups.google.com/d/msg/beets-users/lxj6TZ4bsZk/aNozth-gwBAJ) and [here](https://groups.google.com/d/msg/beets-users/Y0U70pAEFVg/nml6KFr7AcMJ), it's time to get slightly more serious about overhauling the web plugin for extensibility.

Here's my wishlist:
- Start with a clean slate REST API. We should design this with several potential use cases in mind. The old API can stick around for backwards compatibility; perhaps the new one goes under `/v2/` or something. The new API should be standards-worthy: clean and well-documented, potentially even for reuse by other tools.
- Design a new Python API for exposing functionality via the web API.
- This probably means rolling the web API into beets core instead of keeping it in a plugin.
- Accordingly, we should separate the UI from the API itself. As I mentioned on the mailing list, this would all work best if beets core could avoid including the frontend HTML/JavaScript/CSS itself; this should be relegated to pluggable client interfaces. We could provide a simple default interface (perhaps hosted somewhere as static files?) but make it easy to switch to others.

How does all that sound to everyone?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.