Bash iTunes is a command-line wrapper for iTunes/Music.app, letting you easily control iTunes from the terminal or over SSH.
Since version 2.0.0, the default has been to try to control Music.app, but you can override this to control iTunes in the config file if you still run older versions of MacOS/OSX.
Currently it supports the following commands:
Navigation commands:
play Start or resume playing.
pause Pause playing.
stop Stop playing.
next Skip to next track.
prev Skip back to previous track.
info View info about current track.
search Search for tracks.
shuffle View or set shuffle status.
repeat View or set repeat status.
playlist View or choose playlist.
playlists List all playlists.
Volume commands:
vol[ume] View or adjust iTunes volume 'up', 'down' or percentage.
mute Mutes iTunes.
unmute Unmutes iTunes, restoring previous volume level.
sysvol[ume] View or adjust system volume 'up', 'down' or percentage.
sysmute Mute system sound.
sysunmute Unmute system sound.
Application commands:
open Start iTunes running.
quit Quit iTunes.
show Hide the iTunes window.
hide Show the iTunes window.
Editing commands:
rate Set the iTunes star rating.
heart Add heart/loved status to a track.
unheart Remove heart/loved status from a track.
sync Sync ratings to or from audio files files and iTunes database.
Additional commands:
version Show version information and exit.
help Show this help and exit.
plugins Show a list of plugins installed.
Install the itunes script somewhere on your path, ~/bin
is
the usual choice, and type itunes help
to get started.
Have fun.
If you have the Python Mutagen package installed, Bash iTunes will attempt to write any
rating changes you make with itunes rate
to both the iTunes database and the MP3 file.
It will also provide access to the itunes sync
command that allows you to bulk sync
your ratings between the iTunes database and your MP3s.
You can override some configuration variables by creating a file in $HOME/.bash-itunes/config
.
For example:
# If your Mutagen python package is installed somewhere weird via MacPorts or something.
id3v2_editor="mid3v2-3.10"
# If you're still running a MacOS/OSX old enough to still have iTunes rather than Music.app
itunes_app="iTunes"
bash-itunes
has rudimentary plugin support by creating subcommands
in the $HOME/.bash-itunes/plugins
directory:
- Create a bash script in the plugins directory named after the command name.
- In the main body of the script do nothing but set the PLUGIN_NAME (a full name for the plugin), PLUGIN_VERSION (the plugin version) and PLUGIN_BRIEF (an under 70-char single-line description of the plugin) variables.
- Create a bash function named
_cmd_<plugin_name>
that performs the command.
For a simple example, $HOME/.bash-itunes/plugins/party
:
#!/bin/bash
PLUGIN_NAME="Party Party!"
PLUGIN_VERSION="1.0.1"
PLUGIN_BRIEF="Gets the party started in style."
function _cmd_party() {
say -v zarvox "Party party!" &
echo "Party party!"
}
Results in the following:
$ itunes plugins
Installed plugins:
party - Party Party! (1.0.1)
$ itunes party
Party party!
For a more extensive tutorial on writing plugins, check the blog entry on my website: http://www.illusori.co.uk/blog/2012/06/15/bash_itunes_plugin_tutorial.html