Moving files into new folder based on album tag

I want to use the tags I already have for my music collection to move them into folders. In ‘Preferences’ I have all auto tagging and IDing and Lookups turned off! I select a couple hundred tracks from a single artist, click ‘Cluster’ and watch as they all group together in the proper folders based on the album tag in the files – again, no lookup is being done, so this part is very fast.

Now, I highlight the albums and click ‘Save’. All the files are moved to the appropriate destination directory, but most of the time, the album groupings are gone (but not always; some albums are formed as separate folders). I suspect I need a file naming script that will do what I want, but am too new to the program to figure it out.

I’m working on 15k+ songs downloaded from my Google Play Music locker before the transition.

Any help?

That’s weird - I would check what the differences are between these files. Different formats? The ‘Album’ tag is stored differently? Extra tags that are helping or hindering?

1 Like

Could you share the naming script you use and how the folders differ for the affected files? Then it should be easy to see which tags differ on the files.


The script is simply the default script. I haven’t invested the time to learn the tags and syntax for making up different ones.

My experience is, it creates album folders and moves files correctly if you’ve matched the files to a release in the database, i.e. moved them to the right hand column before saving. I’ve just noticed this now. I suppose it is a bug, not by design. So, if you don’t match to the database because you know your tags are correct (just using Picard to rename or place in a folder) then you can’t save albums correctly. Files go in to artist folder. Same applies if you’re using Picard to manually edit tags to files without a database entry like (in my case) something recorded off the radio.

Can you replicate this, and is it bug-worthy?

Of course you can, but it all depends on your naming script and existing tags in files. Otherwise it will just create folders the same.

Let’s say your script creates a folder with %albumartist%/ and your files don’t behave an albumartist set than this obviously does not create this folder. If you have a fallback in your script like $if2(%albumartist%,%artist%)/ and one file has the artist set to “Somebody” and the other to “Somebody feat. Nobody” you get different folder names for the files.

So check your script, the variables it uses and the tags in your files. And if unsure share those details here.

1 Like

The default naming script uses this for the album folder


This will only create the album folder if there is an albumartist (which often is not the case for self tagged files). If you want to create the album folder always independent of the albumartist then change the above to simply:


Hi, I tried to remove %AlbumArtist% from the scripting but the examples below it would show a weird result for the Various Artists one.
I’m trying to simply get folders created like this: Artist - Album
If a compilation, then:
Various Artists - Album Name
The tool does it in most of the cases but for a good bunch of files it saves them all together without a folder. Grouping works perfect, the tags in the file are clear. Just when clicking on save it doesn’t work for them.

It sounds very simple, so I hope someone can tell me what to do here.

Thx in advance

Can you please post a copy of the file naming script that you’re using as well as a step-by-step description of your workflow? That will give us a bit more to work with to try to understand the problem. Thanks.

You might also want to have a look at the Writing a File Naming Script tutorial in the Picard User Guide.

1 Like

Hi rdswift,

just started using the tool, so very basic:

  1. load the directory with the mp3s
  2. after loaded click on save on the categorized list

this is the naming script in the settings, just modified a bit from the original to get the “-” in for the format Artist - Album:

$if2(%albumartist%,%artist%) -


$if($gt(%totaldiscs%,1),%discnumber%-,)$if($and(%albumartist%,%tracknumber%),$num(%tracknumber%,2) ,)$if(%_multiartist%,%artist% - ,)%title%

Unfortunately, this doesn’t tell us much, or I’m just not understanding. Does this mean that you’re just loading the files into the clustering pane and not doing anything else to try to identify them, or are you following the four stages described in the Using Picard section, using one of the workflows in the Work Flow Recommendations section?

The file naming script will use the information available to it, so if you’re not matching the files using one of the workflows it only has the metadata currently embedded in the files to work with. In that case, if any of the tags or variables that you use in the naming script don’t exist in your files, then they will be replaced with blanks. I suspect that may be what’s happening, but without knowing exactly what you’re doing I can’t be sure.


That tells me that there is no %albumartist% information for Picard to use. In other words, no albumartist tag in the file’s metadata.


If you only want to work with the information currently available in your files, then try changing your file naming script to:

%artist% - %album%/$if($gt(%totaldiscs%,1),%discnumber%-,)$if(%tracknumber%),$num(%tracknumber%,2) ,) %artist% - %title%