Skip to content

Beets fails to import when plugins are enabled #5824

Closed
@wcage03

Description

@wcage03

Problem

I had been away from Beets for a while and when I went back to it, I had a problem. Rather than diagnose it, I decided to install the latest version of beets in an "editable" configuration using the command below (as documented).
pip install -e git+https://github.com/beetbox/beets#egg=beets

I use the "editable" version because I have written plug-ins previously for my personal use.

When I run any import, I get a "No matching release found." Each album is fully tagged using Picard and is in Musicbrainz. Beets shows the Musicbrainz album ID that it is getting from the tag so it should be an easy lookup. Trying to debug, I went to the config.yaml file and thought maybe it had something to do with the plug-ins. I have about a dozen plug-ins defined so I went through a number of permutations of included and excluded plugins without any luck. On a whim, I commented out the entire plug-ins section and Beets worked. By worked I mean, it accessed Musicbrainz and came back with information on the album and performeed as expected from the config.yaml setup.

Just to be complete, I reran my test inserting only a single plug-in for each test. For all plug-ins the result was the same - no matching release found. Commenting out the entire plug-ins section works predictably.

Running this command when the plug-ins section is present in config.yaml
beet -vv import /Volumes/share/tempmusic/CAKE
results in:

beet -vv import /Volumes/share/tempmusic/CAKE

user configuration: /Users/myname/.config/beets/config.yaml
data directory: /Users/myname/.config/beets
plugin paths:
fetchart: google: Disabling art source due to missing key
fetchart: lastfm: Disabling art source due to missing key
Sending event: pluginload
library database: /Volumes/share/beets/library1.db
library directory: /Volumes/share/music
Sending event: library_opened
Sending event: import_begin
Sending event: import_task_created
Sending event: import_task_start
Looking up: /Volumes/share/tempmusic/CAKE/Comfort_Eagle
Tagging CAKE - Comfort Eagle
Searching for discovered album ID: 6cd63d08-d785-4b66-a14f-a5f038620e4b
Search terms: CAKE - Comfort Eagle
Album might be VA: False
Evaluating 0 candidates.

/Volumes/share/tempmusic/CAKE/Comfort_Eagle (11 items)
Sending event: import_task_before_choice
Sending event: before_choose_candidate
No matching release found for 11 tracks.
For help, see: https://beets.readthedocs.org/en/latest/faq.html#nomatch
➜ [S]kip, Use as-is, as Tracks, Group albums, Enter search, enter Id, aBort? s
Sending event: import_task_choice
Sending event: import
Sending event: cli_exit

No matching release

running the same command when the plug-ins section in config.yaml is commented out results in:

beet -vv import /Volumes/share/tempmusic/CAKE

user configuration: /Users/myname/.config/beets/config.yaml
data directory: /Users/myname/.config/beets
plugin paths:
Sending event: pluginload
library database: /Volumes/share/beets/library1.db
library directory: /Volumes/share/music
Sending event: library_opened
Sending event: import_begin
Sending event: import_task_created
Sending event: import_task_start
Looking up: /Volumes/share/tempmusic/CAKE/Comfort_Eagle
Tagging CAKE - Comfort Eagle
Searching for discovered album ID: 6cd63d08-d785-4b66-a14f-a5f038620e4b
musicbrainz: Requesting MusicBrainz release 6cd63d08-d785-4b66-a14f-a5f038620e4b
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_album_extract
Sending event: albuminfo_received
Candidate: CAKE - Comfort Eagle (6cd63d08-d785-4b66-a14f-a5f038620e4b)
Computing track assignment...
...done.
Success. Distance: 0.00
Album ID match recommendation is 3
ID match.

