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:

tell application "iTunes"
	close EQ window 1
end tell

tell application "iTunes"
	close every playlist window
end tell

 

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

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.

tell application "iTunes"
	open (choose file)
end tell

 

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:

tell application "iTunes"
	set newFile to (choose file with prompt "Select a song to add...")
	set new_track to (add newFile to playlist "Check These Out!")
	set comment of new_track to "Some comment for this example"
end tell

 

convert
Converts a list of tracks using the currently set encoder, and returns a reference to the converted track. This is an extremely basic example.

tell application "iTunes"
	convert selection
end tell

 

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.

tell application "iTunes"
	stop
end tell

-- or

tell application "iTunes"
	pause
end tell

-- or toggle from one to the other state...

tell application "iTunes"
	playpause
end tell

 

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):

tell application "iTunes"
	next track
end tell

-- perhaps you would use it like this:

tell application "iTunes"
	if (get comment of current track) is "Don't Play This" then
		next track
	end if
end tell

 

open location

Connects to an internet streaming audio source. Just supply the URL of the site:

tell application "iTunes"
	open location "http://shiva.6o4.net:8605"
end tell

 

reveal

Display a track and select it in iTunes.

tell application "iTunes"
	if player state is not stopped then
		reveal current track
	end if
end tell

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 usually be an iPod and will only work if the iPod is set to automatically sync and not "manually manage". Here is a simple example

tell application "iTunes"
	set my_iPod to some source whose name is "Doug's iPod"
	update my_iPod
end tell

< prev | 1 2 3 
This column is printer-friendly.
Site contents © 2001 - 2010 Doug Adams and weblished by Doug Adams, dougscripts AT mac DOT com.
All rights reserved. Legal.
AppleScript, iTunes, and iPod are registered trademarks of Apple Inc.
Image 01 Image 01 Image 01 Image 01 Image 01 Image 02 Image 03 Image 03 Image 03 Image 03