beetbox / beetbox/beets

API confusion

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

Description

I spent the last hours reading the documentation of the web plugin and discussions on the current state of the API. This confused me enough to decide to ask about the current state and the visions of the maintainers, which I am doing in this issue to hopefully clear things up a bit.

If I understood the conversations correctly, the only API for accessing the library is currently the API-part of the web-plugin and still the first web API that has been implemented in beets.

Later, the need for a more general and more widely adopted API was stated and development of [aura](https://github.com/beetbox/aura/) began, as already existing APIs are more or less unsuited. Aura was decided to be really simple at first, similar to the web API, but apparently also extendable, which I did not find mentioned in the documententation, only in the discussion. Specification work on Aura seems to have stopped in a rather immature state, for example seemingly without a final decision whether to settle on GraphQL or on REST+json.

Are these observations correct?

I am somewhat interested in writing a new web frontend / making an already existing one compatible to beets, but I am unsure what to do. As for now, I see the following options:

* Using the existing web API, similar to Tomahawk. I wouldn't need to write anything new in the Beets codebase, but I would hesitate to implement an API that is going to be deprecated in the foreseeable future
* Implement the current state of the Aura Specification for Beets, this shouldn't be too hard based on its similarity to the web API. But it does not seem to be the right way, as the specification feels rather unfinished. (Is it?)
* Wait until things change / actively participate in changing these things
* Come up with something new (Relevant XKCD...)

This is why I would like to ask the maintainers what they would prefer me to do now. Is this an area that you would like to invest time in? Should I just minimize the effort and use the legacy approach? Is there maybe something on the Roadmap I have missed? I probably have to mention that my experience is rather limited and I am thus not confident with these things.

I would be glad to hear from you!

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.