andrew.wurster

a step forward

how to run a internet radio station [WIP]

without comments

so in case you didn’t know, i work at pirate cat radio.  we are almost done with a full site redesign – but i’ve picked up a whole boatload of sys admin and development experience along the way.  a good underground or community-based radio station will undoubtedly have little or no budget so all software and hardware should be free (as in beer) or almost free (as in love).

and here’s where i start to write things down:

  1. websites =>

    1. the main station site

      (www.piratecatradio.com)

      this site needs to be well-organized and rock solid.  we are an Internet radio station in the Internet Age for crying out loud!

      • HOSTING: PCR is currently hosted by dream hosters.  good pricing with unlimited sub domains/virtual hosts and user accounts.  full PHP/MYSQL support and then some (perl, quicktime, cron access, svn, ssh, cpanel, email etc).  unlimited disk storage and bandwidth (supposedly…).  i’d almost suggest having your own dedicated box hosted but so far dream hosters have not let us down.
      • CONTENT: the site will serve up all kinds of content.  in addition to the obvious DJ and Show scheduling info, there could be live radio feeds, archived full and/or partial show clips, general news, music reviews event listings, underwriting and donation info, and so on.
      • CMS: managing this content is tough.  PCR has 50+ DJs at any one time posting content.  turn over rates are quick, too.  the PCR site is built on a wordpress backend with a heavily customized ‘PCR’ frontend theme (maybe i’ll get around to publishing it some day…).
      • ACCESS: besides having general web users – there will need to be tiered posting access.  the site should have technical administrators for heavy duty tasks, as well as mid-level admins who can make executive decisions on content placement and approval.  in addition, of course we’ll need to let authorized DJs post lots of cool content like album reviews and event listings and so on.
    2. music services

      (www.spinitron.com)

      spinitron is a great online service for hosting and managing playlist, show scheduling, and DJ information.  it’s almost like a directory and can be leveraged as lightly or heavily as you need.  pricing seems fair for this nifty SaaS.

      • generally you can use iframes to include data from the site or scrape it from the de-styled pages directly (neither is very elegant…)
      • if you are a paying customer and ask nicely, you can use from the beta spinitron API
      • the developer - tom worster – (no relation) will welcome any feedback or bug reports…  (not sure when it will go public or when a new version will be released)  some of the methods were intuitive (to me), some not, but it seems like a huge jump past manually scraping things.
      • wherever the API seemed incomplete, i just reverted back to using a php scraper instead
      • right now some of the page content is being pulled through the API but it’s on a per-page basis. ideally, we’d want to populate a database locally with all the content and just refresh it every so often and have our websites query that as needed.
    3. content hosting

      (podcasts.dreamhosters.com/pcr/)
      almost all of our audio content is served up via the web (because we’re an Internet radio station remember?).

      • hosted on our dreamhost account.  right now there’s a ‘pcr’ directory that contains all the podcasts…
      • there should be an easy win for KPDO where we could just add a ‘kpdo’ directory and host all the files there.
      • i envision it eventually to be something like ‘podcasts.piratecatradio.com‘ but that’s a ways off.  for now, we will leave this as-is for simplicity.
      • there are other things hosted here in addition to show recordings (podcasts).  we call them ‘station breakers’ and ‘PSAs’.   they are generally just small mp3 recordings that our DJs manually rotate each week which contain relevant info that we play during and between shows.
    4. social networking

      (www.facebook.com)
      facebook (and twitter) offer some great, free marketing and publicity tools.  great shared calendaring and communication tools too if you can get everyone to buy into it. other cool, free services (to name a few) that could be leveraged include: picasa/flickr, youtube, myspace, .

      • each DJ is required to have and maintain a facebook account (either personal or a ‘page’ that they administer for their show).
      • twitter is optional but some DJs find it useful.
      • there is also a public ‘Pirate Cat Radio’ page that some DJs also administer and post different info too
      • ideally, we’d want to use the facebook API to have the little JS buttons for each wordpress post to say stuff like ‘share this page’ or ‘add this DJ as a friend’ and so on.  furthermore – if you can pull it off up front – you can use facebook authentication instead of creating separate user accounts in wordpress/drupal etc.
  2. streaming content => all the audio stuff related to the broadcasted content.
    1. podcasts => RSS feeds consisting of multiple MP3 files.  one directory per show containing all files and the RSS feed.
    2. live feed => one ‘master’ shoutcast server in the studio for relaying the live feed out to privately known clients.  can be used by other shoutcast relay servers or the podcasting service, etc.
    3. station breakers / PSAs => tiny MP3 files that DJs use during and after their shows to standardize show formats and segue into the next show.
    4. music => can be served up from a personal computer/device or from a dedicated station box.  it would be nice to allow DJs to listen to the music ahead of time through some web-based [authenticated] service like squeeze software or icecast or something.
  3. podcasting => handled by a custom perl script
    • creates MP3 files of each show and also writes each file into a running RSS tab to track the feed
    • hosted by dreamhosters – run locally via cron jobs every hour or so
    • ~ 1.25 MB per minute of disk space or 140 MB per 2 hours
    • schedule is edited manually on-demand via crontab
    • requires mplayer and a few non-standard perl modules for various things
    • needs improvements such as: additional MP3 tagging and scheduling interface page for admins
  4. email => used for staff-wide communication
    • generally we use email distribution lists (hosted by the webhosting company) to communicate with each other
    • one staff-wide list, one interns-only list, one tech support list, one for officers (aka ‘ministers’), and others for general inquiries from the public, etc
  5. monitoring => making sure everything is up and running!  most of these topics are still up in the air but good to have in mind…
    1. podcasting statistics for unique downloads and quality control
    2. website hits stats (perhaps could leverage google analytics for this in addition to stats from the hosting company)
    3. streaming server download stats and service availability
    4. email spam protection and distribution list availability
    5. physical and user-level security for all in-studio servers/equipment
and there you have it.  that’s most of what i think i know about the radio stuff.  work-in-progress of course!

Written by andrew

April 27th, 2010 at 8:18 pm