beets icon indicating copy to clipboard operation
beets copied to clipboard

Beet doesn't offer to merge albums when import run with --noautotag

Open odoublewen opened this issue 8 months ago • 5 comments

Beet is assigning unique album IDs to my self-tagged tracks, when those tracks are imported in a piecemeal (piecewise) fashion. I don't know if this is a bug or expected behavior. If the latter, I wonder if there is a way to force beet to join (merge) the new import with the old import.

Set up: to make a super simple, reproducible example, I create two dummy, empty mp3 files (source) and tagged them as follows:

$ ffmpeg -f lavfi -i anullsrc=r=44100:cl=mono -t 5 -q:a 9 -acodec libmp3lame foo.mp3
$ cp foo.mp3 bar.mp3
$ id3tag -s foo -a foobar -A foobar -t 1 foo.mp3 
$ id3tag -s bar -a foobar -A foobar -t 2 bar.mp3 

Problem

Running this command in verbose (-vv) mode:

$ beet -vv import -AW foo.mp3 
$ beet -vv import -AW bar.mp3 

Led to this problem:

$ beet ls -p album:foobar
/mnt/media/music/foobar/foobar/01 foo.mp3
/mnt/media/music/foobar/foobar [3989]/02 bar.mp3

Since I imported the files with --noautotag, I expected/hoped beet would just use foobar as the album and naively combine (merge) it with the already imported album track. But I was never prompted about whether I wanted to merge the files!

May be related to https://github.com/beetbox/beets/issues/112 or https://github.com/beetbox/beets/issues/1861

Setup

  • OS: debian
  • Python version: Python 3.9.2
  • beets version: 1.6.0
  • Turning off plugins made problem go away (yes/no): No
My configuration
directory: /mnt/media/music

plugins:
- discogs
- duplicates
- edit
- info
- inline
- chroma
item_fields:
    disc_and_track: u'%i-%02i' % (disc, track) if disctotal > 1 else u'%02i' % (track)

paths:
    default: $albumartist/$album%aunique{}/$disc_and_track $title
    comp: Compilations/$album%aunique{}/$disc_and_track $title

import:
    move: yes
    write: yes
    autotag: yes
    log: beetslog.txt

match:
    preferred:
        countries: [US, GB|UK, AU]
        media: [CD, Digital Media|File]
        original_year: yes
chroma:
    auto: yes
art_filename: albumart

ui:
    color: yes
per_disc_numbering: yes
edit:
    itemfields:
    - album
    - albumartist
    - artist
    - track
    - title
    - year
    albumfields:
    - albumartist
    - album
    - year
    - albumtype
    - comp
    ignore_fields: id path
duplicates:
    album: no
    checksum: ''
    copy: ''
    count: no
    delete: no
    format: ''
    full: no
    keys: []
    merge: no
    move: ''
    path: no
    tiebreak: {}
    strict: no
    tag: ''
pathfields: {}
album_fields: {}
discogs:
    apikey: REDACTED
    apisecret: REDACTED
    tokenfile: discogs_token.json
    source_weight: 0.5
    user_token: REDACTED
    separator: ', '
    index_tracks: no

odoublewen avatar Nov 27 '23 20:11 odoublewen

Hmm I think this is just not supported -> feature request (cant find the option to add feature label in the github mobile app atm...)

JOJ0 avatar Dec 01 '23 23:12 JOJ0

@JOJ0 Thanks! I thought that might be the case. I don't seem to have enough permission to add issue labels in this repo.

odoublewen avatar Dec 01 '23 23:12 odoublewen

No worries! Thanks for the report. Yeah I also came across a desire to want this several times.

As a workaround you could try manually setting the album ids of your tracks:

$ beet ls -f '$artist $title $album_id' peas

Black Eyed Peas Karma 22
Black Eyed Peas Be Free 22
Black Eyed Peas Communication 23
Black Eyed Peas What It Is 23
$ beet mod album_id=23 peas

JOJ0 avatar Dec 02 '23 00:12 JOJ0

Thanks for the tip! I can also do:

beet import --noautotag --set=album_id=9999 peas

That's a fine workaround! Probably this issue could be closed, or tagged as "documentation only".

odoublewen avatar Dec 03 '23 00:12 odoublewen

Oh wow, that's indeed a great workaround idea. It never came to my mind I could use --set for fixed attributes. I always use it with flexible attributes only. OMG 😮

Yeah adding an example to the docs would be great, I'm wondering where it would fit? The description/headline could be: Manually merging tracks to an existing album on import

JOJ0 avatar Dec 03 '23 02:12 JOJ0