snejus / beetcamp

Bandcamp autotagger source for beets (https://beets.io)
GNU General Public License v2.0
68 stars 12 forks source link

Confusion about how beetcamp grabs genres #54

Closed eramdam closed 7 months ago

eramdam commented 10 months ago

Alright, maybe this one is actually a valid issue šŸ™ˆ

I'm trying to set up beetcamp to grab as many genres as possible, but I feel like I'm missing something about what beetcamp tries to grab to put in the genre tag.

Consider this album https://acidcowboysband.bandcamp.com/album/blue-dirt The tags as displayed on the page are country alt-country balearic indie pop twisted United States yet beetcamp only grabs indie pop even though country is also in the list of valid genre.

I managed to work around this by adding always_include: ["[\\w\\W]*"] (which I might do anyway because I don't mind grabbing extra genres) to the genre configuration but I figured this might be worth reporting since I couldn't understand why this is happening.

Here's my configuration

plugins: inline edit embedart importadded hook duplicates discogs chroma bandcamp

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

directory: /Volumes/Meloetta/beets

discogs:
  user_token: xxxx

edit:
  itemfields: track title artist album genre albumartist
chroma:
  auto: no

import:
  move: no # move files?
  incremental: no # skip directories already imported
  log: beets.log
  resume: yes
  write: yes
  timid: yes
  bell: yes
  detail: yes
  musicbrainz:
    extra_tags: [year]

fetchart:
  auto: yes
  sources: coverart itunes amazon albumart filesystem
  maxwidth: 700

lastfm:
  user: DErambert

lastgenre:
  auto: yes
  count: 40
  force: no
  min_weight: 4
  source: "album"

convert:
  album_art_maxwidth: 1000
  embed: yes
  auto: yes
  format: mp3
  max_bitrate: 320
  never_convert_lossy_files: yes

# Tell iTunes to add and/or update the track in its library after we write a file.
hook:
  hooks:
    # - event: album_imported
    #   command: /Users/damien/.dotfiles/bin/usr/itunes-refresh.sh "{album.path}"
    - event: import_task_files
      command: /Users/damien/.dotfiles/bin/usr/beets-sync.sh

match:
  required: year
  preferred:
    original_year: yes

bandcamp:
  include_digital_only_tracks: true
  search_max: 2
  art: yes
  comments_separator: "\n---\n"
  exclude_extra_fields: []
  genre:
    capitalize: no
    maximum: 0
    mode: psychedelic
    always_include: ["[\\w\\W]*"]

Running the newest release on beets 1.6.0

> beet --version
beets version 1.6.0
Python version 3.10.13
plugins: bandcamp, chroma, discogs, duplicates, edit, embedart, hook, importadded, inline
snejus commented 7 months ago

Thanks for reporting this! Have just checked and I found that the plugin expects the words in the genre to be delimited by a space only. So if the album had a genre named alt country you would have seen the expected behaviour, however since alt-country contains a dash it didn't get picked up.

This is of course wrong and I'm about to address it now!

snejus commented 7 months ago

Have just merged the fix :)