|iTunes Remote Commander|
What it iTRC?
iTRC is a web-based front end for iTunes. You can control iTunes using a web browser on a remote computer (even over the web, if you really wanted to). [View Screenshot #1]
I have a computer hooked up to my stereo and wanted to be able to control music from any other PC in the house. So I run iTunes on the music server and it plays thru my stereo, and using iTRC in a web browser I can browse/search my music library, create playlists, etc.
For those of you that collect live recordings (that may not be mp3 or may be mp3 without proper id3 tags) you may notice that the tracks appear in iTunes similar to this: gd1989-10-16d2t1 which is't very helpful when you are looking for a certain Dark Star. If you store each live show in its own folder, I have built a facility which lists the text files in an album's folder so you can view the setlist. [View Screenshot #2]
The page layout and usage of iTRC is closer to Squeezebox’s SlimServer software than to iTunes. You basically search/browse for the tunes you want and add them to the current playlist. You can reorder and save this playlist and then recall it later.
This screenshot gives a brief overview on how to use iTRC.
NOTE: This app is free for you to download, install, and use. It includes the source code. But you are on your own! I just don’t have the luxury of time to offer support. If you know PHP, or you know a similar language and like to tinker, or you know no programming but like to tinker, then this might be something you’d like to play around with. Have fun!
And just to CMA, I have no responsibility over anything that happens as a result of installing and/or using this software.
The download link for iTRC is at the bottom of this page.
Server System Requirements
Client System Requirements
Open the globals.php file. At the top is a series of variables which you can customize to your needs (eventually these will be implemented as constants). The default values should work fine in most instances.
The page layout is four IFRAMEs with surrounding DIVs. The content for each IFRAME is defined in the CSS file, but this is not a table-less design, as much of the data is tabular in nature.
Most everything is defined in the CSS file, and any images used exist in the images folder.
Some Notes on How it Works
Page Communication: There are three IFRAMEs: The Now Playing page, the Left Column List page, and the Playlist page.
The Now Playing page uses AJAX to update itself every few seconds by default. When it notices a track change it updates the Playlist page accordingly.
When the Playlist page notices a change in play-state, it updates the Now Playing page.
Ordering Playlists: As of version 6, iTunes does not provide a programmatic means of sequencing playlists (other than “Shuffle”.) If you notice that your playlist sequence is screwy, go into iTunes on the server and sort the playlist by sequence number. That will take care of that.
Dealing with Artists: iTunes doesn’t give us an easy way to obtain a list of artists. The only way is to iterate through each track in the library and grab each artist, avoiding duplicates. This can be very time consuming and is unacceptable when browsing page-by-page through your artists. To fix this, I create a text file the first time iTRC is loaded. This can take a minute or more, depending on the size of your iTunes library. This text file contains a unique list of all artists in your library. Subsequent visits to the Artists page pull from the text file rather than the iTunes library. Exponentially faster. If you ever need to re-create the text file (due to additions to your library, for example) just click the "Refresh Artist List" link in the Left Column page when viewing Artists.
About the Code: This is not the most elegant code I’ve written, and there is much room for improvement and optimization. I wrote iTRC over a few days in a caffeine-fueled coding frenzy in order to get a working app in place at my house. Version 0.5 works and I will make improvements as the needs arise.
Download iTRC 0.5 (160K)