A Free Software Radio
Station Automation System
About Me & my projects
● Board Chair of the Neighborhood Network – which operates
WCRS-LP
● Over 20 years of experience with Linux, Free Software and
computing
● Recent graduate of Ohio State with a degree in computer
science
● Full-time stay at home dad and part-time coder
Why Free Software Matters for
Community Media
● Minimizing dependence upon external entities
● Free as in beer – low budgets benefits from low
overhead
● Ability to customize to meet custom needs –
can’t rely upon paid staff
● Helps if the software is usable and maintainable
by non-experts
What did we use before LibreTime
● WinAmp
● RadioLogik
● Airtime – a promising web based app but
limited in terms of automation
LibreTime Origin Story
● Airtime – a project of
SourceFabric – formerly
CampCaster
● Airtime code license is
switched to AGPLv3
● Submitted my first PR
● Airtime.pro is launched
Discussions with SourceFabric
● The airtime.pro code is available under a
branch of github called saas-dev
● Attempt to get saas-dev working to contribute to
next 3.0 version of Airtime
● Communicate with project lead and developer
about contributing
● Saas-dev branch is deleted from github and
email asking about this is ignored
LibreTime is born
● Eeebcaster – a demo of the saas-dev branch
released as a zip file – all git history is lost
● The C4 – collective code construction contract
from ZeroMQ – Peter Hintjens
● Making everything visible on GitHub – finding a
fork that was made before the branch was
deleted and releasing as a new project – couldn’t
properly “fork” Airtime – it becomes a new
project
Post-Fork: it’s your baby now
● All the bugs you can document – also means
someone needs to fix them
● Planning for the future
● End user support
● Community drama – disagreements and sloppy
contributions
LibreTime for Users
● Time for a demo of how LibreTime works from
the point of view of a end-user
Calendar
● Show the calendar and the concept of shows
Tracks
● Uploading and scheduling
Users
● How libreTime allows various roles etc and the
ownership of users over various shows
Live Streaming
● Launch Mixxx and broadcast over the existing
stream using a per-show authentication
Podcasts, Smartblocks and
Automatic Playlists
● Yes we can digest RSS and use it to feed tracks
● The notion of the playlist, the smartblock and the
automatic playlist explained
● A discussion of the SQL orientated “language” of
the smartblock and how this can be a cognitive
challenge for end users
● How I first took the plug as a developer for
LibreTime
Widgets and Radio Page
● We have a player widget – sometimes it uses
flash
● We have a calendar that you can embed via a
iframe
● There is a radio page that provides both of
these and a front-end for the actual stream
LibreTime: behind the scenes
● Icecast2: serves the stream
● Liquidsoap: OCAML based media scripting
environment – feeds Icecast stream
● Python: integrates liquidsoap with the web site
● RabbitMQ: queue based messaging interface
● PHP & Postgresql + Propel ORM: creates the website
that end users interact
● Javascript – lots of jQuery, Angular & too much custom
code
LibreTime: a developer perspective
● Zend 1 MVC – EOL in 2016 – still no clear path
forward in 2018
● Jquery plugins that were all hacked in various
ways thus breaking the ability to upgrade to a
new version
● Tests – some tests but not much coverage
Dive Into LibreTime
● A brief walk through of the codebase showing
how the various PHP functions are linked
together and how much of a pain it can be to
add new features
The Future of LibreTime
● Technical Debt: how to build the future when
the foundation is shaky
● Complete overhaul or incremental approach
● Rebuild one part at a time ?
● How to deal with taking over partially completed
work by people who are no longer involved
LibreTime: Community
● There is an obvious need for LibreTime as new
users come on-line every day looking for a
web-based way to run a “radio” station
● Contributions from around the globe:
developers in Austria, UK, Mexico, Brazil
LibreTime: a work in progress
● Seeking grants to fund development: The
Neighborhood Network received a grant from the
Greater Columbus Arts Council to fund
improvements to LibreTime
● Creating a Open Collective to create an
accountable body to manage funds as a project
● How do you get everyone on board when people
are contributing in their free time and have
differing levels of availability
Questions ?
● Website: http://LibreTime.org
● My email – robbt@azone.org
● My github: https://github.com/robbt
● LibreTime repo:
http://github.com/libretime/libretime

LibreTime: a web-based automation system for radio - presentation at Ohio Linux Fest 2018

  • 1.
    A Free SoftwareRadio Station Automation System
  • 2.
    About Me &my projects ● Board Chair of the Neighborhood Network – which operates WCRS-LP ● Over 20 years of experience with Linux, Free Software and computing ● Recent graduate of Ohio State with a degree in computer science ● Full-time stay at home dad and part-time coder
  • 3.
    Why Free SoftwareMatters for Community Media ● Minimizing dependence upon external entities ● Free as in beer – low budgets benefits from low overhead ● Ability to customize to meet custom needs – can’t rely upon paid staff ● Helps if the software is usable and maintainable by non-experts
  • 4.
    What did weuse before LibreTime ● WinAmp ● RadioLogik ● Airtime – a promising web based app but limited in terms of automation
  • 5.
    LibreTime Origin Story ●Airtime – a project of SourceFabric – formerly CampCaster ● Airtime code license is switched to AGPLv3 ● Submitted my first PR ● Airtime.pro is launched
  • 6.
    Discussions with SourceFabric ●The airtime.pro code is available under a branch of github called saas-dev ● Attempt to get saas-dev working to contribute to next 3.0 version of Airtime ● Communicate with project lead and developer about contributing ● Saas-dev branch is deleted from github and email asking about this is ignored
  • 7.
    LibreTime is born ●Eeebcaster – a demo of the saas-dev branch released as a zip file – all git history is lost ● The C4 – collective code construction contract from ZeroMQ – Peter Hintjens ● Making everything visible on GitHub – finding a fork that was made before the branch was deleted and releasing as a new project – couldn’t properly “fork” Airtime – it becomes a new project
  • 8.
    Post-Fork: it’s yourbaby now ● All the bugs you can document – also means someone needs to fix them ● Planning for the future ● End user support ● Community drama – disagreements and sloppy contributions
  • 9.
    LibreTime for Users ●Time for a demo of how LibreTime works from the point of view of a end-user
  • 10.
    Calendar ● Show thecalendar and the concept of shows
  • 11.
  • 12.
    Users ● How libreTimeallows various roles etc and the ownership of users over various shows
  • 13.
    Live Streaming ● LaunchMixxx and broadcast over the existing stream using a per-show authentication
  • 14.
    Podcasts, Smartblocks and AutomaticPlaylists ● Yes we can digest RSS and use it to feed tracks ● The notion of the playlist, the smartblock and the automatic playlist explained ● A discussion of the SQL orientated “language” of the smartblock and how this can be a cognitive challenge for end users ● How I first took the plug as a developer for LibreTime
  • 15.
    Widgets and RadioPage ● We have a player widget – sometimes it uses flash ● We have a calendar that you can embed via a iframe ● There is a radio page that provides both of these and a front-end for the actual stream
  • 16.
    LibreTime: behind thescenes ● Icecast2: serves the stream ● Liquidsoap: OCAML based media scripting environment – feeds Icecast stream ● Python: integrates liquidsoap with the web site ● RabbitMQ: queue based messaging interface ● PHP & Postgresql + Propel ORM: creates the website that end users interact ● Javascript – lots of jQuery, Angular & too much custom code
  • 17.
    LibreTime: a developerperspective ● Zend 1 MVC – EOL in 2016 – still no clear path forward in 2018 ● Jquery plugins that were all hacked in various ways thus breaking the ability to upgrade to a new version ● Tests – some tests but not much coverage
  • 18.
    Dive Into LibreTime ●A brief walk through of the codebase showing how the various PHP functions are linked together and how much of a pain it can be to add new features
  • 19.
    The Future ofLibreTime ● Technical Debt: how to build the future when the foundation is shaky ● Complete overhaul or incremental approach ● Rebuild one part at a time ? ● How to deal with taking over partially completed work by people who are no longer involved
  • 20.
    LibreTime: Community ● Thereis an obvious need for LibreTime as new users come on-line every day looking for a web-based way to run a “radio” station ● Contributions from around the globe: developers in Austria, UK, Mexico, Brazil
  • 21.
    LibreTime: a workin progress ● Seeking grants to fund development: The Neighborhood Network received a grant from the Greater Columbus Arts Council to fund improvements to LibreTime ● Creating a Open Collective to create an accountable body to manage funds as a project ● How do you get everyone on board when people are contributing in their free time and have differing levels of availability
  • 22.
    Questions ? ● Website:http://LibreTime.org ● My email – robbt@azone.org ● My github: https://github.com/robbt ● LibreTime repo: http://github.com/libretime/libretime