PHPackages                             tiefanovic/m3u - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. tiefanovic/m3u

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

tiefanovic/m3u
==============

m3u playlist parser

012PHP

Since Jul 8Pushed 8y ago1 watchersCompare

[ Source](https://github.com/tiefanovic/m3u)[ Packagist](https://packagist.org/packages/tiefanovic/m3u)[ RSS](/packages/tiefanovic-m3u/feed)WikiDiscussions master Synced 2w ago

READMEChangelogDependenciesVersions (1)Used By (0)

PHP M3u class
=============

[](#php-m3u-class)

M3u playlists manipulation (parse &amp; create) class.

Usage
-----

[](#usage)

```
$playlist =
'#EXTM3U

#EXTINF:0,TV Channel
#EXTGRP:News
http://broadcaster.tv/channel.m3u8

#EXTINF:0 group-title="Sports",Sports channel
http://broadcaster.tv/sports.m3u8

# That\'s my favourite song
#EXTINF:253,John Doe - Universe
/home/jd - universe.mp3
';

// create a playlist object
$m3u = new M3u();

// parse an existing file
$m3u->parse($playlist);

// walk through items
$entries = $m3u->getEntries();
foreach($entries as &$entry) {
    echo $entry->name, PHP_EOL;
}

// add records
$new = new M3uEntry();
$new->path = '/home/test1.mp3';
$m3u->addEntry($new);

// or this way
$m3u->addEntry(new M3uEntry([
    'path' => '/home/test2.mp3',
    'artist' => 'Unknown artist',
    'name' => 'Unknown record'
]));

// export valid m3u playlist
echo $m3u;
```

###  Health Score

20

—

LowBetter than 13% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/8984187?v=4)[Ahmed Atef](/maintainers/Tiefanovic)[@tiefanovic](https://github.com/tiefanovic)

---

Top Contributors

[![Urvin](https://avatars.githubusercontent.com/u/2264798?v=4)](https://github.com/Urvin "Urvin (1 commits)")

### Embed Badge

![Health badge](/badges/tiefanovic-m3u/health.svg)

```
[![Health](https://phpackages.com/badges/tiefanovic-m3u/health.svg)](https://phpackages.com/packages/tiefanovic-m3u)
```

###  Alternatives

[mck89/peast

Peast is PHP library that generates AST for JavaScript code

19037.7M41](/packages/mck89-peast)[sauladam/shipment-tracker

Parses tracking information for several carriers, like UPS, USPS, DHL and GLS by simply scraping the data. No need for any kind of API access.

9642.0k](/packages/sauladam-shipment-tracker)[jstewmc/rtf

Read and write Rich Text Format (RTF) documents with PHP

46143.1k6](/packages/jstewmc-rtf)[moonshine/layouts-field

Field for repeating groups of fields for MoonShine

107.9k](/packages/moonshine-layouts-field)[tcds-io/php-jackson

A lightweight, flexible object serializer for PHP, inspired by FasterXML/jackson

112.9k10](/packages/tcds-io-php-jackson)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
