Project tools and hosting graciously provided by
Java Internet Jukebox
Java Internet Jukebox is a jsp/servlets/webworks2 web application for running a LAN jukebox. The application presents a music library of mp3 files organized by artist, album and track. It allows clients of the web application to select songs to queue up on a player which uses the server audio hardware to play the songs. Optionally, the output can also be streamed to an Icecast server. The application provides a basic search for easily finding songs to play.
Those within earshot of the server speakers (or stereo system connected to the server) can enjoy the music that everybody has selected. Or, if they are too far away and icecast streaming has been turned on, they can use Winamp or XMMS to connect to the stream and hear the music on their own machine.
This web application has served my needs for my home LAN for almost two years and this release on Sourceforge is the latest version. It works especially well for parties with a laptop open to the Jukebox web page so the guests can choose music. My wife rather likes it as well :) I imagine it would be great for a more relaxed office LAN. In the future, I plan on opening the stream up to my family across the country so they can enjoy the music we like here in California.
How Do I Get It?
Java Internet Jukebox beta 1 is the current public release. You can download a precompiled war file from the SourceForge Download Page. If you have the stomach, you can download the current CVS snapshots or check out the CVS tree directly from SourceForge.
Java Internet Jukebox is Free Software released under the GNU General Public License. There are no export restrictions or fees. You can use the code for whatever purpose you like as long as you adhere to the GPL.
Can I Help Out?
Of course you can. If you wish to help out on development, please see the Project Page on SourceForge for current status and contact a project administrator if you'd like to become involved.
You will need a server machine with a hard disk containing a directory of mp3 files, a sound card and a network interface. As long as you don't use the streaming feature, the application should run on any machine that meets the software requirements below. It has been verified to run on Linux, Windows XP Pro and Windows XP Home.
To run the web application, you will need a web application container that supports the latest servlet (2.4) and jsp (2.0) specifications, such as Jakarta Tomcat 5.X. Also, you will need the Java 1.4 Runtime Environment or JDK installed. You can download this for free from Sun's Java Website.
If you wish to use the streaming feature, you will need access to an icecast server and the server's "source" password, and you must install libshout-2.0 and libshout-java. These library distributions are rather unix-centric, but it seems possible for an industrious user to get them working on a Windows system.
libshout-2.0 requires also libvorbis and libogg, rpms for both of which may be found at rpmfind.net. Depending on how you install things, you may need to add the library the *.so files get stored in to /etc/ld.conf and then run ldconfig as root.
Since libjavashout is just a JNI wrapper to libshout, you will need to tell the web application JVM where to find it using the -Djava.library.path argument. For Tomcat, this requires you to edit the catalina.sh script and set the variable JAVA_OPTS up near the top of the file to this:
Alternatively, you can copy the libjavashout.so to the $JAVA_HOME/jre/lib/$PLATFORM directory where for most linux distrubtions, $PLATFORM is "i386". You still need to install the other libraries (libogg/libvorbis/libshout) in a place the system can find them, however, and may need to use the /etc/ld.conf file as necessary.
The Java Internet Jukebox is usable, but has not been seriously load tested. It probably will fold like a cheap paper box if anybody ever ran it in a high traffic environment :)
If you want to see a working installation in action, go here: Seifert Family Jukebox. This installation is running on a box in my house, so don't expect the link to be up 24/7 and it suffers from sporadic Internal Server Errors due to a mod-jk2 bug. By the time you read this, probably I will have switched back to mod-jk.