M3U8 Parser
A Rust crate for parsing and creating M3U8 version 7 files for HTTP Live Streaming (HLS), as specified by RFC 8216.
[!IMPORTANT] This project is currently under active development. Please note that features and APIs are subject to change. My goal is to ensure full compatibility with RFC 8216.
Features
- Parse M3U8 playlists from strings, files, or readers
- Generate M3U8 playlists and write them to strings, files, or writers
- Support for all tags specified in RFC 8216, including:
- Basic Tags:
#EXTM3U#EXT-X-VERSION
- Media Playlist Tags:
#EXT-X-TARGETDURATION#EXT-X-MEDIA-SEQUENCE#EXT-X-ALLOW-CACHE#EXT-X-DISCONTINUITY-SEQUENCE#EXT-X-MEDIA#EXT-X-STREAM-INF#EXT-X-I-FRAME-STREAM-INF#EXT-X-INDEPENDENT-SEGMENTS#EXT-X-BYTERANGE#EXT-X-SESSION-DATA#EXT-X-SESSION-KEY#EXT-X-DEFINE
- Media Segment Tags:
#EXTINF#EXT-X-KEY#EXT-X-BYTERANGE#EXT-X-MAP#EXT-X-GAP#EXT-X-PROGRAM-DATE-TIME#EXT-X-PART#EXT-X-PRELOAD-HINT#EXT-X-START#EXT-X-DATERANGE
- Encryption Tags:
#EXT-X-KEY#EXT-X-SESSION-KEY
- Date Range Tags:
#EXT-X-DATERANGE
- End Playlist Tags:
#EXT-X-ENDLIST
- Master Playlist Tags:
#EXT-X-STREAM-INF#EXT-X-MEDIA#EXT-X-STREAM-INF#EXT-X-I-FRAME-STREAM-INF
- Program Date and Time:
#EXT-X-PROGRAM-DATE-TIME
- Basic Tags:
Installation
Add this to your Cargo.toml:
[]
= "0.6.1"
Usage
Parsing a Playlist
use Playlist;
Creating a Playlist
use PlaylistBuilder;