Olof Johansson > Parse-M3U-Extended-0.1 > Parse::M3U::Extended

Download:
Parse-M3U-Extended-0.1.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.1   Source  

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.

syntax highlighting: