Download 451 (and counting) free user-contributed AppleScripts for Apple's iTunes that will help make managing your digital music collection easier and more fun!

What's AppleScript?

AppleScript is a simple Macintosh-only programming language that can control and automate actions on your Mac. AppleScript is already available on your computer as part of the Mac OS and many popular applications can be automated using AppleScript scripts. Scripts written for iTunes can manage files and track information, create playlists, interact with other applications, perform innovative tasks, and handle many kinds of chores which otherwise would be repetitive, laborious, and/or time-consuming.

Cool! Where Do I Start?

Start browsing the site by using the scripts ↓ Menu link above. AppleScripts are gathered into these general Categories:

Or use the search box at the top of every page to try and find something specific.

Not sure how to install AppleScripts? Here's the Download/Installation FAQ.

Check back often or subscribe to my RSS blog feed and 30 Most Recent Scripts RSS to stay notified about new and updated scripts and info.


March 28 2014 - 9:57 am

NEW: Playlists By Volume v1.0

Had to round up some files located on disparate drives, but iTunes tracks can’t be sorted using any file path information.

Playlists By Volume will sort the tracks of your iTunes library into discrete playlists based on the volume name of each track’s file’s location.

Takes about a minute per thousand tracks to complete.

More information and download is here.

March 16 2014 - 12:18 pm

Reveal Multiple Selected Tracks’ Files

I occasionally have need to access the files of tracks that may not always be in the same “Album” folder. iTunes has a “Show in Finder” command (Shift-Command-R) for single tracks so to reveal all the files from disparate folders I have to “Show in Finder” each of the tracks, one at a time.

But what if I could open each selected track’s file’s folder in its own tab in a single Finder window? Like this:

Each tab is the containing folder for the file of each selected track and each file is highlighted. Even if two or more files are in the same folder the folder will get its own tab for each file.

The script follows:

March 6 2014 - 1:33 pm

iTunes Store Power Search at Your Fingertips

Kirk McElhearn posted today about accessing the (kinda hidden) iTunes Store “Power Search” panel:

The trick to making this panel visible is to use this link, which I suppose you could bookmark in your web browser and Command-Tab to that whenever you wanted to power search. But in the last century human beings invented AppleScript to free themselves from time-consuming drudgeries like that.

Just enter this in AppleScript Editor (or click the little script icon to open it automatically):

tell application “Finder”

open location “http://phobos.apple.com/WebObjects/MZSearch.woa/wa/advancedSearch”

end tell

Name it whatever you like and Save it with the Format of “Script” in your ~Library/iTunes/Scripts/ folder. Then assign it a shortcut in iTunes.

It will still need to go through your web browser to open the link in the iTunes app—and thus leave an open browser window turd—but that’s easily enough dispatched.

UPDATE: Numerous Correspondents have reported that changing “http” to “itms” in the URL skips going through the web browser.

February 27 2014 - 6:57 am

iTunes 11.1.5 Released

Apple has released iTunes 11.1.5 which fixes a problem with unexpected quits while connecting a device and improves compatibility with iBooks. Not sure what issues with iBooks are addressed.

February 13 2014 - 12:42 pm

NEW: Scan For Double Entries

A funny thing started happening shortly after the introduction of iTunes 11 a few months ago. I began getting reports from Correspondents about usually reliable scripts that weren’t working correctly. After closer scrutiny, we were able to determine that some of their media files were appearing twice in the library. That is, they were finding pairs of identical tracks in the “Music” library that each pointed to the same file. Like this:

Two “Music” track entries, same file.

This is not ever supposed to happen. iTunes should not allow a file in a unique location to be added to its library more than once.

Now, this is not the same effect as copying a library track two or more times to a playlist, whereby only one library track is involved. Nor is it the same as when iTunes appends a number to a filename to distinguish it from an earlier-added same-named file. Nor do these tracks seem to be a flavor of iTunes Match duplicates (iTunes Match may or may not be a factor in their appearance). This issue manifests as sets of two distinct library track entries, each having different IDs and both having the same value for the Location property.

I don’t know how this happens. But it definitely has something to do with moving media files around the wrong way and doing so with iTunes 11. It may be a bug and it may even be fixed by now. But I don’t know. I only got it to happen once myself while I was experimenting convolutedly with a different issue and I haven’t been able to replicate it since.

Regardless of how these pairs came to be, how now to find them and then to deal with them? If you have a very large library, you may not even notice if you have any faux pairs.

My duplicate removal apps, Dupin and Dupin Lite, can detect this condition but won’t attempt to delete any files. If the file of one of the tracks were deleted, well, then neither track would be pointing to a file any longer and you’d have a lot of dead tracks. There’s a trick to using Dupin to delete an arbitrary one of each of the track pairs, but, technically, they’re not the sort of “dupes” that Dupin wants to handle.

