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


