For The Audiophiles

// April 2nd, 2007 // Scripts, Web

This one goes out to those of you that love your music and want to get the most out of it.  You rip your CDs to MP3 (or .ogg for you really geeky types), you own an iPod, you’ve hooked your computer up to your stereo, and back it all up to an external hard drive for those travel scenarios.  Ubiquitous.  That is the word for the day.  Despite all of your efforts, you still fall short.  You don’t want to wear an iPod at work.  The external hard drive is great for planned trips to a friend’s house, but does little if a friend wants to just see if you have a single song.  Let me be clear that this is not a review.  I’m not going to dig in to all the different features of a bunch of different web applications, because I’ll do nothing but a disservice to the ones I’m not as familiar with.  Instead, this is simply my journey and thoughts on the matter of media streaming through a web page.

For a long time I had a relatively simple solution to all this that worked a bit of all right.  Of course, it involved setting up my own server.  I pulled out an old XP box I had lying around, hooked it up to my router, set up port forwarding, and created a simple FTP (File Transfer Protocol) server with FileZilla.  I kept an archive of my music library on it that was then tied to the FTP.  Now, this worked for file sharing, and making my stuff accessible essentially wherever I was, provided I wanted to download the entire song before listening to it.  Of course, it also allowed for usage beyond music.  It became obvious that the potential for the server warranted a little more investment.  I went by No-IP.com and set up a domain name with dynamic DNS (Domain Name Service) monitoring.  I did a port 80 redirect (Cox blocks incoming port 80 requests), and just like that I had a web server (after installing a WAMP (Windows, Apache, MySQL, PHP), of course.  I chose Apache2Triad.).  Granted, it was running Windows XP on a residential cable connection, but it did work alright.

So, with the framework all in place, I set out to take the next step.  I wanted to install a nice web interface to access my MP3s through, something that was simple, functional, and could be used by those friends of mine who couldn’t tell FTP from IRS (Internal Revenue Service).  I readily admit my programming skills simply weren’t up to the task for something like that.  Fortunately, the field of competitive products in the OSS arena is small.  Keep in mind, the key to all of this is having your own server.  If you rent hosting from a company, you can indeed install this, and you can share anything you put on that server media-wise.  But if you are like me, you have way too many files to put on something like that, and the uploading time alone would kill you.

A friend of mine turned me on to a program called Ampache.  It’s rather clean looking, and offers a lot of features.  Certainly viable for a number of uses.  The thing I didn’t like about it was its heavy reliance on ID3 tags, something many of you know cannot always be relied on or trusted.  Going in to list songs, the interface could very suddenly become quite cluttered looking.  Granted, it dished out a lot of information about the songs, but I felt the interface started falling apart a little there.  So, while not perfect, it was a contender.  It offered all the other features I was looking for, like multi-user support and playlists.

Initial Ampache Screen Ampache's song browsing view

Normally, third time is a charm.  In my case, the second hit I got was on a piece of software called kPlaylist.  An application built on a single file, it just needs a database to access and it’s ready to go.  The most immediate thing that sold me on it was its file interface.  kPlaylist gives the user an Explorer like file tree to use to browse for music.  This fit perfectly because I already sort my music into a nice alphabetical structure.  Like Ampache, it had full support for multiple users, playlists (both public and private), and it kept track of what was popular, new, and currently playing.  It also has an improved streaming engine for those on Linux servers.  Sadly, I am currently missing out on that for the time being until I kill XP on the server in favor of Linux.  Additionally, you can also enable features like batch downloading for later listening (at this time, batch uploading is a feature for the future.  Not a big deal, since I upload my media through my network anyway).  So, I was sold.  I downloaded, installed, and configured it and have never needed to look back.

Initial kPlaylist Screen kPlaylist album view

To give you a quick idea, I am currently supporting about a dozen users.  I believe that there has never been more than three people on at any given time.  With three people streaming, there isn’t anything to rebuke as far as stream quality goes.  If you want a comparison, here’s an idea of what my internet connection is like:

There are a couple other systems that I found out about after the fact.  uPHP (which didn’t have a demo available at this time), and Jinzora.  I have no first hand experience with these though, so you’re on your own.  Jinzora does have a demo up though, so go plug away on it if you like.  For now, I fully throw my support behind kPlaylist.  If it fits your needs, it won’t let you down.

Default Jinzora view

In the end, Ampache is pretty solid if you are really, and I mean really, anal retentive about ID3 tags.  I simply cannot be that confident in myself.  kPlaylist offers the simplest, most intuitive interface I have seen.  Plus, it’s display window will tailor itself to your file structure, so no matter what, you know it will conform to how you sort things.  It will still scan ID3 tags, so if you prefer going that route, you still can.  It will also recognize album art, which is just pretty.  I would love to hear about any alternatives any readers might be familiar with that you like.

3 Responses to “For The Audiophiles”

  1. DemoRic says:

    kPlaylist is the epitome of easy use for streaming media scripts. By wary though, if you have a folder name with an apostrophe ‘ in it. At the time I tested it (about a year ago) they didn’t have a sequence to parse it out of the folder name, and caused the script to hang on setup. This may have been fixed. Still it’s one of the best there is.

  2. Lina says:

    Hi.
    I found your interesting article via kPlaylist and I wonder if you have since experimented with it more?
    I am thinking of installing it on our website…to share our playlists. I am not sure about copyright etc. If we put only 30 sec samples (not the whole) song, would we be OK?
    I am talking about songs that we do not own, that are protected by copyright.
    And sharing them widely, not with just a limited number of friends. Do you know anything about this?

  3. I’m still actively using kPlaylist for streaming my music collection, and currently have no interest in switching to anything else. That said, I haven’t really looked at what else is out there lately, since kPlaylist does exactly what I need.

    Fair use in copyright law with respect to music is a pretty fuzzy area still, especially aligned against the DMCA. Music companies are frequently issuing takedown notices to people even when using clips of songs under 30 seconds, even though that is reasonably considered fair use. I am not a lawyer. If you have that much concern on the matter, I suggest you either use music licensed under a CC license, public domain music, or make your own. You could try to use them under the radar, and argue fair use if anyone challenges it, but you take your life in your own hands by doing so, so-to-speak.

Leave a Reply