So, the applet Scan For Double Entries simply looks through your library for track entries that have the same file path (that is, the same file location) and will copy these pairs of tracks to a discrete playlist so you can sort them out yourself. Presumably you’ll want to delete one of the tracks in each faux pair and I’m not sure that’s something you want an automated tool to do for you, you know, automatically.

More information and download is here.

February 5 2014 - 10:30 am

NEW: Export Files From Playlists

Export Files From Playlists—playlists, plural—will export copies of the files of the tracks in a selection of playlists to a single user-selected folder.

More information and download is here.

February 4 2014 - 7:44 am

UPDATED: This Tag That Tag v3.4

This Tag That Tag v3.4 will assist with swapping, copying, and appending data between two user-chosen tags in selected tracks or tracks in the selected playlist:

Swap – swap data between tags, ex: ARTIST<->COMPOSER
Copy – copy data from one to another tag, ex: ARTIST->COMPOSER ARTIST
Append – append data from one tag to the end of another, ex: ARTIST->COMPOSER – ARTIST
Prepend – prepend data from one tag to the beginning of another, ex: ARTIST->ARTIST – COMPOSER

The latter three actions also provide an option to delete the info from the first tag after the copy.

This latest version adds “Category”, “Description” and “Episode ID” text tags as options and a few minor tweaks and adjustments.

More info and download is here.

February 2 2014 - 8:17 am

Disc 1 of 1

A Corespondent laments:

My personal preference when dealing with the disc count field (1 of 2, etc) is to leave it blank for single CD albums instead of tagging them as “1 of 1.” There is something about 1 of 1 that just bugs me so I try to clear those out. Can you think of anything you have that can search in those fields? Sorting the library by disc number [is an unsatisfactory solution] because every disc 1—regardless if there is a second disc—gets sorted.

Yeah. It would be easy to do a Multi-Item edit on these guys if you could only corral ‘em all together somehow. But: sorting by Disc # sorts by Disc Number alone and ignores the Disc Count so the “1 of 1″ tracks are not necessarily sorted together; rather, they’re sorted by Album (all the Disc 1 albums A-Z, followed by all the Disc 2 albums A-Z, and so on). Smart Playlists are of little use to gather up these tracks since Disc Count is not a smart criterion.

So here’s a script that will look at each track in a selection or all the tracks in the selected playlist; if the track’s Disc Count is 1 the script will set it to 0, effectively blanking it:

tell application id “com.apple.iTunes”

set thePlaylist to (get view of front window)

set sel to selection

if sel is {} then

# all tracks in playlist

repeat with i from 1 to (get index of last track of thePlaylist)

my processTheTrack(track i of thePlaylist)

end repeat


# selected tracks

repeat with i from 1 to (length of sel)

my processTheTrack(item i of sel)

end repeat

end if

end tell

to processTheTrack(t)

tell application id “com.apple.iTunes”


if disc count of t is 1 then set disc count of t to 0

end try

end tell

end processTheTrack

You can save that in AppleScript Editor named whatever you like and using “Script” as the file format to your ~/Library/iTunes/Scripts/ folder whereupon it will appear in the iTunes Scripts menu.

The script iterates through each track individually, so if you run it against your entire Music library playlist you’ll have time to file nails, tidy bookshelves, re-string guitar, or perform some other menial task.

UPDATE: To eliminate the disc number as well (although I prefer to keep it) change the handler to this:

to processTheTrack(t)

tell application id “com.apple.iTunes”


if disc count of t is 1 then

set disc number of t to 0

set disc count of t to 0

end if

end try

end tell

end processTheTrack

January 22 2014 - 7:15 pm

Apple Releases iTunes v11.1.4

Apple has released iTunes 11.1.4 which lets you see your Wish List in the library, improved languages support and unspecific “stability improvements”.

December 28 2013 - 3:04 pm

UPDATED: Track Down Purchases v2.3

Track Down Purchases v2.3 will examine each track in the entire iTunes library—or a selection of tracks—for items purchased from the iTunes Store (audio, video, and audiobooks) and then sort them by either the purchaser’s name or account ID into discrete playlists, eg: “Purchased by Tom Ryan” or “Purchased by tomryan@email.com”.

Purchaser information is gleaned by examining the track’s local file (purchase info for iTunes Match tracks in the cloud is inaccessible and cloud tracks will be ignored), which, depending on file location and access speed, may take as long a second per track. Just sayin’.

This lateset version fixes a problem for some OS X 10.9 users whereby the script would hang once engaged.

More information and download is here.

Site contents © 2001 - 2014 Doug Adams and weblished by Doug Adams, dougscripts AT mac DOT com. About.
All rights reserved. Legal.
AppleScript, iTunes, iPod, iPad, and iPhone are registered trademarks of Apple Inc.