So the metadata included in the Filenames is abbreviated, but you want the tags to be "expanded". Is that basically it? Can I ask... Why? How did it get into this state, and why do they want to both:
* Preserve the file struture
* Not use the metadata included in the file structure
Because, obviously, extracting the metadata from the file structure, is much easier. And if that is what this user has been using to browse their system in the past, why not replicate it, and then let them modify it over time?
If it isn't what they've been using, then a better strategy would probably be to get it from what they were using. If iTunes, you can import iTunes XML files, with some elbow grease. You might be better off doing that, if they didn't hose their whole iTunes Library somehow at the start of all of this.
But, if you insist...
Fixing Track NumbersThe first, and easiest step, from your example, is to fix the track numbers. You can do this with a simple Library Tools > Fill Properties from Filename on the whole set (at least assuming they all match your example). Just enable only the Filename template, and enter:
[Track #] - That should fix those, which is good, because the individual items like [Track #] and [Name] are going to be the nightmare to do manually.
Fixing Albums:This uses a modified version of the trick I use to make my Current Shows view, which I've intended to explain how to make in a detailed tutorial, but haven't finished writing it up yet. You're going to make a Smartlist, expand it. And then make a view that filters against that smartlist, and expands it again. This will effectively find files where:
* At least one of the files in the folder has an [Album] tag.
* At least one of the
other files in the
same folder is missing an [Album] tag.
And then display them together in a View so you can quickly fix them with Pane Tagging.
1. Make a new Smartlist, with this search:
[Media Type]=[Audio] [Album]=[] ~expand="Filename (Path)" ~sort=[Filename]
This will search for:
* All audio files where the album field is blank.
* Then, it will take those files, and expand the list to include all the other files in the same exact path as those files with missing [Album] tags.
So, it will result in a list, assuming the [Album] tag is missing from lots of the individual albums, of basically all of the files within the Library.
2. Make a new Panes Style View and add three categories, in this order:
* Location (at root, so it shows a directory tree).
* [Filename (Path)]
* [Album]
You
may also want to add other fields that you'd like to be able to quickly "fix" at the same time after these (like [Artist], [Composer], etc) as categories. But stick them at the end, if so.
3. In your View, you probably want to:
* Uncheck
Populate Tree* Check Advanced >
Filter in Both DirectionsYou might not need the latter, but it could come in handy. And the former just won't be useful for this task, so just disable it.
4. Add a Search to the view with this search:
[Media Type]=[Audio] -[Album]=[] playlistid==661116148 ~expand="Filename (Path)" ~sort=[Filename]
Where the PlaylistID points to the Smartlist you made in Step 1.
This will re-filter the list to show only folders that contain
at least one file with a filled [Album] tag. It will still expand any "found" album out to the whole "folder" full of tracks.
Then, you should be able to go through the [Filename (path)] category in this view, one at a time, and the list below will fill with just the contents of that folder. The [Album] category you added, will fill with at least two values:
* The filled Album name (or names if the folder contains more than one value for this field)
* Unassigned
Click down in the file-list area, Control-A to select them all, and then tick the box next to the Album value you want to keep. You'll probably want to disable the warning before you enable Tagging Mode, or every time you leave the view for a second, you'll have to re-enable it (you can always re-enable this warning when you are done).
While you are at it, you can use the other checkboxes (if you added them) to fix other relevant fields, if desired.
This should be reasonably quick, as you'll usually only have two or three choices in the [Album] category (and one of those will be Unassigned every time). I had you add the Location category so you can pre-filter and group the task up into "hunks" by selecting only portions of their filesystem "tree" if needed.
It'll look something like:
click to embiggenThen, when you are all done, you can go back to your original Smartlist, and it should be filled ONLY with the list of files which contain NO valid [Album] tags of any kind (they're all blank). These you can fix with Fill Properties from Filename because there is no good tag metadata that you're overwriting.
Repeat for Artist and other FieldsThen, you can tweak the list and View searches to do the same thing for [Artist]. This is a little more difficult because you want to get the "parent of the parent" folder, and not just each individual "album folder" (which are the last ones in the path, and so you can "cheat" by just using the full path).
You cannot use ~expand to directly expand on an Expression. So, you have to cheat and make a Calculated Field that spits out what you want. This should be pretty easy.
Make a new calculated field. So you can re-use it, call it something generic like [Expand Folder]. Add this expression:
FileFolder([filename], 1)
Now, you can use this field instead of [Filename (path)] in the entire example above, and substitute [Artist] (or [Composer] or whatever field is most accurate for that "level" of the filesystem hierarchy) for [Album] in the searches. I added this field to my example when testing, and it is shown as a column in the screenshot above.
So, this time, make the original list:
[Media Type]=[Audio] [Artist]=[] ~expand="Expand Folder" ~sort=[Filename]
and the search in the View:
[Media Type]=[Audio] -[Artist]=[] playlistid==661116148 ~expand="Expand Folder" ~sort=[Filename]
And do it again. Work your way up the file tree. If there is another valuable level of the filesystem hierarchy, then modify the [Expand Folder] to:
FileFolder([filename], 2)
And do the next level. Where you could get hosed on these later steps is if some of the folders are non-unique, and there are multiple folders with the same names, but which are for different artists or whatever (perhaps in different parts of the filesystem directory structure). This is also why I had you add the Location field as a Category. That way, you can pre-filter it to make sure you're only looking at files that are really part of the same "composer" or "artist" or whatever as you do these later steps.
If you do add the extra fields in step 2 above, and then fix them as you go through the albums, these later phases should be quicker and easier.