Cover and other artifacts for multidisc album


#1

Another discussion (How to query for albums with embedded art, but no external file) made me realize that something wasn’t right in my folder structure.
I’m currently using the below config:

paths:
  default: $albumartist/$album%ifdef{albumdisambig, - %title{$albumdisambig}} (%ifdef{original_year,$original_year,$year})%ifdef{tags, - $tags} [$format%ifdef{profile, $profile}]/%if{$multidisc,Disc $disc/}$track - $title
  singleton: Singles/$artist/$title
  comp: Compilations/$album%aunique{}/$track - $title
  albumtype_soundtrack: Soundtracks/$album/$track - $title
item_fields:
  multidisc: 1 if disctotal > 1 else 0

album_fields:
  profile: |
    total = 0
    for item in items:
        total += item.bitrate
    abr = total / len(items) / 1000
    if abr > 480:
        return None
    elif abr < 480 and abr >= 320:
        return '320'
    elif abr < 320 and abr >= 220:
        return 'V0'
    elif abr < 220 and abr >= 170 and abr != 192:
        return 'V2'
    elif abr == 192:
        return '192'
    elif abr < 170:
        return int(abr)

  tags: |
    import re
    maps = {'live': 'Live', 'ep': 'EP', 'remix': 'Remix'}
    match = re.search(r'(live|ep|remix)', albumtype, re.I)
    if match:
        return maps.get(match.group(0).lower())

And I get the following => The Beatles/The Beatles - "The White Album" (1968) [MP3 V0]/Disc 01/cover.jpg even though the album has 2 discs.
To have the various artifacts, cover included, moved to the album folder, instead of the first disc how would I need modify artpath?


Off-topic, does the $disc binding, by default, provide numbers padded to 2 digits (e.g. 01, 02) and if so is there an easy way to strip that?


#2

This issue describes what you’re after: https://github.com/beetbox/beets/issues/231

And yes, $disc is padded by default. One easy way to work around that is to define an inline field that just refers to disc; it won’t have the same padding.