# beets v2.8.0 — Release v2.8.0 - Product: beets (https://whatsnew.fyi/product/beets) - Vendor: Adrian Sampson - Date: 2026-03-28 - Version: v2.8.0 - Original notes: https://github.com/beetbox/beets/releases/tag/v2.8.0 - Permalink: https://whatsnew.fyi/product/beets/releases/v2.8.0 - Labels: Platforms: Desktop What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Add extra_tags option to Discogs Plugin to use additional tags in search queries - **added** — Add auto_ignore configuration option to Lyrics Plugin to skip fetching lyrics for items matching a beets query during auto import - **added** — Add --release-type flag to Missing Plugin to specify MusicBrainz release types to show in missing album mode - **added** — Add -R/--randomize flag to Play Plugin to shuffle the playlist order before passing it to the player - **added** — Add dest_regen configuration option to Smart Playlist Plugin to regenerate items' path in the generated playlist - **changed** — Missing Plugin default behavior changed to show only releases of type album - **fixed** — Beatport Plugin now uses va_name config for the album artist on VA releases instead of hardcoded "Various Artists" - **fixed** — 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 - **fixed** — Fix AttributeError in Fish Plugin - **fixed** — 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 - **fixed** — Simplify import command autotag metadata application for albums and singletons, fixing null-overwrite handling and keeping singular/plural artist metadata fields in sync - **fixed** — LastImport Plugin flexible field renamed from play_count to lastfm_play_count to avoid conflicts with MPDStats Plugin - **fixed** — MBSync Plugin and Missing Plugin now use each item's stored data_source for ID lookups with fallback to MusicBrainz - **fixed** — Missing Plugin --album mode now correctly reports albums using mb_releasegroupid instead of incorrectly reporting albums already in the library as missing - **fixed** — 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" - **fixed** — 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 - **changed** — beets.metadata_plugins.album_for_id and beets.metadata_plugins.track_for_id now require a data_source argument and query only that provider - **changed** — Colorisation, diff and layout utility helpers moved from beets.ui to beets.util.color, beets.util.diff, and beets.util.layout - **changed** — lastgenre tunelog helper generalized into beets.logging.BeetsLogger.extra_debug which emits DEBUG messages only at verbosity level 3 or higher #### New features - [Discogs Plugin](https://beets.readthedocs.io/en/stable/plugins/discogs.html): Add [extra_tags](https://beets.readthedocs.io/en/stable/plugins/discogs.html#conf-extra_tags) option to use additional tags (such as `barcode`, `catalognum`, `country`, `label`, `media`, and `year`) in Discogs search queries. - [Lyrics Plugin](https://beets.readthedocs.io/en/stable/plugins/lyrics.html): Add `auto_ignore` configuration option to skip fetching lyrics for items matching a beets query during auto import. - [Missing Plugin](https://beets.readthedocs.io/en/stable/plugins/missing.html): 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`. :bug: (#2661) - [Play Plugin](https://beets.readthedocs.io/en/stable/plugins/play.html): Added `-R`/`--randomize` flag to shuffle the playlist order before passing it to the player. - [Smart Playlist Plugin](https://beets.readthedocs.io/en/stable/plugins/smartplaylist.html): 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](https://beets.readthedocs.io/en/stable/plugins/convert.html) plugin which will regenerate new paths according to the Beets path format. #### Bug fixes - [Beatport Plugin](https://beets.readthedocs.io/en/stable/plugins/beatport.html): Use `va_name` config for the album artist on VA releases instead of hardcoded "Various Artists". :bug: (#6316) - [config command](https://beets.readthedocs.io/en/stable/reference/cli.html#config-cmd) on Windows now uses `cmd /c start ""` for the default editor fallback so `beet config -e` works when `VISUAL` and `EDITOR` are unset. :bug: (#6436) - [Fish Plugin](https://beets.readthedocs.io/en/stable/plugins/fish.html): Fix AttributeError. :bug: (#6340) - [import command](https://beets.readthedocs.io/en/stable/reference/cli.html#import-cmd) 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](https://beets.readthedocs.io/en/stable/reference/cli.html#import-cmd) 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](https://beets.readthedocs.io/en/stable/plugins/lastimport.html): Rename flexible field `play_count` to `lastfm_play_count` to avoid conflicts with [MPDStats Plugin](https://beets.readthedocs.io/en/stable/plugins/mpdstats.html). **Migration**: This cannot be migrated automatically because of the field clash. If you use [LastImport Plugin](https://beets.readthedocs.io/en/stable/plugins/lastimport.html) without [MPDStats Plugin](https://beets.readthedocs.io/en/stable/plugins/mpdstats.html), migrate manually with `beet modify lastfm_play_count='$play_count'`. - [MBSync Plugin](https://beets.readthedocs.io/en/stable/plugins/mbsync.html) and [Missing Plugin](https://beets.readthedocs.io/en/stable/plugins/missing.html) now use each item's stored `data_source` for ID lookups, with a fallback to `MusicBrainz`. - [Missing Plugin](https://beets.readthedocs.io/en/stable/plugins/missing.html): Fix `--album` mode incorrectly reporting albums already in the library as missing. The comparison now correctly uses `mb_releasegroupid`. - [MusicBrainz Plugin](https://beets.readthedocs.io/en/stable/plugins/musicbrainz.html): Use `va_name` config for `albumartist_sort`, `albumartists_sort`, `albumartist_credit`, `albumartists_credit`, and `albumartists` on VA releases instead of hardcoded "Various Artists". :bug: (#6316) - [replace](https://beets.readthedo _[Truncated at 4000 characters — full notes: https://github.com/beetbox/beets/releases/tag/v2.8.0]_