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 todata_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 frombeets
intobeetsplug
namespace as it is not used in the core beets codebase. It can now be found inbeetsplug._utils
. - Moved
vfs.py
utility module frombeets
intobeetsplug
namespace as it is not used in the core beets codebase. It can now be found inbeetsplug._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 tomatch.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()
andalbum_distance()
methods have been removed fromMetadataSourcePlugin
. 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 returnsBeetsLogger
when called with a name, orRootLogger
when called without a name.