github beetbox/beets v2.5.0
Release v2.5.0

one day ago

New features

  • Convert Plugin: Add a config option to disable writing metadata to converted files.
  • Discogs Plugin Added support for featured artists. 🐛 (#6038)
  • Discogs Plugin New configuration option featured_string to change the default string used to join featured artists. The default string is Feat..
  • Discogs Plugin Support for artist_credit in Discogs tags. 🐛 (#3354)
  • Discogs Plugin Support for name variations and config options to specify where the variations are written. 🐛 (#3354)
  • Discogs Plugin: New config option strip_disambiguation to toggle stripping discogs numeric disambiguation on artist and label fields.
  • LastGenre Plugin: Add a --pretend option to preview genre changes without storing or writing them.

Bug fixes

  • Metadata source plugins: Fixed data source penalty calculation that was incorrectly applied during import matching. The source_weight configuration option has been renamed to data_source_mismatch_penalty to better reflect its purpose. 🐛 (#6066)
  • Chromaprint/Acoustid Plugin BPSync Plugin Fix plugin loading issue caused by an import of another beets.plugins.BeetsPlugin class. 🐛 (#6033)
  • Discogs Plugin Fixed inconsistency in stripping disambiguation from artists but not labels. 🐛 (#5366)
  • FromFilename Plugin: Fix 🐛 (#5218), improve the code (refactor regexps, allow for more cases, add some logging), add tests.
  • MusicBrainz Plugin Refresh flexible MusicBrainz metadata on reimport so format changes are applied. 🐛 (#6036)
  • Spotify Plugin Ensure spotifysync keeps popularity, ISRC, and related fields current even when audio features requests fail. 🐛 (#6061)
  • Spotify Plugin Fixed an issue where candidate lookup would not find matches due to query escaping (single vs double quotes).
  • Spotify Plugin Fixed an issue where track matching and lookups could return incorrect or misleading results when using the Spotify plugin. The problem occurred primarily when no album was provided or when the album field was an empty string. 🐛 (#5189)
  • Spotify Plugin Removed old and undocumented config options artist_field, album_field and track that were causing issues with track matching. 🐛 (#5189)

Other changes

  • Moved art.py utility module from beets into beetsplug namespace as it is not used in the core beets codebase. It can now be found in beetsplug._utils.
  • Moved vfs.py utility module from beets into beetsplug namespace as it is not used in the core beets codebase. It can now be found in beetsplug._utils.
  • When installing beets via git or locally the version string now reflects the current git branch and commit hash. 🐛 (#4448)
  • Autotagger Matching Options: match.distance_weights.source configuration has been renamed to match.distance_weights.data_source for consistency with the name of the field it refers to.
  • FAQ: Add check for musicbrainz plugin if auto-tagger can't find a match 🐛 (#6020)
  • Plugins: Clarify that musicbrainz must be mentioned if plugin list modified 🐛 (#6020)
  • Using the Auto-Tagger: Section on no matching release found, related to possibly disabled musicbrainz plugin 🐛 (#6020)
  • beets.metadata_plugin.MetadataSourcePlugin: Remove discogs specific disambiguation stripping.

For developers and plugin authors

  • Metadata source plugins are now registered globally when instantiated, which makes their handling slightly more efficient.
  • The track_distance() and album_distance() methods have been removed from MetadataSourcePlugin. Distance calculation for data source mismatches is now handled automatically by the core matching logic. This change simplifies the plugin architecture and fixes incorrect penalty calculations. 🐛 (#6066)
  • Typing improvements in beets/logging.py: getLogger now returns BeetsLogger when called with a name, or RootLogger when called without a name.

Don't miss a new beets release

NewReleases is sending notifications on new releases.