[Icecast] about playlist handler in ices-0.4

Leandro Campos leandrobhbr at gmail.com
Wed Dec 26 16:47:06 PST 2007

My rádio function very good, but i want change playlist... in real time...
and i dont want thats the clients stop the listening.

Please help me... i didint understand nothing about ices.pm and metadata

I want to write a perl or python playlist handler for ices, but
I don't know where to start.

I see the skeleton files ices.pm for perl and ices.py for
python. I read README.playlist. but there don't have how to.

I try it.. and didint have sucessful

 #ices -v -S /ices.pm -F /playlist.txt -b 80 -m /leandro -h -p 1025 -P alphanet -u http://alphanetbh.com.br -r -B
and the result:


DEBUG: Sending following information to libshout:
DEBUG: Stream: 0
DEBUG: Host: (protocol: http)
DEBUG: Mount: /leandro, Password: alphanet
DEBUG: Name: Default stream name        URL: http://alphanetbh.com.br
DEBUG: Genre: Default genre     Desc: Default description
DEBUG: Bitrate: 80      Public: 1
DEBUG: Dump file: (null)
DEBUG: Initializing playlist handler...
DEBUG: Initializing builting playlist handler...
DEBUG: Randomizing playlist...
DEBUG: Startup complete

DEBUG: Builtin playlist handler serving: /music/Bon Jovi.mp3
DEBUG: Filename cleaned up from [/music/Bon Jovi.mp3] to [Bon Jovi]
DEBUG: ID3v1: Title: Misunderstood-Bon Jovi-MAI
DEBUG: ID3v1: Artist:
DEBUG: Skipped 432 bytes of garbage before MP3
DEBUG: MPEG-1 layer III, 96 kbps, 32000 Hz, stereo
DEBUG: Ext: 0   Mode_Ext: 0     Copyright: 0    Original: 0
DEBUG: Error Protection: 0      Emphasis: 0     Padding: 0
Playing /music/Bon Jovi.mp3
DEBUG: Updated metadata on /leandro to: Misunderstood-Bon Jovi-MAI
Mounted on
DEBUG: Delaying metadata update...
DEBUG: Updated metadata on /leandro to: Misunderstood-Bon Jovi-MAI


How i use the function : ices_get_next ??????

look my ices.pm


# At least ices_get_next must be defined. And, like all perl modules, it
# must return 1 at the end.

# Function called to initialize your python environment.
# Should return 1 if ok, and 0 if something went wrong.

sub ices_init {
        print "Perl subsystem Initializing:\n";
        return 1;

# Function called to shutdown your python enviroment.
# Return 1 if ok, 0 if something went wrong.
sub ices_shutdown {
        print "Perl subsystem shutting down:\n";

# Function called to get the next filename to stream.
# Should return a string.
sub ices_get_next {
        print "Perl subsystem quering for new track:\n";
        return "/music/james blunt - 1973.mp3";

# If defined, the return value is used for title streaming (metadata)
sub ices_get_metadata {
        return "Artist - Title (Album, Year)";

# Function used to put the current line number of
# the playlist in the cue file. If you don't care
# about cue files, just return any integer.
sub ices_get_lineno {
        return 1;

return 1;


help me please


2007/12/26, Geoff Shang <Geoff at quitelikely.com>:
> Leandro Campos wrote:
> > i would like know how to one playlist handler whith perl?
> >
> > where a search one "HOW TO"
> the following items in the Ices 0.4 distribution should help you:
> 1.  README.playlist
> 2.  doc/icesmanual.html
> 3.  The Ices manpage
> An example module is provided as conf/ices.pm.dist
> In addition to the built-in support for Perl and Python, support for basic
> scripting (i.e. with the path to the next file as the first line of
> output)
> was added at some point, though I'm not sure if it was before or after the
> Ices 0.4 release.
> Geoff.
> _______________________________________________
> Icecast mailing list
> Icecast at xiph.org
> http://lists.xiph.org/mailman/listinfo/icecast


Belo Horizonte MG
Leandro Campos
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/icecast/attachments/20071226/e9ce5a2b/attachment.html

More information about the Icecast mailing list