/Volumes/share/tempmusic/CAKE/Comfort_Eagle (11 items)
Sending event: import_task_before_choice
Sending event: before_choose_candidate

  Match (100.0%):
  CAKE - Comfort Eagle
  MusicBrainz, CD, 2001, US, Columbia, CK 85982, None
  https://musicbrainz.org/release/6cd63d08-d785-4b66-a14f-a5f038620e4b
  * Artist: CAKE
  * Album: Comfort Eagle
     ≠ (#2) Meanwhile, Rick James... (3:57) -> (#2) Meanwhile, Rick James… (3:57)
Sending event: import_task_choice
found duplicates: [4487]
default action for duplicates: a
This album is already in the library!
Old: 11 items, MP3, 192kbps, 36:56, 51.3 MiB
New: 11 items, MP3, 192kbps, 36:56, 51.3 MiB
➜ [S]kip new, Keep all, Remove old, Merge all? s
Sending event: import
Sending event: cli_exit

Beets clearly finds the album in Musicbrainz and offers to take action.

Setup

  • OS: MacOS Sequoia 15.5
  • Python version: 3.12.2
  • beets version: 2.3.1
  • Turning off plugins made problem go away (yes/no): Yes, as described above.

My configuration (output of beet config) is:

beet config
directory: /Volumes/share/music
# --------------- Main ---------------

library: /Volumes/share/beets/library1.db

import:
    copy: no
    move: yes
    write: yes
    log: /Volumes/share/beets/import.log
    singletons: no
    asciify_paths: yes
    bell: yes
    incremental: no
    incremental_skip_later: yes
    resume: yes
paths:
    default: Albums/$albumartist/$album%aunique{}/$disc-$track $artist - $title
    singleton: Non-Album/$artist ($year) - $title
    comp: Compilations/$album%aunique{}/$disc-$track $artist - $title
    albumtype_soundtrack: Soundtracks/$album/$disc-$track $artist - $title

    pluginpath: /Users/myname/ownCloud/GitHub/beets/src/beets/beetsplug
replace:
    '[\\/]': _
    ^\.: _
    '[\x00-\x1f]': _
    '[<>:"\?\*\|]': _
    \.$: _
    \s+$: ''
    ^\s+: ''
    ^-: _

match:
    strong_rec_thresh: 0.2
    max_rec:
        missing_tracks: low
        unmatched_tracks: low
    preferred:
        countries: [US, GB|UK]
        original_year: yes
musicbrainz:
    genre: no

# --------------- Plugins ---------------

plugins: scrub fetchart lyrics lastgenre replaygain embedart missing convert unimported info mbsync badfiles
scrub:
    auto: yes
embedart:
    compare_threshold: 0
    maxwidth: 0
    auto: yes
    ifempty: no
    remove_art_file: no
    quality: 0
fetchart:
    cover_names: front art album folder
    sources: filesystem coverart amazon albumart
    auto: yes
    minwidth: 0
    maxwidth: 0
    quality: 0
    max_filesize: 0
    enforce_ratio: no
    cautious: no
    store_source: no
    high_resolution: no
    deinterlace: no
    cover_format:
    google_key: REDACTED
    google_engine: REDACTED
    lastfm_key: REDACTED
    fanarttv_key: REDACTED
lyrics:
    auto: yes
    google_API_key: REDACTED
    google_engine_ID: REDACTED
    sources: google musixmatch genius tekstowo
    translate:
        api_key: REDACTED
        from_languages: []
        to_language:
    dist_thresh: 0.11
    genius_api_key: REDACTED
    fallback:
    force: no
    local: no
    print: no
    synced: no
lastgenre:
    auto: yes
    canonical: no
    count: 3
    fallback: none
    force: yes
    min_weight: 10
    prefer_specific: no
    source: album
    whitelist: yes
    title_case: yes
    keep_existing: no
    separator: ', '
    extended_debug: no
replaygain:
    auto: yes
    backend: ffmpeg
    per_disc: no
    overwrite: no
    threads: 6
    parallel_on_import: no
    peak: 'true'
    targetlevel: 89
    r128: [Opus]
    r128_targetlevel: 84
convert:
    auto: no
    copy_album_art: yes
    embed: yes
    never_convert_lossy_files: yes
    delete_originals: yes
    dest:
    pretend: no
    link: no
    hardlink: no
    threads: 6
    format: mp3
    id3v23: inherit
    formats:
        aac:
            command: ffmpeg -i $source -y -vn -acodec aac -aq 1 $dest
            extension: m4a
        alac:
            command: ffmpeg -i $source -y -vn -acodec alac $dest
            extension: m4a
        flac: ffmpeg -i $source -y -vn -acodec flac $dest
        mp3: ffmpeg -i $source -y -vn -aq 2 $dest
        opus: ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest
        ogg: ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest
        wma: ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest
    max_bitrate:
    auto_keep: no
    tmpdir:
    quiet: no
    paths: {}
    no_convert: ''
    album_art_maxwidth: 0
    playlist:
missing:

# --------------- Search ---------------

    format_item: $album - $disc-$track $title
    count: no
    total: no
    album: no
unimported:
    ignore_extensions: []
    ignore_subdirectories: []

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions