In partial response to the Ask Metafilter question “How can I rename my music folders on my Mac based on ID3 tags?“:
#!/bin/bash # itunes_sanity.sh - fix dir names created by iTunes # only works for mp3s, and not actually tested on a Mac # created by scruss on Sun Sep 4 22:05:00 EDT 2005 find "$@" -type d -mindepth 1 | while read directory do artistdir=$(dirname "$directory") firstfile=$( find "$directory" -type f -iname '*.mp3' | head -n1 ) year=$( id3info "$firstfile" | egrep ' TYE ' | sed 's/=== TYE (Year): //; s/[^0-9]*//;' ) album=$( id3info "$firstfile" | egrep ' TAL ' | sed 's,=== TAL (Album/Movie/Show title): ,,;' ) echo mv \'$directory\' \'$artistdir/\[$year\] $album\' done
So if you were in the terminal, in your music library (one up from the individual artist directories), and you did:
itunes_sanity.sh Dan\ Jones Tripping\ Daisy
you’d get:
mv 'Dan Jones/Get Sounds Now' 'Dan Jones/[2005] Get Sounds Now' mv 'Dan Jones/One Man Submarine' 'Dan Jones/[2003] One Man Submarine' mv 'Tripping Daisy/Jesus Hits Like the Atom Bomb' 'Tripping Daisy/[1998] Jesus Hits Like the Atom Bomb'
If that looks okay, run the output through the shell:
itunes_sanity.sh Dan\ Jones Tripping\ Daisy | sh
and all should be well.
You’ll need id3lib, which is probably most easily installed from Fink. Also, this only works for mp3 files; I can’t grok the tag info for AAC files. And finally, this might go seriously screwy on weird characters in filenames. You know my feelings on that …