The basic idea behind this is that a hierarchical drill-down structure is easier to navigate in order to locate content eg: genre>subgen>subsubgen>band and if you already have organized folder structure there can be a easy way to leverage it.


The way this was traditionally achieved was by plain folder structure on the disk, with iTunes we can leverage playlist folders to mirror that .
What the script does is it creates playlist folders mirroring the folder structure on the disk (DiskHierarcyToItunes Basic only does this) with a twist, only folders that are at the root of the hierarchy and the folders that contain "@", "#" or "$" drill down, everything else is flattened into corresponding playlists.


It also populates that structure by importing the songs int the corresponding playlists it creates.
By default the script only adds mp3 files to playlist, this can be changed by editing the "if kind of file_info is "MP3 audio" then" line.
Keep in mind that the script uses a lot of cpu time and memory, for a directory structure of about 20k songs from which 15k were already imported to iTunes it took me about 1 hour to run it.
There are two snags, one the script creates empty "/" playlists even for folders that do not have songs directly inside (you should run the delete empty playlist script afterwards) and secondly if you have a folder with "@", "#" or "$" which parent is neither the root or another folder with "@", "#" or "$" it gets added incorrectly .


Delete Empty Playlists

Just like the name says it deletes empty playlists, they can be either folders or regular playlists, smart playlists are ignored.


delArtist fromName

Select any songs with the song Name mangled with the Artist name then enter a delimiter (typically " - ") and the script removes that artist (as determined by reading the song's Artist tag)

delArtist fromName


Name to Artist

Select any songs with the song Name mangled with the artist name then enter a delimiter (typically " - ") and the script moves that artist name to the song's Artist tag.

Name to Artist