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.
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 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. What did we use 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 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. LibreTime for Users
● Time for a demo of how LibreTime works from
the point of view of a end-user
12. Users
● How libreTime allows various roles etc and the
ownership of users over various shows
13. Live Streaming
● Launch Mixxx and broadcast over the existing
stream using a per-show authentication
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. 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. 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. 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. 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 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. 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. 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. Questions ?
● Website: http://LibreTime.org
● My email – robbt@azone.org
● My github: https://github.com/robbt
● LibreTime repo:
http://github.com/libretime/libretime