beets / NEWS

Full commit
* Album art. The tagger now, by default, downloads album art from
  Amazon that is referenced in the MusicBrainz database. It places the
  album art alongside the audio files in a file called (for example)
  "cover.jpg". The "import_art" config option controls this behavior,
  as do the -r and -R options to the import command. You can set the
  name (minus extension) of the album art file with the
  "art_filename" config option.
* Plugin architecture. Add-on modules can now add new commands to the
  beets command-line interface. The "bpd" and "dadd" commands were
  removed from the beets core and turned into plugins; BPD is loaded
  by default. To load the non-default plugins, use the "plugins" config
  value (a space-separated list of plugin names). You can also set the
  "pluginpath" config option to a colon-separated list of directories
  to search for plugins. Plugins are just Python modules under the
  "beetsplug" namespace package containing subclasses of
  beets.plugins.BeetsPlugin. See the "beetsplug" directory for examples.
* Support for MusicBrainz ID tags. The autotagger now keeps track of the
  MusicBrainz track, album, and artist IDs it matched for each file. It
  also looks for album IDs in new files it's importing and uses those to
  look up data in MusicBrainz. Furthermore, track IDs are used as a
  component of the tagger's distance metric now. Tangentially, change
  required the database code to support a lightweight form of migrations
  so that new columns could be added to old databases--this is a
  delicate feature, so it would be very wise to make a backup of your
  database before upgrading to this version.
* As a consequence of adding album art, the database was significantly
  refactored to keep track of some information at an album (rather than
  item) granularity. Databases created with earlier versions of beets
  should work fine, but they won't have any "albums" in them--they'll
  just be a bag of items. This means that commands like "beet ls -a"
  and "beet rm -a" won't match anything. To "upgrade" your database,
  you can use the included "albumify" plugin. Running "beets albumify"
  with the plugin activated will group all your items into albums,
  making beets behave more or less as it did before.
* Fixed some bugs with encoding paths on Windows. Also, : is now
  replaced with - in path names (instead of _) for readability.
* MediaFiles now have a "format" attribute, so you can use $format in
  your library path format strings like "$artist - $album ($format)"
  to get directories with names like "Paul Simon - Graceland (FLAC)".

* Support for Ogg Vorbis and Monkey's Audio files and their tags.
  (This support should be considered preliminary: I haven't tested it
  heavily because I don't use either of these formats regularly.)
* An option to the "beet import" command for logging albums that
  are untaggable (i.e., are skipped or taken "as-is"). Use
  "beet import -l LOGFILE PATHS". The log format is very simple: it's
  just a status (either "skip" or "asis") followed by the path to the
  album in question. The idea is that you can tag a large collection
  and automatically keep track of the albums that weren't found in
  MusicBrainz so you can come back and look at them later.
* Fixed UnicodeEncodeError on terminals that don't (or don't claim to)
  support UTF-8.
* Importing without autotagging ("beet import -A") is now faster and
  doesn't print out a bunch of whitespace. It also lets you specify
  single files on the command line (rather than just directories).
* Fixed importer crash when attempting to read a corrupt file.
* Reorganized code for CLI in preparation for adding pluggable
  subcommands. Also removed dependency on the aging "cmdln" module.

First public release.