Paths' Template: Documentation not Sufficiently Thorough ... or Need Rest

Sought to become a music geek myself some 4yrs. ago, discovering puddletag. Fit the bill, reliable selection of features. Come last year, Qt4 is deprecated, puddletag's Qt5 port is highly unstable; media tumor needs a new host yesterday, enter beet.

Sparing all high praises, it’s a pain in the ass almost literally. Spending an entire afternoon RTFM would give an assless-chap a run for their hams. It’s 7:00PM local time and an error-less configuration is born!

directory: ~/Vegetables
library: ~/data/beet/testinglibrary.db
log: ~/data/beet/testinglibrary.log
    title: %title{$title}
    artist: %title{$artist}
    album: %title{$album}
    copy: no
    autotag: no
    resume: ask
    duplicate_action: ask
    bell: yes
            genre: 'Yams'
ignore_hidden: yes
    '[\\/]': _
    '^\.': _
    '[\x00-\x1f]': _
    '[<>:"\?\*\|]': _
    '\.$': _
    '\s+$': ''
    '^\s+': ''
    '^-': _
asciify_paths: yes
threaded: yes
sort_item: artist+ album+ title+ genre+
sort_album: artist+ album+
sort_case_insensitive: yes
original_date: no
    color: yes
            text_success: green
            text_warning: yellow
            text_error: red
            text_highlight: red
            text_highlight_minor: lightgray
            action_default: blue
            action: turquoise

Set some redundant defaults in writing to play with later. Though I would first need to overcome (paths:) “Templates”. I am not interested in MusicBrainz, lyrics or cover art; my library needs are basic. Some ASCIIfication, decluttering of troublesome characters, and much needed Title Casing (for now).

It’s almost midnight and my configuration is a lie. album, artist, and title tags remain borked. My understanding of regexp is toothless, my experience with python nonexistent; Please help me, done a poor job scouring the web for answers.

Hi @Zemi! Changing software is always a pain in the ass. It is disruptive and always comes at a bad time. :cloud_with_rain: But I’m sure once you overcome the initial frustration you will enjoy beets.
Your paths section does not look right. Here are the two resources you need to referer to:

This is the defaults and the keys (default, singleton and comp) need to stay.

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

Start with the default key. This defines how your files will be stored under your ~/Vegetables :joy: folder. It defines the path and the file name. Within this key, if you want to Title Case your song’s path and file name you can do:

default: %title{$albumartist}/%title{$album}%aunique{}/$track %title{$title}

After you change the paths, you can just use the move command beet move to move your imported files around and rename them.

I hope this helps.


Hello there @jakabadambalazs (Adam?)! Thank you for taking the time to respond. :sweat_smile: :+1:

Huh, remember reading both sections and thinking “What if my paths aren’t setup that way?”. What’s a user to do if all they want is to have all files and folders Title Cased, recursively?

My mistake, I thought that by not specifying a “key”, beet would operate unconditionally. :exploding_head:

The files and directories in /Vegetables should remain unmoved.

Acording to the manual, it prevents beet from moving my /Vegetables around. :rofl:

I’d like for it to Title Case album, artist, and title tags. $track introduces track number, which doesn’t apply in my case. The rest affects only the title tag, not lost so far. However ( :grin: ), file name(s) would be:

Example Title For Some Song.flac

When my intention was for every file name to include artist - title (separated by a “-”) like this:

Artist Name Jr. - Example Title For Some Song.flac <— Existing naming scheme in puddletag.

Here’s my shot at geting it right, correct me if I’m wrong please:

default: %title{$artist} - %title{$title}

Still have no idea how to mutate (i.e. Title Case) artist, album and title tags unconditionally. :face_with_head_bandage: :sob:

Hi Zemi,
Sorry, it is probably me who did not understand what you were trying to achieve in the first place.
You trying to sort out your tags, not file and folder names, right? Then my response was useless to you.
I am sure there is a way to do what you wan to achieve: i.e. CamelCasing your " artist , album and title tags unconditionally" but I do not know how.

Well, while in that note may as well take advantage of your knowhow (Thank you!) :sweat_smile:

Correct! :robot: Streamline the tagging process first, tidy names later.

Not entirely, what exactly does beet do if not work with tags? Would your paths correction not affect their respective embedded tags (i.e. artist, album and title)?

Makes no sense for beet to Title Case only file and folder names.


Assuming it’s structured correctly, let’s say I did it the proper way:

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

Would beet then Title Case $artist and $title tags, along with file and folder names?

Please, let me know if I’m doing a poor job at making sense.