Somebody on digg mentioned AppleScripting iTunes on the Mac, but it seems to be less well known that you can write Javascripts or VBScripts for iTunes for Windows.
So, here’s a bunch of scripts I’ve written for various tasks:
- Creates a playlist of all the songs in the library with no artwork: http://ottodestruct.com/itunes/NoArtPlaylist.txt
- Creates a playlist of all the songs in the library with no lyrics: http://ottodestruct.com/itunes/NoLyricsPlaylist.txt
- Creates a playlist of all the songs in the library of which you only have one of them by that artist (one hit wonders): http://ottodestruct.com/itunes/onehitwonders.txt
- Imports lyrics from EvilLyrics’ into iTunes: http://ottodestruct.com/itunes/EvilLyricsImport.txt
- Removes all lyrics from all songs in your library: http://ottodestruct.com/itunes/ClearLyrics.txt
- Reload/update all songs in the library from the file tags (useful if you use another tagging program to make changes to tags): http://ottodestruct.com/itunes/update.txt
- Finds dead tracks in your library and makes a list of them: http://ottodestruct.com/itunes/FindDeadTracks.txt
- Removes dead tracks from your library (this one was actually written by Apple originally, I’m just including it for completeness): http://ottodestruct.com/itunes/RemoveDeadTracks.txt
I’ve written more, but these are the most general purpose ones.
To use any of them, just download them, rename them to a *.js file, then run them like any other program (double click, select and press enter, type the name from a command prompt, etc). If you have all the defaults in XP or have the Windows Scripting Host installed on other Windows boxes, then the wscript.exe program actually runs the scripts, much like cmd.exe runs batch files. Same idea, anyway. The scripts connect to iTunes as a COM object and use it in that fashion. Works really well and is quite handy for scripting tasks in iTunes. Yeah, it doesn’t actually integrate or anything, but it’s still useful.
July 28th, 2008 at 3:36 pm
brendan: iTunes can do this itself. Just choose the “Consolidate Library” menu option. It’ll move all your library files into the iTunes library folders and rename them according to their tags and everything.
July 28th, 2008 at 3:29 pm
Hey otto,
My music is currently stored in a stupidly named folder as I was only testing out iTunes at first. One thing led to another and I’d spent hours and hours getting all the tags perfect with all artwork showing nicely.
Now I want to move or just rename the folder but with iTunes being an Apple product it’s not so straight forward.
I have the database moved over to a sensible location and artwork/metadata intact but of course now it can’t find my music in it’s new location.
I was wondering if it’s possible to modify the RemoveDeadTracks script to update the location path, so something like this:
if (currTrack.Location == “d:\Music\blah*”)
{
currTrack.Location = “new path”
}
Is something like that possible?
Thanks
July 24th, 2008 at 8:00 pm
Do you have a script that will allow you to put a group of files (mp3s) into the podcast directory without subscribing to an rss feed?
July 14th, 2008 at 10:56 am
Ryan, Nik: You cannot “get around” those errors. The error basically means that iTunes is not installed properly. Try reinstalling iTunes.
July 13th, 2008 at 6:59 pm
I used your scripts on an XP machine with itunes 7.7 and it worked perfect!
BUT I have my main machine running Vista and it does not work. Do you know how I can edit the code to get around this:
“could not locate automation class named “itunes.application”
Have you found a fix for Vista?
July 13th, 2008 at 5:00 pm
Do you know if they changed things in the latest iTunes 7.7? I had “borrowed” on of your scripts for loading TV shows to iTunes via a batch script. Everything was working great and now I get and error (after upgrading itunes) which says “library not registered”. I have the following two lines in the script.
var ItunesApp = WScript.CreateObject(”iTunes.Application”);
var mainLibrary = ItunesApp.LibraryPlaylist;
I don’t know much or anything about jscript so I’m looking for help from resources I’ve found in piecing together the script that was once working.
Thanks … any help would be appreciated.
July 4th, 2008 at 8:23 pm
Hi. I’m very new when it comes to all of this and i’ve been running AtomicParsley to edit specific tags which you normally can’t accomplish in editing within iTunes itself. The only one left for me is to edit/add LongDescription for my movies in iTunes. I’ve looked everywhere and i can’t find a solution. I downloaded iTunes COM Windows SDK but have no idea how to handle it or how to write those jscripts to edit the longDescriptions which i’ve desperately been trying to achieve. If anyone can write this script for me or at least give me the tutorial on how to accomplish this then please i beg of you to help me. You can contact me by e-mail aswell (cesar_belifs@hotmail.com). I’ve really been trying to find these answers for 2 whole days now 24/7 with no luck at all…i’m using Windows XP. The short description i’ve accomplished which can be edited with AtomicParsley but to edit the long description is a no go for me, the one you can read when you click on the (i) button on the description field on itunes. Please help me on this one. I’de be most thankful for it!
June 13th, 2008 at 5:48 am
If there is a way to do it, then I don’t know what it is.
Reinstalling iTunes has always fixed it in all the cases I’ve seen.
June 12th, 2008 at 7:26 pm
so is there no way to register the automation class manually?
(sorry if that’s a stupid question)
otherwise.. I guess I have to pray that the next version of itunes (which shouldn’t be far), will fix it.. but I don’t have high hopes!
June 11th, 2008 at 8:45 am
tinman: That problem only has one cause and one solution. The cause is an incomplete iTunes installation. The solution is a complete removal and reinstall of iTunes. Sometimes you can get it working by simply installing iTunes over itself.
However, since you’ve tried that already, you’re probably out of luck, because that is the only answer to your problem.