Keeping source/original folder name


I know this probably isn’t the primary usage for beets, but I’m trying to re-organize my music collection. I got beets setup and it’s pretty awesome, but one of the major things I want, that hasn’t happened and I would love to automate, is moving all of the albums from one big folder (like I have now) into something like:


This is easily done, but what I want is to keep the original folder naming convention for the Album section, so like the following:


How can I keep all of that info? I thus far can get AlbumArtist-Album-Year but that’s about it.


Interesting! The beets philosophy is that you should be able to generate the filenames for everything based on information in the database. So it can help to start by thinking about what rules define your filenames. For example:

  • $albumartist-$album-$year. That’s easy enough to do with the beets paths configuration.
  • Use underscores in place of spaces. You can do that with the replace config option.
  • An extra suffix: what’s going on there? Is it always OFFY, or does it mean something? You could create an attribute for storing this piece of information and then include it in your template.


The suffix is usually the group that released it, in this case I ripped those CDs myself and tagged them as such.


Cool! Then I’d suggest you use a new field, called releaser or something, and put the data there. You can use beet modify -a releaser=foo some_album to do that, and then include $releaser in your path format template.

You could even imagine automating that with a little scripting effort.