beets v2.11.0

v2.11.0Desktop

Release v2.11.0

Added 3
  • FromFilename Plugin: support track prefix when parsing track number from filename
  • Tidal plugin: new plugin for fetching metadata from Tidal with support for album and track lookups by ID, batch operations, search by query, and ISRC codes and barcode/EAN support
  • Add support for adding or modifying subtitle field (ID3 tag TIT3)
Changed 4
  • Smart Playlist Plugin: restructure splupdate command output to include track count per-playlist summary, show per-track details only with -v flag, make --pretend flag report would be updated count, and add --format option for customizing track line format
  • import command: remove source archive after successful import when move: yes is set
  • import command: multi-disc album detection now recognizes cassette, digital media, and vinyl as disc markers in addition to disc, disk, and cd
  • Spotify Plugin: batch spotifysync track and audio-features API requests and deduplicate repeated Spotify track IDs within a run
Fixed 10
  • Bad Files Plugin: respect quiet mode during import so corrupt-file prompt is suppressed in non-interactive imports
  • Discogs Plugin: prevent duplicate featured artists in track artist fields when same artist is credited in both artists and extraartists
  • import command: fix duplicate album art files being created when re-importing albums with FetchArt Plugin enabled
  • import command: metadata source plugin ID lookups now correctly call each plugin's own lookup method when running in parallel
  • import command: tags with zero distance penalty are no longer shown as differences in match display
  • import command: with original_date: yes, album-level year, month, and day now use original release date
Removed 1
  • Smart Playlist Plugin: remove --pretend-paths option

New features

  • Smart Playlist Plugin: The splupdate command output is restructured. The per-playlist summary now includes a track count. Per-track details are shown only when -v flag is provided (beet -v splupdate). The --pretend flag produces the same output but reports "N playlists would be updated" instead of "N playlists updated". The --format option allows customizing the track line format. The --pretend-paths option was removed (use --format='$path' instead). :bug: (#6183)

  • import command: When importing an archive (zip, tar, rar, or 7z) with move: yes, the source archive is now removed after a successful import. Archives are preserved if any file in the archive was not imported (e.g. skipped as a duplicate, or the import was aborted), and in non-move import modes.

  • FromFilename Plugin: Support track prefix when parsing the track number from the filename (e.g., track01.m4a).

  • Tidal plugin: Introduces a new plugin for fetching metadata from Tidal. It supports album and track lookups by ID, including batch operations via albums_for_ids and tracks_for_ids. It also enables search by query as well as identifier-based retrieval, with support for ISRC codes (tracks) and barcode/EANs (albums).

    This is an initial, relatively minimal implementation, but already fully usable for common metadata workflows. We welcome feedback, improvement ideas, and community contributions to further extend its capabilities.

    See Tidal Plugin for more information.

  • Add support for adding or modifying a subtitle (ID3 tag TIT3) field

Bug fixes

  • Bad Files Plugin: Respect quiet mode (the --quiet flag or import.quiet: yes config) during import so the corrupt-file prompt is suppressed in non-interactive imports. :bug: (#4736)
  • Discogs Plugin: Prevent duplicate featured artists in track artist fields when the same artist is credited both in artists (for example with Feat. join text) and extraartists as Featuring. :bug: (#6166)
  • import command: Fix duplicate album art files (e.g. cover.2.jpg) being created when re-importing albums with the FetchArt Plugin plugin enabled. Old album art is now properly removed when replacing duplicate albums during import. :bug: (#1264) :bug: (#6205)
  • import command: Metadata source plugin ID lookups now correctly call each plugin's own lookup method when running in parallel. :bug: (#6583)
  • import command: Multi-disc album detection now recognizes cassette, digital media, and vinyl as disc markers (e.g. vinyl 1, 12 vinyl 2), in addition to the existing disc, disk, and cd markers.
  • import command: Tags with a zero distance penalty are no longer shown as differences in the match display. Previously, custom distance_weights could cause fields with no actual mismatch to appear in the line.
  • import command: With original_date: yes, album-level year, month, and day now use the original release date. :bug: (#6577)
  • Lyrics Plugin: Fix apostrophe handling in the musixmatch backend slug. :bug: (#4759)
  • MusicBrainz Plugin: Correctly handle release dates where leading or intermediate components are missing, e.g. 2008-??-02
  • Improve DBAccessError messages to help users diagnose database permission issues more easily. The error message now mentions directory missing and file permissions as potential causes. :bug: (#1676)
  • Library path migration now also handles manually edited database rows where item or album-art paths were stored as SQLite TEXT values instead of bytes, so upgrading to the portable-path storage format no longer fails for those libraries. :bug: (#6561)

Other changes

  • Spotify Plugin: Batch spotifysync track and audio-features API requests and deduplicate repeated Spotify track IDs within a run.
View original

Upgraded? How did it go?

Discussion