Download hundreds (495 and counting) of AppleScripts for Apple's iTunes that will help make managing your digital media collection easier and more fun!
downloaded 22m 3s ago
For iTunes Sort purchased tracks into discrete playlists by name or Apple ID
downloaded 27m 11s ago
For iTunes Set the Plays of selected tracks
downloaded 30m 50s ago
For iTunes Renumber order of selected tracks
downloaded 1h 16m 18s ago
For Music/TV Title Cap various track tags, featuring editable exceptions lists
downloaded 2h 5m 20s ago
Check all scripts from dougscripts.com installed on your computer for updates
downloaded 2h 22m 0s ago
For iTunes Remove selected tracks and Trash or delete their files
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:
- Managing Tracks
- Managing Track Info
- Managing Artwork
- Managing Playlists
- Controlling iTunes
- Exporting Info
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 a Download/Installation FAQ & Video.
Check back often or follow me on Twitter @dougscripts, my YouTube channel, or subscribe to my RSS blog feed and 30 Most Recent Scripts RSS feed to stay notified about new and updated scripts and info.
I was recently a guest on the MacVoices podcast, hosted by all around Good Dude, Chuck Joiner. Had a great time talking about our post-iTunes future.
Join Together can create a single audio file from the two or more audio tracks you drag to it, from Music, iTunes or the Finder.
This latest version is for macOS 10.12 and later (including macOS 10.15).
M3Unify is a file utility that helps you manage copying audio files to a folder, drive, thumb or SD drive, ostensibly for use with portable and car audio devices.
This latest version is for macOS 10.14 and later only. And it, too, supports iTunes 12 and Music in macOS 10.15.
It may be somewhat ironically serendipitous (or serendipitously ironic) that CD Text to CD Info v5.0 happens to be the first script I've posted specifically for the new Music app. Afterall, ripping audio from a CD seems quaint in the current age of streaming. But facetious jibes like "What's a CD? LOL!" aside, there are still plenty of CDs in the world that haven't been ripped yet and plenty of people who want to do the ripping. Thankfully, Apple has preserved this ability in the Music app.
CD Text to CD Info v5.0 will examine the selected CD mounted in Music for CD-Text and apply the album and track information to the CDs tracks. In this screenshot of the script's main window, all of the information (except disc number/count and year, which I entered manually) is from the CD's CD Text:
This is from a CD that I burned years ago in iTunes, which allowed me to include CD Text. Not all CDs contain CD Text, but many do. It would have solved a lot of metadata confusion if the music industry had insisted that CD Text be a mandatory Red Book standard from Day 1, but That's The Way It Went.
As I mentioned at the top, CD Text to CD Info v5.0 will only run on macOS 10.15 Catalina with the Music app, which are both currently in beta (the version that works with iTunes is still available here).
In case it isn't crystal clear: scripts written for iTunes will not work on macOS 10.15 and later. Since the iTunes application isn't available on the new OS, scripts that target it will fail. So, almost every script on the site will need to be re-written to work with the macOS Music and/or Apple TV apps that replace iTunes in macOS 10.15.
Oh, I'm keeping busy, all right. I would like to be posting updates for use with the Catalina betas. But there are currently some issues in the betas that have precluded me posting any Catalina-compatible scripts yet. I have no doubt that Apple will fix these minor glitches well before Catalina's offical release; I just don't know how soon. And even then, there will be a gradual rolling-out of script updates through the summer and fall.
To help users keep track of what scripts for which operating system have been updated and when, I've posted Doug's Check For All Updates. It's an applet that will survey your computer for all the scripts you have installed from dougscripts.com and generate a report listing which have been updated. This is unlike the "Doug's Check For Update" script, which can only check one script at a time.
Doug's Check For All Updates will work right now on any version of macOS 10.10 and later, including the macOS 10.15 betas.
May I suggest that it may be helpful to get some work done on your iTunes library with the latest tools now, before you update to Catalina and the new media apps. Your favorite script(s) may not be Catalina-ready by then.
A security aside: This is the first download I am posting that has been notarized by Apple, a requirement for third-party software if it is to be distributed outside the Mac App Store. As such, it is also the first download to be packaged as a .dmg (disk image file) without the .zip wrapper. The code-signing and notarization process in my workflow make it easier to process a disk image without the additional ZIP compression. All future new and updated scripts will be likewise packaged as DMGs.
If you've got scripts you've written for iTunes, one of the first things you'll realise in Catalina is that instead of having one media app you have two. Sure, this seems self evident. Until you try converting your iTunes scripts to Music and/or Apple TV scripts.
Let's say you have a script that gets the name of the selected playlist. No matter what kind of playlist you selected in iTunes, this script reliably returned its name. Thus, it would work with a playlist containing strictly music tracks or one with only video tracks. But that was in iTunes. Now, music tracks are in Music and video tracks are in Apple TV.
You could write two scripts, one for Music and one for Apple TV. Or you could write a script that includes routines that can target both, doubling the size of your script.
Or you could use a simple trick to target one or the other app depending on where the script is installed. I always recommend putting your scripts in the app's "Scripts" folder. It's just a matter of getting the "path to me" which will return the file path of the script.
Then, you haul out the good ol' "using terms from". Throw it all together like this to make a script swing:
set myPath to (path to me) as text
set mediaAppName to "Music"
if (myPath contains ":Apple TV:") then
set mediaAppName to "TV"
using terms from application "Music"
tell application mediaAppName
-- do your things in the app
set playlistName to (get name of view of front browser window)
end using terms from
Using the script's file path location—which will be something like Macintosh SSD:Users:username:Library:Music:Scripts:Name of Script.scpt or Macintosh SSD:Users:username:Library:Apple TV:Scripts:Name of Script.scpt—we can determine which app to target. This name is saved to the mediaAppName variable. (This trick will also work if you store scripts in the local Library folder or in the Library/Scripts/Applications/Music/ or Library/Scripts/Applications/Apple TV/ folders since they all contain the app name in the file path.)
Next, a using terms from block is hardcoded to target "Music", followed by the tell block for mediaAppName. This allows the script to compile while you're working on it in Script Editor. Since both the Music and Apple TV scripting goodness are virtually identical, you can indeed "use terms from" Music to automate either app.
Now instead of making two scripts, you can put a copy of one script in both Scripts folders. It doesn't work with aliases since the location of the Original file will be used.
You will need to wrap any tell statement targeting a particular app in the using terms from block. Also, you may want to assign the mediaAppName as a property or global in order to access it throughout the scope of more elaborate scripts.
UPDATED, July 31, 2019. Changed target "Apple TV" to just "TV", which is how the app is targeted in the latest macOS 10.15 betas. Note that the name required for TV app's "Scripts" folder's container is still "Apple TV".
Yesterday, Apple released the first beta of macOS 10.15 Catalina to users in the Apple Beta Software Program. If you're in the program and have installed the beta, well, surprise! Scripts and apps written for iTunes will not work on it. That's because there is no version of iTunes in the beta for scripts and apps to work with.
As you are no doubt aware, Apple has replaced iTunes with the Music, Apple TV, Podcasts and Books apps. Between now and the official release of Catalina in the fall, I will be updating very many scripts to work with the Music and Apple TV apps—Podcasts and Books do not have AppleScript support.
Providentially, scripting the Music and Apple TV apps is very much like scripting for iTunes. Their scripting definitions are virtually identical. In many cases, for very simple scripts, updating will merely require changing the target from "iTunes" or "com.apple.iTunes" to "Music"/"com.apple.Music" or "Apple TV"/"com.apple.TV". More elaborate scripts may require additional modifications and security accommodations.
Thus, there will essentially be two sets of scripts on this site: those written for iTunes that can only run under macOS 10.14 and earlier and those for the newer media apps that can only run under macOS 10.15 and later.
I hope to have a first batch of Catalina-compatible scripts posted in about a week.
Apple has posted an article, About the upcoming changes with iTunes on Mac, which describes the new media apps coming in macOS 10.15 Catalina.
Apple debuted Music.app and Apple TV.app at WWDC yesterday. The macOS 10.15 Developer Beta was released and I've installed it. All in all, I'd say things are looking good for scripting the media apps in macOS 10.15.
- There is no iTunes.app in Catalina. Surprisingly! I thought Apple would keep a "legacy" iTunes around, in the same way QuickTime Player 7 and Aperture were allowed to languish. But I'm guessing the new new media apps work well enough that such a strategy was deemed unnecessary.
- Music and Apple TV have AppleScript support. Podcasts app does not.
- Current iTunes scripts will not work with Music.app or AppleTV.app. At least, not without some slight modifications. Music.app's scripting definitions file is virtually the same as iTunes (likewise the Apple TV.app). So scripts that target application "iTunes" will need to target application "Music" or "Apple TV". There may be other changes necessary.
- The Music.app Script Menu Lives! Simply create the "Music/Scripts/" folders in the Library folder, put at least one script in it and the Script menu will appear in Music.app. I haven't tried this with the Apple TV app, but I'm betting it works the same.
- There doesn't appear to be an automatically updated "iTunes Library.xml" file. Holding out hope this will be available in a later version (or perhaps I'll stumble over something). This XML file is used by third-party apps to quickly get information about the library. XML files can be user-exported but not having an automatically updated XML is inconvenient. This was being phased out anyway. I haven't tested the iTunesLibrary/ITLibrary framework under Catalina yet which may be a workaround.
- No Column Browser (sad).
If you are a rabid iTunes user and are chomping at the bit to try Music.app: TAKE THAT BIT OUT OF YOUR MOUTH! I would not recommend using the Developer or Public Betas on a main machine "just to see". You will not be able to go back without enormous difficulty. If you must install a beta, use a separate partition or virtual machine. Otherwise, wait until the official release.
I will try and update some scripts and apps for Music.app in the coming days and weeks. My Summer is going to be quite busy!
Music Folder Files Not Added has been updated to v6.0. This application will list the file paths of the media files in your designated "iTunes Media" folder which are not associated with any tracks in iTunes' track library. Additionally, you can select a different parent folder and its contents will be compared to the iTunes library. Includes options to Filter results, Add a selection of found files to iTunes, move them to the Trash, and Export a text file listing the file paths.
I was getting some reports from users who were getting false positives, so I tweaked the text normalization routines in the hopes of minimizing ambiguous results. Other minor issues were addressed as well.
You can use Music Folder Files Not Added free for ten days, after which a registration can be purchased for $1.99. More information, a video demo and download is available on this page. Current users can "Check for Update..." in the applet's main menu.
Apple has included iTunes 220.127.116.11 with the macOS 10.14.5 update. The previous version of iTunes was 18.104.22.168. The new version is only available when the operating system is updated and there is no stand-alone installer.
There doesn't appear to be too much different. However, as in iOS 12.3, there are some minor changes to Apple Music's For You page. For example, the 4x4 "because you like/listen" blocks of album recommendations have been replaced with 4 Genre groups of 12 albums and playlists. [Update: this was rolled out to all users.]
This is probably the last version of iTunes that Apple releases before the macOS 10.15 beta is released to developers in June at WWDC; it is presumed that a new Music.app will debut then as well.