Skip to content

Release v2.8.0

Latest

Choose a tag to compare

@github-actions github-actions released this 28 Mar 13:11
· 2 commits to master since this release

New features

  • Discogs Plugin: Add extra_tags option to use additional tags (such as barcode, catalognum, country, label, media, and year) in Discogs search queries.
  • Lyrics Plugin: Add auto_ignore configuration 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-type flag. The default behavior is also changed to just show releases of type album. πŸ› (#2661)
  • Play Plugin: Added -R/--randomize flag to shuffle the playlist order before passing it to the player.
  • Smart Playlist Plugin: Add new configuration option dest_regen to 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_name config for the album artist on VA releases instead of hardcoded "Various Artists". πŸ› (#6316)
  • 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. πŸ› (#6436)
  • Fish Plugin: Fix AttributeError. πŸ› (#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. πŸ› (#6178) πŸ› (#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_count to lastfm_play_count to 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 with beet modify lastfm_play_count='$play_count'.
  • MBSync Plugin and Missing Plugin now use each item's stored data_source for ID lookups, with a fallback to MusicBrainz.
  • Missing Plugin: Fix --album mode incorrectly reporting albums already in the library as missing. The comparison now correctly uses mb_releasegroupid.
  • MusicBrainz Plugin: Use va_name config for albumartist_sort, albumartists_sort, albumartist_credit, albumartists_credit, and albumartists on VA releases instead of hardcoded "Various Artists". πŸ› (#6316)
  • replace: Made drive_sep_replace regex 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_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 previously imported from beets.ui now live in beets.util.color, beets.util.diff, and beets.util.layout. Update external imports accordingly.
  • The lastgenre tunelog helper was generalized into beets.logging.BeetsLogger.extra_debug, which emits DEBUG messages only at verbosity level 3 or higher (for example -vvv). Plugin authors can use it via self._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. πŸ› (#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_filters and ~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. πŸ› (#3862)