Icecast Streaming Media Server Forum Index Icecast Streaming Media Server
Icecast is a Xiph Foundation Project
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Icecast Control Panel

 
Post new topic   Reply to topic    Icecast Streaming Media Server Forum Index -> Icecast Server
View previous topic :: View next topic  
Author Message
junglised



Joined: 30 Jun 2010
Posts: 25
Location: Wales, UK

PostPosted: Thu Feb 21, 2013 1:10 pm    Post subject: Icecast Control Panel Reply with quote

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
View user's profile Send private message AIM Address
junglised



Joined: 30 Jun 2010
Posts: 25
Location: Wales, UK

PostPosted: Thu Feb 21, 2013 1:12 pm    Post subject: Reply with quote

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
View user's profile Send private message AIM Address
Murrawhip



Joined: 21 Dec 2010
Posts: 58

PostPosted: Fri Feb 22, 2013 10:59 pm    Post subject: Reply with quote

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
View user's profile Send private message Visit poster's website
Nonapeptide



Joined: 08 Sep 2012
Posts: 40
Location: Scottsdale, Arizona

PostPosted: Wed Mar 06, 2013 4:31 am    Post subject: Reply with quote

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
View user's profile Send private message
Murrawhip



Joined: 21 Dec 2010
Posts: 58

PostPosted: Wed Mar 06, 2013 5:59 am    Post subject: Reply with quote

If you do find something good, Nonapeptide, please update this topic.
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Icecast Streaming Media Server Forum Index -> Icecast Server All times are GMT
Page 1 of 1

 
Jump to:  
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