Archive for May 9th, 2010

GSoC 2010: Starting the brainstorming on the Web Radio programme scheduler

Sunday, May 9th, 2010

Hello all,

so we have a cool name for the Web Radio Programme Scheduler Project that kloschi picked up: “radiomate” 🙂

Last monday we met at Fusolab for a startup brainstorming meeting. It was me Claudio and Dario (his mentor).
We started from what we wrote before on our wiki page.

The key idea is to develop and package a software/system to give out to people that want to run a webradio.

The package will contain a complete system:
* Website
* Programme Scheduler + Icecast

Usually web radios (as you can see from liquidsoap examples) are just about playlists and some live shows.

We have some more complex scenario at Fusoradio because we have people transmitting from home and actively booking the time slot in the programme schedule to start their transmission.
We have in mind a web radio where the listeners may hear a pre-recorded transmission that a Web Deejay (WJ) loads in the system with a mp3 file, or the listener may hear a live transmission. If there is no content to play, neither live or pre-recorded, the fallback should choose a random podcast to play.

Regarding the front-end to the listeners and the WJs, the web site must have these features:
* Writes on a DB that gives to the scheduler information on the on
going transmission
* upload of mp3 with pre-recorderd radio transmissions
* manage time slots booking for WJs to transmit
* manages podcasting for listening old transmissions

A strong requirement is that each transmission has some extra content/description on the web site, like a flyer, a description and so on.

We should agree on a CMS to start from, and develop custom plugins and themes.
There is still a on going discussion on this 🙂

The CMS will have to handle different types of users, administrators, WJs etc etc.
Admins for example will be able to alter the programme scheduler without restrictions, while the WJ are only able to book time slots from 30 to 90 minutes.
For live shows a user should be able to be temporarily unlocked to start an audio flow immediately, without waiting for a time slot.

Technically about the program scheduler:
We understood that we have to write some logic in python/lua. This logic has a “telnet” interface to liquid soap, where there is a finite state system that is triggered from the external logic. So the python/lua handles the db interaction, and moves the state of the liquidsoap program.

The whole picture:
The WJ transmit from home via Internet, their shouldcast protocol media stream is received by liquidsoap as a input.harbor source. The liquidsoap core will be ready to accept that input because of its state machine controlled by the database, that has been previously setup with the help of the web site. The liquidsap bounces the output stream to a icecast server, where the listeners are connecting to listen the web radio.

This is about all, we started a mailing list with the people from the community actively working in this project. Me and Claudio will be in Berlin at WCW2010 to discuss live with our other Freifunk friends.