Serve multiple beets APIs on the same IP/port using a single command
Project description
beets-webrouter
A beets plugin to serve multiple Flask or FastAPI based beets web apps on the same server/host/port using a single command.
By running beet webrouter you can serve e.g. the beets web UI, a Subsonic API as well as the generated M3U playlists on the same host/port, each under a different path.
Installation
python3 -m pip install beets-webrouter fastapi flask uvicorn
To install the plugins that are used by the example configuration below, run:
python3 -m pip install beetstream beets-webm3u
Configuration
Enable the plugin and add a webrouter section to your beets config.yaml as follows:
plugins:
- webrouter
- web
- webm3u
- beetstream
- aura
- smartplaylist
webrouter:
host: 0.0.0.0
port: 8337
routes:
/:
plugin: web
/favicon.ico:
plugin: webrouter.favicon
/subsonic:
plugin: beetstream
config:
never_transcode: true
/aura:
plugin: aura
blueprint: aura_bp
/m3u:
plugin: webm3u
aura:
page_limit: 100
webm3u:
host: 0.0.0.0
port: 8339
playlist_dir: /data/playlists
Usage
Once the webrouter plugin is enabled within your beets configuration, you can run it as follows:
beet webrouter
You browse the server at http://localhost:8337.
CLI
Usage: beet webrouter [options]
Development
Run the unit tests (containerized):
make test
Run the e2e tests (containerized):
make test-e2e
To test your plugin changes manually, you can run a shell within a beets docker container as follows:
make beets-sh
A temporary beets library is written to ./data.
It can be removed by calling make clean-data.
To just start the server, run:
make beets-webrouter
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file beets_webrouter-0.5.0-py3-none-any.whl.
File metadata
- Download URL: beets_webrouter-0.5.0-py3-none-any.whl
- Upload date:
- Size: 41.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b0e802d3c3945511c043cb05b5012f3ade0664067cf1b83eba33b1b5b8e38bb
|
|
| MD5 |
4d257f0a56efd0e85bc6141900b7928d
|
|
| BLAKE2b-256 |
16d82789096617aa929230d379186cdb1f0a82f689c3db6b83bdc72b151ddd51
|