Commonly Used iTunes Commands 1 2 3
Here are some of the commands available to use with iTunes. This is just a quick primer to get you started.
Commands from the Required Suite
close
Close a window:
count
How many of whatever object is specified, most helpful for counting tracks and playlists. Example uses:
tell application "iTunes"
get count of playlists
end tell
tell application "iTunes"
get count of tracks of (get view of front window)
end tell
(* the view property returns a reference to the selected playlist *)
tell application "iTunes"
count (tracks of (view of front window) whose album is "Greatest Hits")
end tell
(* the snippet below will count only those tracks whose album name contains the word "hits": *)
tell application "iTunes"
count (tracks of (view of front window) whose album contains "hits")
end tell
tell application "iTunes"
repeat with x from 1 to count tracks of (view of front window)
(* do something with track x of the selected playlist *)
end repeat
end tell
delete
Removes whatever object is specified, usually a track or playlist, without confirmation; this command does not delete files from your computer. CAUTION: when you delete a track from the main library (library playlist 1), the track will also be removed from any playlists which contain it. Example uses:
-- delete the selected playlist...CAREFUL!
tell application "iTunes"
delete (view of front window)
end tell
-- delete a track...CAREFUL!
tell application "iTunes"
delete track 7 of (view of front window)
end tell
-- delete a track from iTunes entirely...CAREFUL!
tell application "iTunes"
delete track 7 of library playlist 1
end tell
duplicate
This is the command used to copy a track or tracks from one playlist (or source) to another:
tell application "iTunes"
duplicate track 5 of library playlist 1 to playlist "Mom's Faves"
end tell
tell application "iTunes"
repeat with aTrack in selection
duplicate aTrack to playlist "Mom's Faves"
end repeat
end tell
The direct object of duplicate must be a reference to a track or tracks. And even though the selection object works, a list of track references does not.
-- this works
tell application "iTunes"
duplicate selection to playlist "Mom's Faves"
end tell
-- this does not work
tell application "iTunes"
set my_Nirvana_tracks to (every track of library playlist 1 whose album is "Nevermind")
duplicate my_Nirvana_tracks to playlist "Nirvana - Nevermind"
end tell
-- work around
tell application "iTunes"
duplicate (every track of library playlist 1 whose album is "Nevermind") to playlist "Nirvana - Nevermind"
end tell
-- or
tell application "iTunes"
set my_Nirvana_tracks to (every track of library playlist 1 whose album is "Nevermind")
repeat with a_track in my_Nirvana_tracks
duplicate a_track to playlist "Nirvana - Nevermind"
end repeat
end tell
make
Creates a new object, in iTunes's case a new user playlist. That's all. It's the scriptable version of the "New Playlist" option in the "File" menu. It also returns a reference to the new playlist. Example use (the "new" is optional):
tell application "iTunes"
make new user playlist
end tell
tell application "iTunes"
set myNewPlaylist to (make new user playlist)
end tell
-- note how some or all playlist properties can be set in a record:
tell application "iTunes"
make new user playlist with properties {name:"Mom's Favorites", shuffle:false, song repeat:one}
end tell
open
Use this command to add a file to a Master Library ("Music", "Audiobooks", and so on, depending on the kind of track) and start play. Requires the alias of the file to open, which suggests you might want to use the AppleScript "choose file" command.
Commands from the iTunes Suite
add
Add a new track or tracks to the iTunes library. Audio CD tracks will be imported to your computer.
The add command requires the alias of the file(s) in a list (lists are enclosed by brackets and the values in a list are separated by commas). You can also designate an extant playlist to copy the track to:
tell application "iTunes"
-- 'choose file' returns an alias
set newFile to (choose file with prompt "Select a song to add...")
add newFile to playlist "Check These Out!"
end tell
The add command returns a reference to the track added, so:
convert
Converts a list of tracks using the currently set encoder, and returns a reference to the converted track.
play
Will play the current track (start the player) or play the object specified. However, in the latter regard, the object can be a track or playlist identified by index number or name, or an audio file's filepath. Here are several examples:
-- by index number...
tell application "iTunes"
play track 16 of playlist 1
end tell
-- by name...
tell application "iTunes"
play track "Running Two" of playlist "Lola"
end tell
-- playlist by name...
tell application "iTunes"
play playlist "Lola"
end tell
tell application "iTunes"
play the playlist named "Lola"
end tell
-- by filename...
tell application "iTunes"
play "Main:Sound:MP3s:Lola:Running Two.mp3"
end tell
pause, playpause, and stop
I think you can guess what these do. Like other player-oriented commands, they appear alone on a command line and do not refer to any objects.
next track and previous track
These two commands allow you to skip to the next or previous track in the current playlist. The "base track"—if you will, the track from which to advance or regress from—needn't be playing, but it must be the current track in the player. No result is returned, so you don't know what "next track" is unless you tap current track. The syntax is as simple as it gets (either command would appear alone on a command line and does not refer to any objects):
open location
Connects to an internet streaming audio source. Just supply the URL of the site:
reveal
Display a track and select it in iTunes.
search
Search a given playlist for tracks meeting the supplied criteria. You can search by album, artist, composer, or song name; or the displayed songs, or everywhere.
tell application "iTunes" -- search the Recently Played playlist for tracks whose artist name is "The Clash" set my_search_results to (search playlist "Recently Played" for "The Clash" only artists) end tell tell application "iTunes" -- search everywhere for songs containing "jam" set my_search_results to (search library playlist 1 for "jam") end tell
update
Have a specified device sync immediately. This will typically be an iPhone or iPod and will only work if the device is set to automatically sync and not "manually manage". Here is a simple example which updates the single mounted device (additional spefific devices can be referenced by name, for example):