| View previous topic :: View next topic |
| Author |
Message |
junglised
Joined: 30 Jun 2010 Posts: 25 Location: Wales, UK
|
Posted: Thu Feb 21, 2013 1:10 pm Post subject: Icecast Control Panel |
|
|
Hi all.
I've recently started building a control panel to manage my icecast server.
I'm sure we all use the features on icecast in many different ways, so I'm hoping to get some ideas of what you use yours for, to perhaps add into the panel.
The main driving force behind building it was to automatically manage the dump files of each DJ's shows, or let DJ's do it themselves without giving them ftp access to the root file system on the server. Also, a DJ will log on just before their show to generate a new streaming password to connect. I will send a "killall -HUP icecast" command to icecast to reload the newly generated icecast.xml file.
Currently a DJ will connect via edcast to do an hour show a week each. The icecast dump file will be a recording of the show which is written to "/archive" folder within my centos root file system. Most shows will only be 1 continuous mp3 file, however on occasion a drop in connection would mean the show ends up in 2 or 3 files. I'm running the Icecast build that lets you save the dump file name as a timestamp, so I can work out when the recording is from.
Either I or somebody else would go in periodically, download the dump files, id3 tag them (They're all mp3 format) and upload them into the website directory on the server for people to download and listen to them again.
We will also then rebuild the ices playlist.txt files to include the new shows, so when a DJ isnt connected and playing live, the server will fall back to the AutoJD mount and play the older shows.
Over time we got lazier and the list of archived shows needing processing got longer and longer so I thought I would try and script the process in PHP. I've started building open a clean codeigniter setup so get things going, using twitter bootstrap as a GUI framework.
So far the script will make note of the different shows .mp3 parts and add them together using SOX. I have a php class which then goes in an id3 tags the files, including an embedded image to look nice on mp3 players, itunes etc. This will also write a different id3 tag based on what DJ's show it is. Another script will then move the show into that specific dj's folder within the web directory. The main site is running wordpress, so I will create a module that I can use to push a new post lve on the site with a download link to the show. I'm considering moving the Drupal, so may end up making modules for various CMS's.
I have also been in contact with Jude who wrote the icecast php now playing script hosted on google code. I'll be incorporating this into the panel to get live data from the various stream status.xml's.
I have a few questions to help me get this started and make sure I am going about it the right way:
1. First of all, I would be interested in finding out the best way of gathering connection stats and saving them into a MySQL database for use. Would pointing the auth url listener_add to a .php file be the best way? It's my understanding icecast will send client details via POST which I can catch in the script and write to a MySQL table. As long as the script returns "icecast-auth-user: 1" this should allow the client to connect straight away, whilst having their data saved in the DB. I will also have a .php for listener_remove to catch the disconnects. If I want to get client data, is it only these two that send post data?
2. Is sending a "killall -HUP icecast" command the best way of getting icecast to reload a newly generated icecast.xml config file? Would this kick all listeners and DJ's? Is there another way of pushing a new mount password without restarting the server?
3.Is there anybody out there interested in being involved in the project? I have set up a repository on github to get things started. If so, please get in touch at me [at] huwbert [dot] co [dot] uk. I have all the servers, web hosting in place for live / development etc.
I'm sure I'll have more questions as I continue to build it, so will report back here too over time. If you have any cool ideas of what you would like it to do, please let me know!
Huw |
|
| Back to top |
|
 |
junglised
Joined: 30 Jun 2010 Posts: 25 Location: Wales, UK
|
Posted: Thu Feb 21, 2013 1:12 pm Post subject: |
|
|
| P.S. I'm fully aware there are control panels out there already. I would like this be be a completely open source FREE project for anybody to adopt and use |
|
| Back to top |
|
 |
Murrawhip
Joined: 21 Dec 2010 Posts: 58
|
Posted: Fri Feb 22, 2013 10:59 pm Post subject: |
|
|
listener_add and listener_remove are the only two HTTP authentication methods that have listener information, yeah.
HUPing the server doesn't kick listeners/DJs for me. In non-KH versions it had some trouble changing intro audio, but it may be resolved now - not sure. I HUP icecast every morning, and it doesn't seem to cause any instability. |
|
| Back to top |
|
 |
Nonapeptide
Joined: 08 Sep 2012 Posts: 40 Location: Scottsdale, Arizona
|
Posted: Wed Mar 06, 2013 4:31 am Post subject: |
|
|
| junglised wrote: |
| P.S. I'm fully aware there are control panels out there already. I would like this be be a completely open source FREE project for anybody to adopt and use |
There aren't many, that's for sure. The only "control panel" that's FOSS worth talking about is SourceFabric's Airtime, but that's less "CP" and more full fledged radio automation. Kind of a thin line at times.
Personally, I'm more interested in reporting. I'm getting to the point with IceCast where I badly want real time stats and graphs and dashboards and etc. AWstats ain't quite what I've got in mind these days. Might have to break out perl and do some haxoring. =P |
|
| Back to top |
|
 |
Murrawhip
Joined: 21 Dec 2010 Posts: 58
|
Posted: Wed Mar 06, 2013 5:59 am Post subject: |
|
|
| If you do find something good, Nonapeptide, please update this topic. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2002 phpBB Group subRebel style by ktauber
|