Installing beets plugins¶
Warning
We have not tested a lot of plugins with beets-flask gui. Plugin support is experimental.
Installing beets plugins varies depending on the particular plugin. See the official docs.
We might automate this in the future, but for now you can place a requirements.txt and/or startup.sh in either the /config folder or /config/beets-flask folder. The requirements.txt may include python dependencies, and the startup.sh file may be an executable shell script that is compatible with the container’s alpine linux base.
On startup, the container will run the startup script if it exists, and afterwards install the requirements from the requirements.txt file using pip.
Example startup.sh: keyfinder¶
For example, we can install the keyfinder plugin via startup.sh.
It requires quite a few build steps, and you have to manually compile from two repos.
Place the following in a startup.sh file in either the /config folder or /config/beets-flask folder.
#!/bin/sh
# get build dependencies
apt-get update
apt-get install -y \
build-essential \
ffmpeg \
libavformat-dev \
libavcodec-dev \
libswresample-dev \
libavutil-dev \
git \
cmake \
libfftw3-dev \
pkg-config \
# clone and build the library
git clone https://github.com/mixxxdj/libkeyfinder.git
cd libkeyfinder
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -S . -B build
cmake --build build --parallel "$(nproc)"
cmake --install build
# clone and build the cli tool
cd ..
git clone https://github.com/evanpurkhiser/keyfinder-cli.git
cd keyfinder-cli/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -S . -B build
cmake --build build --parallel "$(nproc)"
cmake --install build
Note that the container is based on debian. Make executable
chmod +x ./startup.sh
Edit beets config.yaml to include the plugin.
plugins:
[
keyfinder,
]
keyfinder:
auto: yes
bin: /usr/local/bin/keyfinder-cli
overwrite: no
Note, in case you want to use another key format, you have to create an alias of the executable and specify that in the config.yaml.
Also, your container start-up time might increase considerably.
Example requirements.txt: discogs¶
Place the following in a requirements.txt file in the /config folder.
beets[discogs]
and follow the instructions in the official docs.