#dash #hls #video #video-streaming

app streamrip

Recursively mirror an HLS (.m3u8) or DASH (.mpd) stream for local hosting

2 releases

Uses new Rust 2024

0.1.1 Nov 23, 2025
0.1.0 Nov 23, 2025

#851 in Network programming

EUPL-1.2

27KB
615 lines

StreamRip

A command-line tool that recursively mirrors DASH ( Dynamic Adaptive Streaming over HTT) or HLS (HTTP Live Streaming) content by downloading manifests and media segments while rewriting manifest URLs for local hosting.

Features

  • Downloads complete DASH or HLS streams including master playlists, media playlists, segments and text tracks
  • Maintains the relative path structure from the source
  • Rewrites manifest URLs to work with local hosting
  • Handles query parameters in URLs by converting them to safe filenames
  • Preserves original manifests with .orig extension for reference

Example Usage

Install it from crates.io:

cargo install streamrip

Then download streams by providing a source URL and a target directory:

streamrip --start-url=https://example.com/stream/97333-f40e7a11-73a2-47df-a767-9f0bcdfb83cd.ism/manifest.m3u8 --output-dir=hls
streamrip --start-url=https://example.com/stream/97333-f40e7a11-73a2-47df-a767-9f0bcdfb83cd.ism/manifest.mpd  --output-dir=dash

Dependencies

~7–14MB
~224K SLoC