Skip to content

Instantly share code, notes, and snippets.

@vinbarnes
Created June 18, 2011 08:40
Show Gist options
  • Save vinbarnes/1032926 to your computer and use it in GitHub Desktop.
Save vinbarnes/1032926 to your computer and use it in GitHub Desktop.
##################
#!/bin/sh
#
####################################
# iTunes Command Line Control v1.0
# written by David Schlosnagle
# created 2001.11.08
####################################
showHelp () {
echo "-----------------------------";
echo "iTunes Command Line Interface";
echo "-----------------------------";
echo "Usage: `basename $0` <option>";
echo;
echo "Options:";
echo " status = Shows iTunes' status, current artist and track.";
echo " play = Start playing iTunes.";
echo " pause = Pause iTunes.";
echo " next = Go to the next track.";
echo " prev = Go to the previous track.";
echo " mute = Mute iTunes' volume.";
echo " unmute = Unmute iTunes' volume.";
echo " vol up = Increase iTunes' volume by 10%";
echo " vol down = Increase iTunes' volume by 10%";
echo " vol # = Set iTunes' volume to # [0-100]";
echo " stop = Stop iTunes.";
echo " quit = Quit iTunes.";
echo " playlist "@" = Play iTunes' playlist named @";
echo " shuf = Shuffle current playlist";
echo " nosh = Do not shuffle current playlist";
}
if [ $# = 0 ]; then
showHelp;
fi
while [ $# -gt 0 ]; do
arg=$1;
case $arg in
"status" ) state=`osascript -e 'tell application "iTunes" to player state as string'`;
# echo "iTunes is currently $state.";
if [ $state = "playing" ]; then
artist=`osascript -e 'tell application "iTunes" to artist of current track as string'`;
track=`osascript -e 'tell application "iTunes" to name of current track as string'`;
album=`osascript -e 'tell application "iTunes" to album of current track as string'`;
echo "$artist: $track [$album]";
fi
break ;;
"play" ) echo "Playing iTunes.";
osascript -e 'tell application "iTunes" to play';
break ;;
"pause" ) echo "Pausing iTunes.";
osascript -e 'tell application "iTunes" to pause';
break ;;
"next" ) echo "Going to next track." ;
osascript -e 'tell application "iTunes" to next track';
break ;;
"prev" ) echo "Going to previous track.";
osascript -e 'tell application "iTunes" to previous track';
break ;;
"mute" ) echo "Muting iTunes volume level.";
osascript -e 'tell application "iTunes" to set mute to true';
break ;;
"unmute" ) echo "Unmuting iTunes volume level.";
osascript -e 'tell application "iTunes" to set mute to false';
break ;;
## old vol arguments
# "vol" ) echo "Changing iTunes volume level.";
# vol=`osascript -e 'tell application "iTunes" to sound volume as integer'`;
# if [ $2 = "up" ]; then
# newvol=$(( vol+10 ));
# fi
#
# if [ $2 = "down" ]; then
# newvol=$(( vol-10 ));
# fi
#
# if [ $2 -gt 0 ]; then
# newvol=$2;
# fi
# osascript -e "tell application \"iTunes\" to set sound volume to $newvol";
# break ;;
## new vol fix
"vol" ) echo "Changing iTunes volume level.";
vol=`osascript -e 'tell application "iTunes" to sound volume as integer'`;
if [ $2 = "up" ]; then
newvol=$(( vol+10 ));
osascript -e "tell application \"iTunes\" to set sound volume to $newvol";
break ;
fi
if [ $2 = "down" ]; then
newvol=$(( vol-10 ));
osascript -e "tell application \"iTunes\" to set sound volume to $newvol";
break ;
fi
if [ $2 -gt 0 ]; then
newvol=$2;
osascript -e "tell application \"iTunes\" to set sound volume to $newvol";
break ;
fi
break ;;
## end vol fix
## addition playlist of choice
"playlist" ) echo "Changing iTunes playlist.";
osascript -e 'tell application "iTunes"' -e "set the new_playlist to "$2" as string" -e "play playlist new_playlist" -e "end tell";
break ;;
"shuf" ) echo "Shuffle is ON.";
osascript -e 'tell application "iTunes" to set shuffle of current playlist to 1';
break ;;
"shuf" ) echo "Shuffle is ON.";
osascript -e 'tell application "iTunes" to set shuffle of current playlist to 1';
break ;;
"nosh" ) echo "Shuffle is OFF.";
osascript -e 'tell application "iTunes" to set shuffle of current playlist to 0';
break ;;
## end addition
"stop" ) echo "Stopping iTunes.";
osascript -e 'tell application "iTunes" to stop';
break ;;
"quit" ) echo "Quitting iTunes.";
osascript -e 'tell application "iTunes" to quit';
exit 1 ;;
"help" | * ) echo "help:";
showHelp;
break ;;
esac
done
# To use the file, save it somewhere in your $path. Then 'chmod 755 filename' to make it executable.
# Type 'rehash'. Then you can start using it. Personally mine is named 'itunes', so to start playing
# I use the command:
# itunes play
#If you just type "itunes" it will list the options. Currently the options are:
# status = Shows iTunes' status, current artist and track.
# play = Start playing iTunes.
# pause = Pause iTunes.
# next = Go to the next track.p
# rev = Go to the previous track.
# mute = Mute iTunes' volume.
# unmute = Unmute iTunes' volume.
# vol up = Increase iTunes' volume by 10%
# vol down = Increase iTunes' volume by 10%
# vol # = Set iTunes' volume to # [0-100]
# stop = Stop iTunes.
# quit = Quit iTunes.
##################
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment