Skip to content

Releases: linuxserver/docker-beets

2.5.1-ls303

26 Dec 19:00
c88cfe4

Choose a tag to compare

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/2.5.1-ls303/index.html

LinuxServer Changes:

Full Changelog: 2.5.1-ls302...2.5.1-ls303

Remote Changes:

Updating PIP version of beets to 2.5.1

nightly-c1904b1f-ls210

21 Dec 03:03
e5a5907

Choose a tag to compare

Pre-release

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-c1904b1f-ls210/index.html

LinuxServer Changes:

Full Changelog: nightly-09476bda-ls209...nightly-c1904b1f-ls210

Remote Changes:

Make musicbrainz plugin talk to musicbrainz directly (#6052)

This PR refactors the MusicBrainz plugin implementation by replacing the
musicbrainzngs library with direct HTTP API calls using requests and
requests-ratelimiter.

Key Changes:

  • New utilities module: Added beetsplug/_utils/requests.py with
    TimeoutSession class and HTTP error handling (HTTPNotFoundError,
    CaptchaError)
  • MusicBrainz API rewrite: Replaced musicbrainzngs dependency with
    custom MusicBrainzAPI class using direct HTTP requests
  • Rate limiting: Integrated requests-ratelimiter for API rate
    limiting instead of musicbrainzngs.set_rate_limit()
  • Data structure updates: Updated field names to match MusicBrainz
    JSON API v2 format (e.g., medium-listmedia, track-list
    tracks)
  • Dependency management:
  • Made musicbrainzngs optional and added it to plugin-specific extras
    (listenbrainz, mbcollection, missing, parentwork). Updated
    plugin docs accordingly.
  • Made requests a required dependency to ensure backwards
    compatibility (ideally, we would make it an optional dependency under
    musicbrainz extra).
  • Error handling: Simplified error handling by removing
    MusicBrainzAPIError wrapper class

Benefits:

  • Direct control over HTTP requests
  • Consistent rate limiting across all network requests
  • Better alignment with modern MusicBrainz API responses

The changes maintain backward compatibility while modernizing the
underlying implementation.

Fixes #5553
Fixes #5095

nightly-b0582186-ls210

23 Dec 15:16
e5a5907

Choose a tag to compare

Pre-release

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-b0582186-ls210/index.html

LinuxServer Changes:

No changes

Remote Changes:

Fix edit plugin cancel flow restoring in-memory tags (#6104) (#6200)

fixes #6104

Description

When using the fromfilename and edit plugins together during import,
aborted edit sessions could silently discard the temporary tags injected
by fromfilename (e.g., track number and title derived from the
filename). This happened when using eDit or edit Candidates and then
cancelling: the edit plugin reverted objects by re-reading from disk,
which does not contain the fromfilename-generated metadata.

This PR changes the edit plugin so that cancel and “continue Editing”
both roll back objects to the original in-memory snapshot captured
before opening the editor, instead of reloading from the files. This
preserves temporary tags provided by other plugins (like fromfilename)
across aborted edit sessions, while still only writing to disk when the
user chooses Apply.

importer_edit is also updated to rely on this rollback behavior when
edits are cancelled, rather than re-reading from disk, so interactive
imports resume with the same in-memory metadata they started with.

nightly-a62f4fb8-ls210

24 Dec 12:08
e5a5907

Choose a tag to compare

Pre-release

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-a62f4fb8-ls210/index.html

LinuxServer Changes:

No changes

Remote Changes:

Introduce Info.name property and add types to match details functions (#6142)

Generalize some of common tagging functionality to Info and Match

base classes

This PR centralises some common tagging functionality between singletons
and albums allowing to simplify ChangeRepresentation and importing
functionality. This is prep work for a larger PR which refactors and
simplifies the entire tagging workflow.

Changes

  • Core type changes: Changed mapping parameter from Mapping[Item, TrackInfo] to list[tuple[Item, TrackInfo]] in apply_metadata(),
    distance(), and assign_items() functions
  • Match dataclasses: Converted AlbumMatch and TrackMatch from
    NamedTuple to @dataclass, introducing base Match class with common
    functionality
  • New properties: Added name cached property to Info class for
    unified name access
  • ChangeRepresentation refactor: Converted to @dataclass with lazy
    property evaluation, replacing cur_album/cur_title with unified
    cur_name field
  • UI improvements: Simplified display logic by using
    match.info.name instead of type-specific field checks
  • Parameter renaming: Renamed search_album/search_title
    parameters to search_name for consistency across singleton and album
    workflows

The changes maintain backward compatibility in behavior while improving
type safety and code clarity.

nightly-5d1210ad-ls210

21 Dec 20:07
e5a5907

Choose a tag to compare

Pre-release

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-5d1210ad-ls210/index.html

LinuxServer Changes:

No changes

Remote Changes:

importsource: Catch importer crash when skipping; Fix original changelog entry; Add new tests (#6203)

Prevents a crash when "skip" is selected in the importer and
task.imported_items() runs into a condition branch that supposedly
should never be reached:

  File "beets/beets/importer/tasks.py", line 254, in imported_items
    assert False
           ^^^^^
AssertionError
  • Since for items/albums that should be skipped, looping through
    task.imported_items() is not required anyway, the fix here is to exit
    early from the function that calls it.
  • Additionally this PR fixes the original changelog entry which was
    located at an older releases "new features list". Also now it briefly
    explains to changelog readers what the plugin actually does.
  • Two new tests were added that proof that "skip doesn't crash" and
    reimports never "suggest removal of source files"

Co-authored-by: Doron Behar [email protected]

2.5.1-ls302

19 Dec 19:01
67bf0e6

Choose a tag to compare

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/2.5.1-ls302/index.html

LinuxServer Changes:

Full Changelog: 2.5.1-ls301...2.5.1-ls302

Remote Changes:

Updating PIP version of beets to 2.5.1

nightly-ac0b6ec5-ls209

19 Dec 21:07
eab76e1

Choose a tag to compare

Pre-release

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-ac0b6ec5-ls209/index.html

LinuxServer Changes:

No changes

Remote Changes:

Merge branch 'Nedra1998-improved-multiartist'

nightly-09476bda-ls209

19 Dec 19:01
eab76e1

Choose a tag to compare

Pre-release

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-09476bda-ls209/index.html

LinuxServer Changes:

Full Changelog: nightly-09476bda-ls208...nightly-09476bda-ls209

Remote Changes:

Titlecase Plugin Improvements (#6220)

  • Add preserving strings that are all lowercase or all upper case
  • Fix spelling of 'separator' in config, docs and code
  • Move most of the logging for the plugin to debug to keep log cleaner.

Improvements I found a need for in my daily use with the plugin.

  • Documentation. (If you've added a new command-line flag, for
    example, find the appropriate page under docs/ to describe it.)
  • Changelog. (Skipping as the plugin has not been released yet)
  • Tests. (Very much encouraged but not strictly required.)

nightly-09476bda-ls208

18 Dec 02:42
8c4c903

Choose a tag to compare

Pre-release

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-09476bda-ls208/index.html

LinuxServer Changes:

Full Changelog: nightly-ffede9d4-ls207...nightly-09476bda-ls208

Remote Changes:

Titlecase Plugin Improvements (#6220)

  • Add preserving strings that are all lowercase or all upper case
  • Fix spelling of 'separator' in config, docs and code
  • Move most of the logging for the plugin to debug to keep log cleaner.

Improvements I found a need for in my daily use with the plugin.

  • Documentation. (If you've added a new command-line flag, for
    example, find the appropriate page under docs/ to describe it.)
  • Changelog. (Skipping as the plugin has not been released yet)
  • Tests. (Very much encouraged but not strictly required.)

2.5.1-ls301

12 Dec 19:02
bfc7134

Choose a tag to compare

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/2.5.1-ls301/index.html

LinuxServer Changes:

Full Changelog: 2.5.1-ls300...2.5.1-ls301

Remote Changes:

Updating PIP version of beets to 2.5.1