Files not being renamed

1st post.

My docker stopped renaming files, so I thought I’d try a fresh install and rebuild my database. But I’m finding that even though beets in SSH is saying all the right things, detecting and ‘renaming’ etc but when I check the files no changes are occuring and files aren’t being moved to the library. e.g.

docker exec -it beets /bin/bash -c 'beet import /music_library'

will say:

I can't believe feat artist X -> I can't believe

But then the change never occurs. What am I doing wrong?

Thanks in advance

plugins: fetchart embedart convert scrub replaygain lastgenre chroma web ftintitle lyrics duplicates missing fromfilename
directory: /music_library
library: /config/musiclibrary.blb
art_filename: albumart
threaded: yes
original_date: no
per_disc_numbering: no

musicbrainz:
    host: 172.30.12.2:5000
    ratelimit: 100

ftintitle:
    auto: yes

lyrics:
    fallback: ''
    force: yes

convert:
    auto: no
    ffmpeg: /usr/bin/ffmpeg
    opts: -ab 320k -ac 2 -ar 48000
    max_bitrate: 320
    threads: 1

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: no
    move: yes
    resume: ask
    incremental: no
    quiet_fallback: skip
    autotag: yes
    timid: no
    log: /config/beet.log

lastgenre:
    auto: yes
    source: album
    canonical: yes
    canoncical: /config/genres-tree.yaml
    fallback: unknown
    whitelist: /config/genres.txt

embedart:
    auto: yes

fetchart:
    auto: yes
    
replaygain:
    auto: yes

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

Hmm… it’s hard to say without a bit more detail. Is there anything useful in the debug log? Can you reproduce the problem outside of Docker? Does removing some of the import configuration from your config file have any effect?

Thanks for trying to help.

I’ve reinstalled again and it’s moving files now, but ftintitle doesn’t seem to be working as feat is still in artist names.

It says it’s renaming, but nothing happens:

Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
ftintitle: /music_library/112/112/19 - Only You (clean radio mix) feat. The Notorious B.I.G_.flac
ftintitle: artist: 112 feat. The Notorious B.I.G. -> 112
ftintitle: title: Only You (clean radio mix) -> Only You (clean radio mix) feat. The Notorious B.I.G.
Sending event: database_change
ftintitle: /music_library/112/112/10 - I Can’t Believe feat. Faith Evans.flac
ftintitle: artist: 112 feat. Faith Evans -> 112
ftintitle: title: I Can’t Believe -> I Can’t Believe feat. Faith Evans
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
ftintitle: /music_library/112/112/12 - Only You (Bad Boy remix) feat. The Notorious B.I.G. & Mase.flac
ftintitle: artist: 112 feat. The Notorious B.I.G. & Mase -> 112
ftintitle: title: Only You (Bad Boy remix) -> Only You (Bad Boy remix) feat. The Notorious B.I.G. & Mase
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change

I haven’t changed my config.yaml

Huh! Well, please let us know if you have a behavior that we can reproduce step-by-step-step from scratch. For example, we need to see before and after listings of the filenames involved and beet list or beet info output that demonstrates the metadata changing (or not changing).

ok, hope this is what you need.

Before artist: Blackstreet feat Dr.Dre:
24

Rather than changing to Blacksteet - No Diggity feat. Dr Dre, it’s changing to Blackstreet featuring Dr. Dre!!

root@Highlander:~# docker exec -it beets /bin/bash -c 'beet list diggity'
Blackstreet featuring Dr. Dre - No Diggity - No Diggity (radio version)
Blackstreet featuring Dr. Dre - No Diggity - No Diggity (album version)
Blackstreet featuring Dr. Dre - No Diggity - No Diggity (All Star remix)
Blackstreet featuring Dr. Dre - No Diggity - No Diggity (Billie Jean remix)
Blackstreet featuring Dr. Dre - No Diggity - No Diggity (Will remix)
root@Highlander:~#

If it’s seeing ‘feat’ in the song title, it’s also removing it!

To run my import I’m using:

docker exec -it beets /bin/bash -c 'beet import /music_library'

Is this where I’m going wrong?

That all looks fine from here—but I still can’t quite see how to reproduce this from scratch. Trying out the plugin here, both on import and with an explicit beet ftintitle, everything seems to work fine. Is there a specific sequence of commands I can run, starting from an empty library, to observe what’s going on?

I think what you are suggesting is what I’ve done:

  • moved my whole library from /music_library to /music_unfiled
  • done a fresh install of beets (removing old beets library) and run import on /music_unfiled
  • files from /music_unfiled moved to /music_library, but the feat information isn’t coming out right

Is there something in my config file that’s conflicting? The paths and replace section in particular are part of the default docker setup, and I’m not sure what the replace options are doing:

plugins: fetchart embedart convert scrub replaygain lastgenre chroma web ftintitle lyrics duplicates missing fromfilename
directory: /music_library
library: /config/musiclibrary.blb
art_filename: albumart
threaded: yes
original_date: no
per_disc_numbering: no

# musicbrainz:
#    host: 172.30.12.2:5000
#    ratelimit: 100

ftintitle:
    auto: yes

lyrics:
    fallback: ''
    force: yes

convert:
    auto: no
    ffmpeg: /usr/bin/ffmpeg
    opts: -ab 320k -ac 2 -ar 48000
    max_bitrate: 320
    threads: 1

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: no
    move: yes
    resume: ask
    incremental: no
    quiet_fallback: skip
    autotag: yes
    timid: no
    log: /config/beet.log

lastgenre:
    auto: yes
    source: album
    canonical: yes
    canoncical: /config/genres-tree.yaml
    fallback: unknown
    whitelist: /config/genres.txt

embedart:
    auto: yes

fetchart:
    auto: yes
    
replaygain:
    auto: yes

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

Everything looks right from here, as far as I can tell! That is a somewhat maximalist configuration, though—in particular, the replace configuration is trying to replace some accented characters with their ASCII equivalents in generated.

Maybe it would be worth trying trimming the config down to a minimum to see if there’s any effect?

I tried trimming down and ftintitle isn’t moving feat. from artist to title, although it is keeping feat in the title when MB wants to remove it e.g. if I have a track:

song title feat xyx,

beets says based on MB it is going to rename it ‘song title’ but it leaves the feat in.

I’m going to park this now as at least it’s importing now. Thanks for trying to help