Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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


Published on

This is a presentation I gave at the Ohio Linux Fest 2018 about the process of forking the Airtime project and creating LibreTime as well as a basic overview of the functionality.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

  1. 1. A Free Software Radio Station Automation System
  2. 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. 3. 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
  4. 4. What did we use before LibreTime ● WinAmp ● RadioLogik ● Airtime – a promising web based app but limited in terms of automation
  5. 5. LibreTime Origin Story ● Airtime – a project of SourceFabric – formerly CampCaster ● Airtime code license is switched to AGPLv3 ● Submitted my first PR ● is launched
  6. 6. Discussions with SourceFabric ● The 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. 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. 8. 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
  9. 9. LibreTime for Users ● Time for a demo of how LibreTime works from the point of view of a end-user
  10. 10. Calendar ● Show the calendar and the concept of shows
  11. 11. Tracks ● Uploading and scheduling
  12. 12. Users ● How libreTime allows various roles etc and the ownership of users over various shows
  13. 13. Live Streaming ● Launch Mixxx and broadcast over the existing stream using a per-show authentication
  14. 14. 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
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 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. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. Questions ? ● Website: ● My email – ● My github: ● LibreTime repo: