New WXRY-FM 99.3 Playlist

Lately I’ve been building large applications and haven’t had a chance to do any small units of work so when I saw this post on Facebook, I decided it’d be a fun thing to try.


A local non-profit radio station in Columbia, 99.3 WXRY-FM, was looking for a volunteer to make a searchable playlist for their WordPress website.  Having been involved with music for a long time and a chance to help a non-profit through programming, I volunteered and built them a new playlist.  They had an existing playlist that wasn’t searchable and only showed the last 10 tracks played.  So, I whipped up a quick solution that has logged almost 20,000 tracks so far and lets you search for tracks as far back as the implementation date.  Check it out the new playlist here.

The new playlist. They play an assortment of alternative rock music.


The technical details of the project consist of a WordPress page with an iframe of a jQuery Datatable plugin that loads resources from a remote API hosted on the music server.  The API is a modification of the server-side ajax feature of the Datatable plugin.  It’s an endpoint that sends back JSON to the page to be parsed.  The Shoutcast music server routinely outputs an XML file to the filesystem so I created a cronjob to store the playlist records in MySQL which provides the datasource for the Datatable plugin.  The cronjob runs every minute to load the XML playlist, get the last few tracks from MySQL using the timestamps and if they are not stored, store the new track.

The project took about a week in my spare time and was a satisfying unit of work.  I’m happy I was able to provide something of value for a non-profit using my programming skill set and not general IT knowledge.  In exchange for my volunteer work, the station gave me two tickets to see The Killers.  They also let me promote my local food app, Grubbly, on the playlist.  I encourage you, if you’re in the Columbia metro area, to check out 99.3 WXRY-FM.  Also, try to volunteer every now and then.

You may also like

Leave a Reply

Your email address will not be published. Required fields are marked *