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
Donate Life
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"