beetbox / beetbox/beets

Plugin API for extending HTTP interface

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

Description

This is a subtask of the next-generation web interface effort (#718).

Part of the promise of the new HTTP API is that it should be extensible by plugins. For example, the ReplayGain plugin should provide an action accessible over the web to run the analysis on a query, much like the `beet replaygain` command does in the console.

This task consists first of looking at the existing plugins and writing some requirements for how the API can serve most of the use cases. It may also need to coordinate with #736 to determine how plugin endpoints will be exposed.

Extensions should be "discoverable": clients should be able to ask what plugin actions are available. An interface could use this, for example, to display a button for every plugin-provided action that can run on a track.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the existing plugins, especially ReplayGain and the `beet replaygain` command, to identify common HTTP extension use cases. Read the next-generation web interface effort in #718 and coordinate with #736 on how plugin endpoints are exposed. Done means documented requirements for discoverable plugin actions that cover the main use cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.