MP3/Icecast version 0.01 ======================== NAME MP3::Icecast - Generate Icecast streams, as well as M3U and PLSv2 playlists. SYNOPSIS use MP3::Icecast; use MP3::Info; use IO::Socket; my $listen_socket = IO::Socket::INET->new( LocalPort => 8000, #standard Icecast port Listen => 20, Proto => 'tcp', Reuse => 1, Timeout => 3600); #create an instance to find all files below /usr/local/mp3 my $finder = MP3::Icecast->new(); $finder->recursive(1); $finder->add_directory('/usr/local/mp3'); my @files = $finder->files; #accept TCP 8000 connections while(1){ next unless my $connection = $listen_socket->accept; defined(my $child = fork()) or die "Can't fork: $!"; if($child == 0){ $listen_socket->close; my $icy = MP3::Icecast->new; #stream files that have an ID3 genre tag of "jazz" while(@files){ my $file = shift @files; my $info = new MP3::Info $file; next unless $info; next unless $info->genre =~ /jazz/i; $icy->stream($file,0,$connection); } exit 0; } #a contrived example to demonstrate that MP3::Icecast #can generate M3U and PLSv2 media playlists. print STDERR $icy->m3u, "\n"; print STDERR $icy->pls, "\n"; $connection->close; } ABSTRACT MP3::Icecast supports streaming Icecast protocol over socket or other filehandle (including STDIN). This is useful for writing a streaming media server. MP3::Icecast also includes support for generating M3U and PLSv2 playlist files. These are common formats supported by most modern media players, including XMMS, Windows Media Player 9, and Winamp. INSTALLATION To install this module type the following: perl Makefile.PL make make test make install DEPENDENCIES This module requires these other modules and libraries: MP3::Info => 1.02 File::Spec => 0.86 File::Basename => 2.71 File::MimeInfo => 0.8 URI::Escape => 0 IO::File => 1.09 COPYRIGHT AND LICENCE Copyright (C) 2003 Allen Day This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO The Icecast project http://www.icecast.org Namp! (Apache::MP3) http://namp.sourceforge.net Unofficial M3U and PLS specifications http://forums.winamp.com/showthread.php?threadid=65772