Join the Federation

Chris McKenzie edited this page Apr 1, 2016 · 25 revisions

Thanks for your interest in indycast. If you are a technical computer person, you can join the federation by reading below.

If you aren't, then feel free to donate and help us.

Architecture

Indycast works off of a federation of servers which download a radio's webstream, archiving the audio for a given amount of time, and then crafting podcast XML, PLS, or M3U files based on descriptive URLs which get generated by user-input through the frontend at www.indycast.net.

Using these powerful base principles, there's a number of other features such as live radio and reminder emails which can be leveraged.

The server is one multi-threaded script which does all the things necessary: indy_server.py and its configuration file. All the current stations are in the configs/ directory.

Configuration

Here's an example configuration file:

[Main]
callsign=kpcc
long=-118.117447
lat=34.143368
stream=http://live.scpr.org/kpcclive/
port=3499

Callsign ** Required **

The callsign is the station that's being described in this configuration file.

Long/Lat ** Required **

These are important parameters that describe the local time-zone of the station so that when, for example, a user requests a 2pm show, we can convert from UTC time to when the 2pm show aired.

We humans of course don't know these numbers. I use this service where I can type in a location and get these values.

Stream ** Required **

Generally speaking, any publicly accessible MP3 or AAC stream will do. Most radio stations have a "listen with external player" link on their website ... that's probably the link you need. Currently the following formats are supported:

Additional Information

The server has its own readme with installation instructions. Their are also more options supported (with sensible defaults provided) that you shouldn't have to touch. You can see these in the read_config function in the main server python script.

The server

You should pick a port. I recommend the station's frequency followed by a zero ... such as 8990 for a station broadcasting at say, 89.9

Joining the Federation

After this is done, send an email to the mailing list with your configuration file and the IP address of the server you are running on.

I'll run curl ip:port/stats on the IP with the sent configuration file and if successful, add the callsign in the indycast.net DNS record and put you on the list as a supported station.

Additionally, server_query.py -q heartbeat will be hitting you up once an hour to make sure that everything is going OK.

Thanks and welcome to indycast.