My random collection of personal plugins now lives in the beets-kergoth project at pypi and github. In the future I’ll be splitting off some of this into separate pypi projects, and submitting some of it to the core, and I still need to add its very minimal docs to http://readthedocs.io, but this works for now, and is at least split out from my config files and scripts.
Readme:
This is my personal collection of beets plugins that
are not currently being distributed separately.
Generally useful plugins
These plugins I consider to be useful in general and polished enough
that I intend to either submit them upstream to beets or split off into
separate projects / python packages.
- The Alias Plugin lets you define command aliases,
much like git, and also makes available any beet-prefixed commands
in yourPATHas well. - The Import Inspect Plugin lets you inspect
the metadata changes to be applied when importing. - The Modify On Import Plugin lets you
define metadata changes to occur on import when the specified
queries match. - The Replace Format Plugin defines format
functions for search/replace of text, both single replacements and
applications of a set of replacements like the built inreplace
configuration option. - The Saved Formats Plugin lets you define
saved, named format strings by storing them in fields for later
reference. - The Saved Queries Plugin lets you save
queries by name for later use.
Special Purpose plugins
These plugins are useful to me, but probably not to anyone else.
- The
musicsourceplugin just forces me to define asourcefield
when importing new music, as this is how I organize my library.
sourceis where the music was acquired, e.g. Amazon, iTunes,
Google, etc. - The
picardplugin lets me launch MusicBrainz Picard with the items
I’m importing, either to use it to tag rather than beets, or as an
inspection tool to examine its metadata. This assumes apicard
beets command exists, as this is how it runs it. - The
reimportskipfieldsplugin lets you specify fields from
set_fields to also be applied to skipped items on reimport. I use
this to facilitate resuming from a reimport, as it lets me apply a
reimportedfield to anything I tried to reimport, whether I was
able to match it to a candidate or not.
Prototype / Proof of Concept plugins
These plugins were thrown together in experimentation. Some may be worth
cleaning up, but others are useful pretty rarely.
- The
abcalcplugin performs the same calculation as absubmit, but
runs it only against non-MusicBrainz tracks, and stores the low
level values rather than submitting them. I’ve used this to
populate the acoustic fingerprint tags for use by external
de-duplication scripts. - The
existingqueriesplugin adds a couple queries that originated
in the beets source. - The
hasartplugin adds a query to check for embedded album art. - The
inlinehookplugin lets you define hooks inline in config.yaml
with python, much the wayinlinedoes for fields. - The
last_importplugin keeps track of the most recently imported
items with a flexible field. - The
modifytmplplugin lets you define fields using templates /
format strings. This will be going upstream into the mainmodify
command. - The
otherqueriesplugin defines other random queries of
questionable usefulness at this time. - The
spotifyexplicitplugin uses thespotifyplugin to look up
items from my library, determines if Spotify considers these items
as explicit tracks (Parental Advisory), and prints them if so. I use
this to set anadvisoryfield on my tracks.