Skip to content

beets 1.4.4

Compare
Choose a tag to compare
@sampsyo sampsyo released this 10 Jun 20:36
· 4425 commits to master since this release

This release built up a longer-than-normal list of nifty new features. We now support DSF audio files and the importer can hard-link your files, for example.

Here's a full list of new features:

  • Added support for DSF files, once a future version of Mutagen is released that supports them. Thanks to @docbobo. #459 #2379
  • A new hardlink config option instructs the importer to create hard links on filesystems that support them. Thanks to @jacobwgillespie. #2445
  • A new kodiupdate lets you keep your Kodi library in sync with beets. Thanks to @Pauligrinder. #2411
  • A new bell configuration option under the import section enables a terminal bell when input is required. Thanks to @SpirosChadoulos. #2366 #2495
  • A new field, composer_sort, is now supported and fetched from MusicBrainz. Thanks to @dosoe. #2519 #2529
  • The MusicBrainz backend and discogs now both provide a new attribute called track_alt that stores more nuanced, possibly non-numeric track index data. For example, some vinyl or tape media will report the side of the record using a letter instead of a number in that field. #1831 #2363
  • web: Added a new endpoint, /item/path/foo, which will return the item info for the file at the given path, or 404.
  • web: Added a new config option, include_paths, which will cause paths to be included in item API responses if set to true.
  • The %aunique template function for aunique now takes a third argument that specifies which brackets to use around the disambiguator value. The argument can be any two characters that represent the left and right brackets. It defaults to [] and can also be blank to turn off bracketing. #2397 #2399
  • Added a --move or -m option to the importer so that the files can be moved to the library instead of being copied or added "in place." #2252 #2429
  • badfiles: Added a --verbose or -v option. Results are now displayed only for corrupted files by default and for all the files when the verbose option is set. #1654 #2434
  • embedart: The explicit embedart command now asks for confirmation before embedding art into music files. Thanks to
    @Stunner. #1999
  • You can now run beets by typing python -m beets. #2453
  • smartplaylist: Different playlist specifications that generate identically-named playlist files no longer conflict; instead, the resulting lists of tracks are concatenated. #2468
  • missing: A new mode lets you see missing albums from artists you have in your library. Thanks to @qlyoung. #2481
  • web : Add new reverse_proxy config option to allow serving the web plugins under a reverse proxy.
  • Importing a release with multiple release events now selects the event based on your preferred countries. #2501
  • play: A new -y or --yes parameter lets you skip the warning message if you enqueue more items than the warning threshold usually allows.
  • Fix a bug where commands which forked subprocesses would sometimes prevent further inputs. This bug mainly affected convert. Thanks to @jansol. #2488 #2524

There are also quite a few fixes:

  • In the replace configuration option, we now replace a leading hyphen (-) with an underscore. #549 #2509
  • absubmit: We no longer filter audio files for specific formats---we will attempt the submission process for all formats. #2471
  • mpdupdate: Fix Python 3 compatibility. #2381
  • replaygain: Fix Python 3 compatibility in the bs1770gain backend. #2382
  • bpd: Report playback times as integers. #2394
  • mpdstats: Fix Python 3 compatibility. The plugin also now requires version 0.4.2 or later of the python-mpd2 library. #2405
  • mpdstats: Improve handling of MPD status queries.
  • badfiles: Fix Python 3 compatibility.
  • Fix some cases where album-level ReplayGain/SoundCheck metadata would be written to files incorrectly. #2426
  • badfiles: The command no longer bails out if the validator command is not found or exits with an error. #2430 #2433
  • lyrics: The Google search backend no longer crashes when the server responds with an error. #2437
  • discogs: You can now authenticate with Discogs using a personal access token. #2447
  • Fix Python 3 compatibility when extracting rar archives in the importer. Thanks to @Lompik. #2443 #2448
  • duplicates: Fix Python 3 compatibility when using the copy and move options. #2444
  • mbsubmit: The tracks are now sorted properly. Thanks to
    @awesomer. #2457
  • thumbnails: Fix a string-related crash on Python 3. #2466
  • beatport: More than just 10 songs are now fetched per album. #2469
  • On Python 3, the terminal_encoding setting is respected again for output and printing will no longer crash on systems configured with a limited encoding.
  • convert: The default configuration uses FFmpeg's built-in AAC codec instead of faac. Thanks to @jansol. #2484
  • Fix the importer's detection of multi-disc albums when other subdirectories are present. #2493
  • Invalid date queries now print an error message instead of being silently ignored. Thanks to @discopatrick. #2513 #2517
  • When the SQLite database stops being accessible, we now print a friendly error message. Thanks to @Mary011196. #1676 #2508
  • web: Avoid a crash when sending binary data, such as Chromaprint fingerprints, in music attributes. #2542 #2532
  • Fix a hang when parsing templates that end in newlines. #2562
  • Fix a crash when reading non-ASCII characters in configuration files on Windows under Python 3. #2456 #2565 #2566

We removed backends from two metadata plugins because of bitrot:

  • lyrics: The Lyrics.com backend has been removed. (It stopped working because of changes to the site's URL structure.) #2548 #2549
  • fetchart: The documentation no longer recommends iTunes Store artwork lookup because the unmaintained python-itunes is broken. Want to adopt it? #2371 #1610