finds.dev← search

// the find

clitic/vsd

★ 521 · Rust · Apache-2.0 · updated Jun 2026

A command-line utility and library for downloading streams from DASH .mpd manifests and HLS .m3u8 playlists.

vsd is a Rust CLI and library for downloading DASH and HLS streams, including DRM-protected content via Widevine and PlayReady license acquisition. It handles segment fetching, decryption, subtitle extraction, and hands off to ffmpeg for muxing. Aimed at developers who need to programmatically work with streaming manifests, not just casual downloaders.

The library split is genuinely useful — vsd-mp4 as a separate crate means you can pull in just the MP4 parsing and decryption primitives without dragging in the full CLI machinery. DRM license acquisition (not just decryption with a pre-supplied key) is rare in open-source tools and the thing that makes this meaningfully different from yt-dlp clones. The custom PSSH parser covering both Widevine protobuf and PlayReady WRM XML is non-trivial work. The browser capture subcommand for intercepting license requests from real browser sessions is a practical escape hatch for DRM flows that are otherwise opaque.

No live stream recording is a hard gap — it's on the feature list as unchecked, but if you need DVR-style recording of live events, you're back to N_m3u8DL-RE or ffmpeg directly. The comparison table admits no concurrent downloads, which matters a lot for large DASH manifests with hundreds of small segments — the sequential fetch path will be noticeably slower. MSS (Microsoft Smooth Streaming) is unsupported, which bites anyone dealing with Azure Media Services or older Microsoft CDN content. At 521 stars with one maintainer working on it in free time, the bus factor is high and the DRM integration in particular is the kind of code that bitrotts fast as Widevine CDM versions and license server behaviours shift.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →