Cloud Based Radio Automation

I've spent half my working life in radio stations; the other half programming web applications, now I've decided to focus on merging both skill sets together to produce a platform for streaming radio that's unlike any other.

My aim is to build a platform that will allow me to lauch, and manage, a radio station through the internet. Then only once I'm satisfied it does all I need, and more, will I make it available to others.

Progress Indicators
on the list
in progress
done
done but has bugs

Icecast Streaming Server

  • Icecast 2.4.3 installed on cloud server which scales
  • Upgraded to Icecast 2.4.4 from the official Xiph repositories
  • icecast.xml configured
  • Configuration reloaded each hour to enable dynamic stream intros
  • Multiple mountpoints and bitrates:
    • HTTPS / SSL streaming (Alexa ready)
    • Live / Studio: 320 kbps
    • High Quality: 320 kbps mp3
    • Mobile Quality: 128 kbps mp3
  • Live show / presenter / studio opt-in
  • Optimised to handle 1,500 concurrent listeners
  • Stream Intro Sponsorship / Pre-Roll advertising
  • Listener counts removed from public Icecast interface
  • Integrated with Google Analytics for more extensible reporting
  • Supports webhooks
    • Listener connect
    • Listener disconnect
    • Broadcaster authentication
    • Broadcaster connect
    • Broadcaster disconnect

Liquidsoap Multimedia Streaming Toolkit

  • Liquidsoap 1.3.4 installed
  • Core .liq file created
  • Telnet server enabled
  • PHP / MySQL driven playlists via request.dynamic
  • Tracks logged when meta data changes
  • Uses cue point information from the track database
  • Switches to News on the hour
  • Live studio opt in
  • Normalises output
  • Encodes audio and sends it to Icecast:
    • High Quality: 320 kbps mp3
    • Mobile Quality: 128 kbps mp3

Playlisting Application

  • Comes into action when no live show being broadcast
  • Automatically injects news on the hour, every hour, during automation
    • Feature Story News
    • Radio News Hub
  • Back times songs up to the news, so they play in full
  • Starts playing shorter songs past 53 minutes
  • Plays promos to fill any gaps to the hour
  • Inserts idents
  • Inserts features / scheduled items
    • Business News
    • Entertainment News
    • Sports News
    • Breaking News / News Flashes
  • Inserts requests between 5 past and 7 to the hour
  • Plays tracks according to dayparting rules
  • Plays tracks and artists in line with separation rules
  • Does not play suspended tracks
  • Takes user feedback and popularity of songs into account
    • Track score
    • Likes
    • Requests
    • Shares
  • Feeds automation cue point information from the tracks database
  • Override automation with scheduled manually curated playlists
  • Override automation with scheduled dynamically generated playlists
    • Hour Opener
    • 80s / Pop
    • Genre / tags
    • Years / combinations of genres / tags etc

Podcasting Platform

  • Live shows to podcasts, in an instand
  • Secure FTP upload of interviews / podcasts
  • Podcast data propagated by ID3 tag values
  • Podcast administration page / ID3 data override
  • Downloads logged
  • Online plays logged
  • Log duration of online listens
  • RSS / Syndication
    • RSS Validation
    • WebSub / PubSubHubbub
    • XMLRPC pings to syndication services
  • Royalty reporting
    • Data sync with reporting authority
    • Reporting / cost calculator

Online Player

  • Persistent player on pages: keeps playing whilst visitors navigate your site
  • Now playing meta data
  • Like / Dislike logging
  • Social share icons
  • Social share logging
  • Twitter @ messages to artists from listeners
  • Twitter user profile banner artwork integration
  • Album artwork integration
  • Automatically serve lower bitrate to mobile users
  • Stand alone popup player

Control Panel

  • Real-time listener statistics
    • How many listeners right now
    • Listeners per mountpoint
    • Duration of listen
    • IP to location lookup per listener (town / city, postcode / zip etc)
  • Historic listener statistics
  • Average listener duration
  • Real-time podcast download statistics
  • Historic podcast download statistics
  • Daily stats email at midnight
  • Live stream / Automation aware
  • Manage audio (see Audio Management below)
  • Voice tracking
  • Live Studio
  • Playlist management tools
  • Manage Shows / Dayparts
  • Manage Presenters / Voice Trackers
  • icecast.xml Editor

Audio Management

  • Artist Editor
    • Set related artists
    • Set days between plays
    • Set Twitter username
    • Get Twitter profile banner, URL and description etc
    • Get MusicBrainz API details
    • Get Last.FM API details
  • Branding / Ident Editor
  • Tag / Genre Editor
  • Track upload tool with profanity checking via a lyric database / API
  • Batch track profanity checking via a lyric database / API
  • Broadcast / Delete / Download / Suspend Tracks
  • Track Editor
    • Artist and title
    • Release month and year
    • Days between plays
    • Artist type
    • Track genre
    • Dayparting exclusions
    • Day exclusions
    • Related tracks
      • Chainsmokers, Something Just Like This ~ Coldplay
      • George Michael, As ~ Mary J Blige / Stevie Wonder
    • Get MusicBrainz API details
    • Get Last.FM API details
    • Get track album artwork
    • Cue point editor
      • Waveform visualiser
      • Zoom in / zoom out
      • 100th of a second precision
      • Cue in
      • Fade in
      • Fade out
      • Start next
      • Cue out
      • Preview start / last 10 / last 20 seconds

Music Library

  • 1,174 songs
  • All 320 kbps mp3
  • 100% dayparted
  • 30% tagged with dates and genres
  • 10% fully cuepointed

Music Logging

  • Public and administrator recently played lists
    • Last 28 days on the website
    • No time limits for administrators
  • Artist broadcast history
  • Track broadcast history
    • How many listeners at the start
    • How many listeners after 30 seconds
  • Royalty reporting
    • Data sync with reporting authority
    • Reporting / cost calculator

Website / Content Management System

  • Persistent player on pages: keeps playing whilst visitors navigate your site
  • PJAX / Push State Asynchronous JavaScript minimises load speeds, and allows for JQuery UI transitions
  • Player solicits feedback on the music and encourages social engagement with the artist being played
  • Post news to your station's website site; have it automatically posted to Facebook and Twitter
  • Run sponsorships online in perfect unison with your on-air output
  • Open up non-traditional sources of revenue which outperform advertising and sponsorship
  • Uses the least invasive cookie alert
  • Presenter Bios / Blogs
  • Events Guides / Diaries
  • Plugins / modular framework
  • Listener Club
  • Geographic / Community API integrations
    • Chemist Directory / Opening Times
    • Surgery / Clinic Directory / Opening Times
    • Dental Surgery Directory / Opening Times
    • School Closure details
  • More Music API integrations
  • Weather API integration
  • Concert Ticket Sales API integration
  • Commerce Modules
    • Listener Club Merchandise Sales
    • Sales and Sponsorship Sales
    • PayPal
    • Stripe / Credit Cards
    • Fire Bank Accounts
  • Online Vox-Pop Recorder
  • Online Interview Tool
  • XMLRPC

Built In SMS Gateway

  • Receive text messages
  • "noinfo" opt-out
  • Keyword management panel
  • Configurable Automatic replies (sponsorship opportunity with mobile web / app affiliations)
  • Bulk messaging to opted-in listeners
  • Accept requests by text message
  • SMS to email
  • SMS to database
  • Works with virtual mobile numbers
  • Unlimited keywords
  • SMS to code execution on a per keyword basis

Also on the list

  • Temperature based scheduling of commercials / sponsorships
  • Music / artist / song info
  • Requests / interaction via Twitter / Messenger / WhatsApp
  • Gadget interactions: Amazon, Google, Apple
  • Mobile apps
  • More, so very much 'Moore'...