beets 1.3.3
Version 1.3.3 brings a bunch changes to how item and album fields work internally. Along with laying the groundwork for some great things in the future, this brings a number of improvements to how you interact with beets. Here's what's new with fields in particular:
- Plugin-provided fields can now be used in queries. For example, if you use the
inline
plugin to define a field calledera
, you can now filter your library based on that field by typing something likebeet list era:goldenage
. - Album-level flexible attributes and plugin-provided attributes can now be used in path formats (and other item-level templates).
- Date-based queries are now possible. Try getting every track you added in February 2014 with
beet ls added:2014-02
or in the whole decade withadded:2010..
. Thanks to Stig Inge Lea Bjørnsen. - The modify-cmd command is now better at parsing and formatting fields. You can assign to boolean fields like
comp
, for example, using either the words "true" or "false" or the numerals 1 and 0. Any boolean-esque value is normalized to a real boolean. The update-cmd and write-cmd commands also got smarter at formatting and colorizing changes.
For developers, the short version of the story is that Item and Album objects provide uniform access across fixed, flexible, and computed attributes. You can write item.foo
to access the foo
field without worrying about where the data comes from.
Unrelated new stuff:
- The importer has a new interactive option (G for "Group albums"), command-line flag (
--group-albums
), and config option (group_albums) that lets you split apart albums that are mixed together in a single directory. Thanks to geigerzaehler. - A new
--config
command-line option lets you specify an additional configuration file. This option combines config settings with your default config file. (As part of this change, theBEETSDIR
environment variable no longer combines---it replaces your default config file.) Thanks again to geigerzaehler. ihate
: The plugin's configuration interface was overhauled. Its configuration is now much simpler---it uses beets queries instead of an ad-hoc per-field configuration. This is backwards-incompatible---if you use this plugin, you will need to update your configuration. Thanks to BrainDamage.
Other little fixes:
echonest
: Tempo (BPM) is now always stored as an integer. Thanks to Heinz Wiesinger.- Fix Python 2.6 compatibility in some logging statements in
chroma
andlastgenre
. - Prevent some crashes when things go really wrong when writing file metadata at the end of the import process.
- New plugin events:
item_removed
(thanks to Romuald Conty) anditem_copied
(thanks to Stig Inge Lea Bjørnsen). - The
pluginpath
config option can now point to the directory containing plugin code. (Previously, it awkwardly needed to point at a directory containing abeetsplug
directory, which would then contain your code. This is preserved as an option for backwards compatibility.) This change should also work around a long-standing issue when usingpluginpath
when beets is installed using pip. Many thanks to geigerzaehler. web
: The/item/
and/album/
API endpoints now produce full details about albums and items, not just lists of IDs. Thanks to geigerzaehler.- Fix a potential crash when using image resizing with the
fetchart
orembedart
without ImageMagick installed. - Also, when invoking
convert
for image resizing fails, we now log an error instead of crashing. fetchart
: Thebeet fetchart
command can now associate local images with albums (unless--force
is provided). Thanks to brilnius.fetchart
: Command output is now colorized. Thanks again to brilnius.- The modify-cmd command avoids writing files and committing to the database when nothing has changed. Thanks once more to brilnius.
- The importer now uses the album artist field when guessing existing metadata for albums (rather than just the track artist field). Thanks to geigerzaehler.
fromfilename
: Fix a crash when a filename contained only a track number (e.g.,02.mp3
).convert
: Transcoding should now work on Windows.duplicates
: Themove
andcopy
destination arguments are now treated as directories. Thanks to Pedro Silva.- The modify-cmd command now skips confirmation and prints a message if no changes are necessary. Thanks to brilnius.
fetchart
: When using theremote_priority
config option, local image files are no longer completely ignored.echonest
: Fix an issue causing the plugin to appear twice in the output of thebeet version
command.lastgenre
: Fix an occasional crash when no tag weight was returned by Last.fm.mpdstats
: Restore thelast_played
field. Thanks to Johann Klähn.- The modify-cmd command's output now clearly shows when a file has been deleted.
- Album art in files with Vorbis Comments is now marked with the "front cover" type. Thanks to Jason Lefley.