v2.8.0Desktop
Release v2.8.0
Added 5
- Add extra_tags option to Discogs Plugin to use additional tags in search queries
- Add auto_ignore configuration option to Lyrics Plugin to skip fetching lyrics for items matching a beets query during auto import
- Add --release-type flag to Missing Plugin to specify MusicBrainz release types to show in missing album mode
- Add -R/--randomize flag to Play Plugin to shuffle the playlist order before passing it to the player
- Add dest_regen configuration option to Smart Playlist Plugin to regenerate items' path in the generated playlist
Changed 4
- Missing Plugin default behavior changed to show only releases of type album
- beets.metadata_plugins.album_for_id and beets.metadata_plugins.track_for_id now require a data_source argument and query only that provider
- Colorisation, diff and layout utility helpers moved from beets.ui to beets.util.color, beets.util.diff, and beets.util.layout
- lastgenre tunelog helper generalized into beets.logging.BeetsLogger.extra_debug which emits DEBUG messages only at verbosity level 3 or higher
Fixed 10
- Beatport Plugin now uses va_name config for the album artist on VA releases instead of hardcoded "Various Artists"
- config command on Windows now uses cmd /c start "" for the default editor fallback so beet config -e works when VISUAL and EDITOR are unset
- Fix AttributeError in Fish Plugin
- import command autotagging by explicit release or recording IDs now keeps candidates from all enabled metadata sources instead of dropping matches when different providers share the same ID
- Simplify import command autotag metadata application for albums and singletons, fixing null-overwrite handling and keeping singular/plural artist metadata fields in sync
- LastImport Plugin flexible field renamed from play_count to lastfm_play_count to avoid conflicts with MPDStats Plugin
- MBSync Plugin and Missing Plugin now use each item's stored data_source for ID lookups with fallback to MusicBrainz
- Missing Plugin --album mode now correctly reports albums using mb_releasegroupid instead of incorrectly reporting albums already in the library as missing
- MusicBrainz Plugin now uses va_name config for albumartist_sort, albumartists_sort, albumartist_credit, albumartists_credit, and albumartists on VA releases instead of hardcoded "Various Artists"
- Made drive_sep_replace regex logic more precise to prevent edge-case mismatches such as a song titled "1:00 AM" being incorrectly considered a Windows drive path
New features
- Discogs Plugin: Add extra_tags option to use additional tags (such as
barcode,catalognum,country,label,media, andyear) in Discogs search queries. - Lyrics Plugin: Add
auto_ignoreconfiguration option to skip fetching lyrics for items matching a beets query during auto import. - Missing Plugin: When running in missing album mode, allows users to specify MusicBrainz release types to show using the
--release-typeflag. The default behavior is also changed to just show releases of typealbum. :bug: (#2661) - Play Plugin: Added
-R/--randomizeflag to shuffle the playlist order before passing it to the player. - Smart Playlist Plugin: Add new configuration option
dest_regento regenerate items' path in the generated playlist instead of using those in the library. This is useful when items have been imported in don't copy-move (-C -M) mode in the library but are later passed through the Convert Plugin plugin which will regenerate new paths according to the Beets path format.
Bug fixes
- Beatport Plugin: Use
va_nameconfig for the album artist on VA releases instead of hardcoded "Various Artists". :bug: (#6316) - config command on Windows now uses
cmd /c start ""for the default editor fallback sobeet config -eworks whenVISUALandEDITORare unset. :bug: (#6436) - Fish Plugin: Fix AttributeError. :bug: (#6340)
- import command Autotagging by explicit release or recording IDs now keeps candidates from all enabled metadata sources instead of dropping matches when different providers share the same ID. :bug: (#6178) :bug: (#6181)
- import command Simplify autotag metadata application for albums and singletons, fixing null-overwrite handling and keeping singular/plural artist metadata fields in sync during tagging.
- LastImport Plugin: Rename flexible field
play_counttolastfm_play_countto avoid conflicts with MPDStats Plugin. Migration: This cannot be migrated automatically because of the field clash. If you use LastImport Plugin without MPDStats Plugin, migrate manually withbeet modify lastfm_play_count='$play_count'. - MBSync Plugin and Missing Plugin now use each item's stored
data_sourcefor ID lookups, with a fallback toMusicBrainz. - Missing Plugin: Fix
--albummode incorrectly reporting albums already in the library as missing. The comparison now correctly usesmb_releasegroupid. - MusicBrainz Plugin: Use
va_nameconfig foralbumartist_sort,albumartists_sort,albumartist_credit,albumartists_credit, andalbumartistson VA releases instead of hardcoded "Various Artists". :bug: (#6316) - replace: Made
drive_sep_replaceregex logic more precise to prevent edge-case mismatches (e.g., a song titled "1:00 AM" would incorrectly be considered a Windows drive path).
For plugin developers
beets.metadata_plugins.album_for_idandbeets.metadata_plugins.track_for_idnow require adata_sourceargument and query only that provider.- Colorisation, diff and layout utility helpers previously imported from
beets.uinow live inbeets.util.color,beets.util.diff, andbeets.util.layout. Update external imports accordingly. - The lastgenre
tuneloghelper was generalized intobeets.logging.BeetsLogger.extra_debug, which emitsDEBUGmessages only at verbosity level 3 or higher (for example-vvv). Plugin authors can use it viaself._log.extra_debug(...).
Other changes
- Contributing: Update pipx installation guide link
- Getting Started: Update quick installation section to reflect current installation guide structure.
- Installation: Remove redundant macOS section from the installation guide. :bug: (#5993)
- Installation: Update installation guide to document plugin management with pipx and move package manager instructions to the FAQ.
- Installation: Update pipx installation guide link
- API-backed metadata source plugins can now use SearchApiMetadataSourcePlugin for shared search orchestration. Implement provider behavior in
~beets.metadata_plugins.SearchApiMetadataSourcePlugin.get_search_query_with_filtersand~beets.metadata_plugins.SearchApiMetadataSourcePlugin.get_search_response. - Deprecate the Beatport Plugin and BPSync Plugin plugins. Beatport has retired the API these plugins rely on, making them non-functional. :bug: (#3862)