iTunes Shell Script
Posted May 22nd, 2003 @ 10:32am by Erik J. Barzeski
I was on a mailing list and the topic of AppleScript came up. I forget why, but I posted one of my "Terminal AppleScripts" (usig osascript) like those I mentioned in iTunes Remote via SSH. The end result? A better script. See the full entry for the source.
Kudos to Lu Lewis Butler for cobbling together the more impressive script. You can see it below or here.
#!/bin/sh
# itunes script version 1.0.2 # By Lewis Butler (lbutler @ southgaylord . com) # based on an idea of Erik J. Barzeski's (erik @ barzeski . com) #
# save this script somewhere in your path and give it # execute permissions.
# http://syth.serveftp.net/itunes
case $1 in
nt) osascript \ -e "tell application \"iTunes\"" \ -e " set x to \"\"" \ -e " if player state is not playing then" \ -e " play" \ -e " set y to name of current track & \" by \" & artist of current track & \"\"" \ -e " set result to y" \ -e " else" \ -e " next track" \ -e " set y to name of current track & \" by \" & artist of current track & \"\"" \ -e " set result to y" \ -e " end if" \ -e "end tell" ;;
pt) osascript \ -e "tell application \"iTunes\"" \ -e " set x to \"\"" \ -e " if player state is not playing then" \ -e " play" \ -e " set y to name of current track & \" by \" & artist of current track & \"\"" \ -e " set result to y" \ -e " else" \ -e " previous track" \ -e " set y to name of current track & \" by \" & artist of current track & \"\"" \ -e " set result to y" \ -e " end if" \ -e "end tell" ;;
name) osascript \ -e "tell application \"iTunes\"" \ -e " if player state is not playing then "\ -e " set result to \"iTunes is not playing a song\"" \ -e " else" \ -e " set x to name of current track & \" by \" & artist of current track & \" from \" & album of current track & \"\"" \ -e " set result to x " \ -e " end if" \ -e "end tell" ;;
ff) osascript \ -e "tell application \"iTunes\"" \ -e " fast forward" \ -e "end tell" ;;
pause) osascript \ -e "tell application \"iTunes\" to pause" ;;
play) osascript \ -e "tell application \"iTunes\" to play" ;;
pp) osascript \ -e "tell application \"iTunes\" to playpause" ;;
ns) osascript \ -e "tell application \"iTunes\"" \ -e " set mytrack to (first track of view of front window whose name contains \"$2\")" \ -e " play mytrack" \ -e " set x to name of current track & \" by \" & artist of current track & \"\"" \ -e " set result to x " \ -e "end tell" ;;
as) osascript \ -e "tell application \"iTunes\"" \ -e " set mytrack to (first track of view of front window whose album contains \"$2\")" \ -e " play mytrack" \ -e " set x to name of current track & \" by \" & artist of current track & \"\"" \ -e " set result to x " \ -e "end tell" ;;
na) osascript \ -e "tell application \"iTunes\"" \ -e " set mytrack to (first track of view of front window whose (name contains \"$2\" and artist contains \"$3\") )" \ -e " play mytrack" \ -e " set x to name of current track & \" by \" & artist of current track & \"\"" \ -e " set result to x " \ -e "end tell" ;;
'') echo "iTunes Helper script V1.0" echo "itunes pp : toggle itunes between play and pause" echo "itunes nt : next track" echo "itunes pt : previous track" echo "itunes ff : fast forward" echo "itunes pause : pause play" echo "itunes name : display name of current track being played" echo "itunes play : start playing " echo "itunes ns name : find song containing \"name\" and play" echo "itunes as test : find album containing \"test\" and play" echo "itunes na name artist : find song containing \"name\" and artist \"artist\""
esac
########### # # VERSION HISTORY # # 1.0 initial release # 1.0.1 added name disply to the ns and as flags # 1.0.2 added na switch
Posted 22 May 2003 at 11:25am #
Neato--that will come in handy if I ever get my hypothetical MP3 server going :-)!
Posted 22 May 2003 at 11:51am #
2003/05/22 16:43
iTunes shell script
Posted 22 May 2003 at 10:13pm #
I still think mine is better since it uses precompiled AppleScripts for speed and power that provides.
Posted 23 May 2003 at 12:10am #
Quick links
ongoing · The RDF.net Challenge File Types and Creator Codes on Mac OS X MCs smoke crack, I smoke aluminum! iTunes Shell Script
Posted 10 Dec 2003 at 12:48am #
The Lewis Butler script is not available at that URL any more. I made an addition to change the volume, add this in the case statement:
vl)
osascript \
-e "tell application \"iTunes\"" \
-e " set sound volume to $2 " \
-e "end tell"
;;
Then this to the help section:
echo "itunes vl x : set volume to x where x is 0-100"