PHP-M3U8

An M3U8 parser / dumper framework.

SensioLabsInsight

Latest Stable Version License Total Downloads Build Status Scrutinizer Code Quality Code Coverage StyleCI

Installation

composer require 'chrisyue/php-m3u8:dev-feature/3.0'

That was it.

Usage

For the quick use:

<?php

use Chrisyue\PhpM3u8\M3u8\PlaylistFacade;
use Chrisyue\PhpM3u8\Document\Rfc8216\MediaPlaylist;

$text = <<<M3U8
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXTINF:10.0,Hello World
/path/to/first/segment
#EXT-X-ENDLIST
M3U8;

// As you could guess, one can change the `MediaPlaylist` to `MasterPlaylist` to parse/dump a master playlist
$m3u8 = new PlaylistFacade(MediaPlaylist::class);
$playlist = $m3u8->parse($text);

// you can now get the parsed information from `$playlist`
$playlist->version;
$playlist->targetduration;
$playlist->mediaSegments[0]->inf->duration;
$playlist->mediaSegments[0]->inf->title;
$playlist->endlist;

// or dump the `$playlist` back
$text = $m3u8->dump($playlist);

That was it

However, a "facade" hides a lot of details. PHP-M3u8 not only parse / dump M3U8, but also let one support more tags easily. That's why it's a "framework".