beetbox / beets

music library manager and MusicBrainz tagger
http://beets.io/
MIT License
12.57k stars 1.8k forks source link

Beet import failing to match album #5226

Closed laker-93 closed 1 month ago

laker-93 commented 1 month ago

I am using the latest beets docker container.

I have the following directory structure for music I want to import in to beets:

download/Skee Mask - C/C/

It contains the complete album:

Lukes-Mac-mini-2:beets lajp$ ls download/Skee\ Mask\ -\ C/C
01 MDP2.mp3             03 Keygruv.mp3          05 FFB7 Dub.mp3         07 Minitx.mp3           09 Blok.mp3             11 thnk u.mp3
02 Bassline Dub.mp3     04 Aktif Garbon.mp3     06 One For Vertigo.mp3  08 11616.mp3            10 Pitchacid.mp3

The album is on MusicBrainz here: https://musicbrainz.org/release/9131b04f-c997-4e5a-9273-563e9c67e8b8

I'm aware beets doesn't trust the tags on import by default and instead bases the search off the directory structure. However I've also ensured the tracks also have the correct album and artist set in their mp3 tags (I've verified this by opening them in iTunes).

I then attempt to import in to beets but beets fails to find a match:

root@0426f97fdfc9:/# beet import /downloads/

/downloads/Skee Mask - C/C (11 items)
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? 

If I enter the music brainz ID, then I see that beets has failed to infer the album (see the empty string after 'Skee Mask - ' in the 'Correct tags from' section):


root@0426f97fdfc9:/# beet import /downloads/

/downloads/Skee Mask - C/C (11 items)
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? I
Enter release ID: 9131b04f-c997-4e5a-9273-563e9c67e8b8
Correcting tags from:
    Skee Mask - 
To:
    Skee Mask - C
URL:
    https://musicbrainz.org/release/9131b04f-c997-4e5a-9273-563e9c67e8b8
(Similarity: 89.3%) (album) (Digital Media, 2024, XW)
 * MDP2 (#0)            -> MDP2 (#1)
 * Bassline Dub (#0)    -> Bassline Dub (#2)
 * Keygruv (#0)         -> Keygruv (#3)
 * Aktif Garbon (#0)    -> Aktif Garbon (#4)
 * FFB7 Dub (#0)        -> FFB7 Dub (#5)
 * One For Vertigo (#0) -> One For Vertigo (#6)
 * Minitx (#0)          -> Minitx (#7)
 * 11616 (#0)           -> 11616 (#8)
 * Blok (#0)            -> Blok (#9)
 * Pitchacid (#0)       -> Pitchacid (#10)
 * thnk u (#0)          -> thnk u (#11)
[A]pply, More candidates, Skip, Use as-is, as Tracks, Group albums,
Enter search, enter Id, aBort? 

Please can someone help in fixing this so beets matches the album on its own without having to manually provide the music brainz id. Thanks. My beets config is as below:

root@0426f97fdfc9:/# beet config
lyrics:             
    bing_lang_from: [] 
    auto: yes      
    bing_client_secret: REDACTED
    bing_lang_to:
    google_API_key: REDACTED
    google_engine_ID: REDACTED
    genius_api_key: REDACTED
    fallback:
    force: no
    local: no
    sources:        
    - google        
    - musixmatch    
    - genius        
    - tekstowo      

plugins: web fetchart lyrics lastgenre embedart fromfilename
directory: /music
library: /config/musiclibrary.blb
art_filename: albumart
threaded: no    
original_date: no
per_disc_numbering: no           

paths:               
    default: $albumartist/$album%aunique{}/$track - $title
    singleton: Non-Album/$artist - $title
    comp: Compilations/$album%aunique{}/$track - $title
    albumtype_soundtrack: Soundtracks/$album/$track $title

import:          
    write: yes   
    copy: yes 
    move: no 
    resume: ask    
    incremental: no    
    incremental_skip_later: no
    duplicate_action: merge
    quiet_fallback: asis
    timid: no
    log: /config/beet.logembedart:                                                          
    auto: yes                                                      
    maxwidth: 0                                                    
    compare_threshold: 0                                           
    ifempty: no                                                    
    remove_art_file: no                                            
    quality: 0                                                     
fetchart:                                                          
    auto: yes                                                      
    minwidth: 0                                                    
    maxwidth: 0                                                    
    quality: 0                                                     
    max_filesize: 0                                                
    enforce_ratio: no                                              
    cautious: no                                                   
    cover_names:                                                   
    - cover                                                        
    - front                                                        
    - art                                                          
    - album                                                        
    - folder                                                       
    sources:                                                       
    - filesystem                                                   
    - coverart                                                     
    - itunes                                                       
    - amazon                                                       
    - albumart                                                     
    google_key: REDACTED                                           
    google_engine: 001442825323518660753:hrh5ch1gjzm               
    fanarttv_key: REDACTED                                         
    lastfm_key: REDACTED        
    store_source: no
    high_resolution: no
    deinterlace: no
    cover_format:               
replaygain:      
    auto: no                
scrub:                        
    auto: yes               

replace:     
    ^\.: _   
    '[\x00-\x1f]': _
    '[\xE8-\xEB]': e
    '[\xEC-\xEF]': i
    '[\xE2-\xE6]': a
    '[\xF2-\xF6]': o
    '[\xF8]': o                                                    
    \s+$: ''                                                
web:             
    host: 0.0.0.0                
    port: 8337        
    readonly: no
    cors: ''     
    cors_supports_credentials: no
    reverse_proxy: no                                              
    include_paths: no
lastgenre:                                                
    whitelist: yes                       
    min_weight: 10                                     
    count: 1                                              
    fallback:                                                      
    canonical: no
    source: album
    force: yes
    auto: yes
    separator: ', '
    prefer_specific: no
    title_case: yes 
laker-93 commented 1 month ago

I think this issue here was that there was a single tracks that did not have the album tag set correctly. After tagging all tracks with album 'C' the import worked. I'll close the issue. However I am still curious as to why the import failed in face of the missing tag - I thought beets would be able to infer the album from the track names and directory name?