The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Parse::M3U::Extended - a simple Regexp::Grammars based M3UE parser

SYNOPSIS

 use LWP::Simple;
 use Parse::M3U::Extended qw(m3u_parser);

 my $m3u = get("http://example.com/foo.m3u");
 my @items = m3u_parser($m3u);

DESCRIPTION

This module contains a simple parser for the Extended M3U format as used in e.g. HTTP Live Streaming. It also supports the regular M3U format, usually found with digital copies of music albums etc.

SUBROUTINES

m3u_parser

Takes a m3u playlist as a string and returns a list, with each element is a hashref with the keys type and value. If the playlist's first line is "#EXTM3U\n", then the elements in the returned list can have type "directive", which has a "tag" key and the value key is optional.

 {
   type => 'comment',
   value => 'a comment',
 }

 {
   type => 'item',
   value => 'http://example.com/foo.mp3',
 }

 {
   type => 'directive',
   tag => 'EXTM3U',
 }

 {
   type => 'directive',
   tag => 'EXT-X-ALLOW-CACHE',
   value => 'YES',
 }

Internally, it's using Regexp::Grammars, and the returned result hash is then flattned. If you want to work with the result hash, you can use $Parse::M3U::Extended::parser directly, but documenting its structure is outside the scope of this manual. Please refer to Regexp::Grammars.

If the playlist supplied does not match an M3U file, undef is returned.

SEE ALSO

COPYRIGHT

Copyright (c) 2012 - Olof Johansson <olof@cpan.org> All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.