How to install plugins (not clearly documented)

Hi all,

Beginner here, working my way through the docs. I found it unclear how to install plugins and when this would be necessary or not. After a while, somewhere the command

$ pip install beets[plugin]

showed up, but it is not explicitly documented. I would suggest an addition to the page using plugins, a paragraph called ‘Installing plugins’, with the above line in it and also some hint on how to know whether a plugin is already installed, since that is my second question: I get an error message after adding fromfilename to my plugin list:
** error loading plugin from: Traceback (most recent call last): File "/home/hendrik2/.local/lib/python3.8/site-packages/beets/", line 268, in load_plugins namespace = __import__(modname, None, None) ModuleNotFoundError: No module named 'beetsplug.from'

but $ pip install beets[fromfilename] gives
Requirement already satisfied: beets[fromfilename] in ./.local/lib/python3.8/site-packages (1.6.0) WARNING: beets 1.6.0 does not provide the extra 'fromfilename'

The tagger does seem to work though.

Any suggestions?



I think your approach is misleading yourself.
I only used the complete docker container, so not 100% sure if I’m wright, but usually beets comes with all of it’s plugins installed.
To make them active, you need to add the name of it in the plugins line in the config.yaml

Thanks for the quick reply.
I do not understand what you mean by ‘the complete docker container’.
I add the name of the plugins to the config file, of course. But then how do you explain the error code above? And I do had to do pip install beets[fetchart,lyrics,lastgenre] in order for these plugins to work.


Hello! The commands like pip install beets[foo] are only about installing the Python dependencies for a plugin like foo. They don’t actually install the plugin; the plugins come along with beets itself.

The fromfilename plugin does not have any dependencies, so there’s nothing to install.

All you need to do is put fromfilename on your plugins: line in your config file. But it sounds like you probably have a space in there, something like from filename. So beets is trying to load a plugin called “from”, which doesn’t exist.

Oopsie, that was the problem indeed. Stupid me.


This is kind of what I meant.
I’m using beets inside the container from
Because of this, I wasn’t completely sure how the installation process and configuration is working if you install it directly from pip.

But I seem to be independent of the environment.