By toma on
I get a icecast streaming server to make a radiot station, i try to use the module station but seems not to work on stream, any one have a solution integrate icecast
to know more about icecast
http://www.icecast.org/
Thanks
I get a icecast streaming server to make a radiot station, i try to use the module station but seems not to work on stream, any one have a solution integrate icecast
to know more about icecast
http://www.icecast.org/
Thanks
Comments
Icecast streaming - any luck?
Did you have any luck with this? I have the same need and am willing to cooperate on working on this.
First ideas:
- create a module that makes playlists (files or sql table), which ices reads. The thing is that I don't know how often ices reads (every song or every time through the list)
- write an ices-php handler (yah, jsut a little bit of work) and then write a module with a php script (/scripts) for connecting a module to it.
No more blahblahblah from me just yet.
James
icecast streaming: me too!
this is pretty simular to what i need. but with a few extras.
we are currenty using the station.module for archiving and scheduling, and hopefully it can be expanded to provide some of the funcionality i need. so here goes:
we have, say 3, streaming radios in different places which all transmit in their own url. then there is a master url, or collective stream, that "mirrors" one of these five at a given hour.
so for example we have:
http://example.com:8000/radioX.ogg
http://example.com:8000/radioY.ogg
http://example.com:8000/radioZ.ogg
and
http://example.com:8000/master.ogg
radioX transmits on tuesdays from 11am-2am. radioY, tuesday from 2-5pm and radioZ from 5-8pm.
http://example.com:8000/master.ogg should "reproduce" (read, mirror) each of these radios according to its place in the schedule.
So what i´m hoping is possible is to use the station.module´s to provide the schedule. from their out its not as clear how to go about this, but i´ve got some ideas (what i don´t have are programing skills :)) the station module uses streamripper to archive, which seems like a pretty good place to start. it seems like a bad idea to simply "mirror" the stream in realtime, where any internet conextion flaw or what have you could take down the whole mirror chain. so the idea is use the station module´s scedule and ripping functions to begin ripping http://example.com:8000/radioX.ogg at 11am. wait a minute or two (this wait provides us with a buffer). then ices2 (becuase we want to use ogg and NOT mp3) is called to begin streaming radioX (which we began ripping a minute ago). it may be possible to have the station.module save a playlist for every program in its schedule. and from there its just a matter of telling ices2 which playlist at which hour.
ices2 can also read metadata from a text file, which could also be generated from the program node type of the station.module. or the same could be done, but instead of having ices2 send the metadata, its updated through the admin interface of the icecast2 server.
well so this is a bit more involved perhaps than what you´ve laid out, but what you are talking about doing would definatly be a step toward what i need as well. and it seems like many of the other elements are there, just waiting to be tied together. i´m not much of a hacker, but i´m digging through manuals trying to figure out enough to get started.
i´m willing to help out on a drupal/icecast2/ices2 integration, and hopefully will learn a few thing s along the way. and if anyone is intrested in connecting it with the station module, or some other scheduling/archiving solution, in order to automate what i´ve things as i´ve described here, that be great too.
it may be that i don't understand the question, but ices will reread a playlist when it is given the appropriate kill signal. i think its HUP, but better check. It will also reload metadata when given the appropriate signal.
Icecast / Ices integration
I'm back on the case here:
I'm going to look at ices and ices2 for integration. I'd like to use ices2 as well, however mp3s are likely preferred by the commnity, and there's no way we're going to want to support this thing by ourselves.
I think that the multiple streams request sounds complicated and is likely best left to a second stage; the first stage should be getting drupal and a streamer to coordinate, likely through creation of playlists by drupal for ices.
I'll read the api better, because what might be best for ices2 is to have a pythin script be in charge of the ices playlist side of things, then it can update whenever necessary, maybe parsing a drupal rss feed for songs. It's been a while since I looked at this (and drupal itself) so I'll report later on the absurdity of this.
J
re: Icecast / Ices integration
yea i agree completly. i put the multiple stream stuff there for the sake of completeness in terms of our particular necessities, and in case anyone has ideas, or could help out. but, yea, its more complicated and should come after more straightforward ices2/icecast2 integration.
for mp3 there is ices, the predecessor to ices2. its doesn´t seem to be maintained anymore, but it should work. i guess we´d have to give to option to use one or the other.
here is an example of an ices0 playlist script in python:
http://myzope.kedai.com.my/blogs/kedai/91
drupal station module +mpd +python
hey this may no be exactly what you had in mind, but i´m running drupal with a modified station module. using mpd as a backend to provide playlists and stream audio in ogg-vorbis to an icecast2 server. plus a patch to the station module which provides a form field for the streaming url for the station particular station. it also requieres the addition of a row called "stream" to the station_program table. so basically users can stream in the server they chose, but they publish the url of their stream when the publish their program. the python script gets called everyhour and it loads the url programed for that hour in mpd. mpd takes care of the streaming to icecast. archiving and all that is still done by the station.module in the normal way.
patch for station.program.module:
python script: