Skip to content

About

Work with HLS (M3U8) and MPEG-DASH MPD manifests

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

46 Commits

Folders and files

Repository files navigation

stream-parser

Python package and command-line utilities for working with HLS (M3U8) playlists and MPEG-DASH Media Presentation Description (MPD) manifests.

Installation

uv tool install 'stream-parser @ git+https://github.com/ink-splatters/stream-parser'

TODO: PyPI publication

Roadmap

  • Load HLS playlists and DASH MPDs from files, stdin, and HTTP(S).
  • Serialize parsed manifests and enumerate initialization and media URLs.
  • hls and dash CLIs feature parity.
  • Download media or delegate to a download manager, with track/representation selection and byte-range handling.
  • Assemble downloaded media with FFmpeg, handling initialization segments and separate audio/video tracks.
  • Explore streaming server with configurable segment duration and optional media processing, as a potential separate project, using stream-parser

Usage

hls urls -f playlist.m3u8
dash urls -f manifest.mpd
dash dump -f manifest.mpd
cat manifest.mpd | dash urls

Use -u to fetch a manifest, and repeat -H to supply HTTP headers:

dash urls -u https://example.com/video/manifest.mpd \
  -H 'Referer: https://example.com/watch' \
  -H 'Authorization: Bearer token'

# contains url
pbpaste | hls urls -u -

Development

uv sync --locked --all-extras
uv run poe fix
uv run poe test

Update all dependencies:

uv lock --upgrade

Update GitHub actions:

bunx actions-up
# or
# npx actions-up

About

Work with HLS (M3U8) and MPEG-DASH MPD manifests

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages