Friday 10 February 2012

New Project: itunes-remote-control-server

The other day I create a new opensource project on Google code called itunes-remote-control-server. The idea behind the project is to create a TCP server that can be used to control iTunes. This will allow easy headless control of a iTunes machine.

I'm aim to use the server with my other project Media Manager. The idea being that once media manager has made changes to media files it can tell iTunes about the changes. This will keep iTunes in sync with the media directories been managed by media manager. Their are two parts to this, a new store within Media Manager which will hopefully be in the next release and a TCP server on the iTunes machine.

So I've created a basic server that works on Mac OSX. It's written in ruby and uses mac ruby script bridge to talk to iTunes. I'm hoping to add windows iTunes support before a official release, but this is still at investigation stage at the moment.

Currently the server will allow you to add or remote tracks from the iTunes library as well as listing/removing tracks whose files can't be found any more (Dead tracks). Their is simple authentication support and it's configuration is done via a XML file.

Their are also some command line utilities that can be used instead of the server if people want to drive iTunes from the CLI without the server. So far these are for finding tracks not in the iTunes library and dead tracks.

So currently I've not released it, though I hope this will not take to long. Just need to look into the windows side of things. If people want to try it out, then they will need to do the following:

git clone https://jp.stanford@code.google.com/p/itunes-remote-control-server
cd itunes-remote-control-server
gem build ./itunes-controller.gemspec
gem install itunes-controller-0.1.0.gem



This will install the build gem and provide the command line tools:

itunesController.rb   <- The TCP Server
llistDeadTracks.rb
listNewTracks.rb
removeDeadTracks.rb

Anyway I'll post a update again when It's time for a official release. At that point the ruby gem will be downloadable from the website.