finds.dev← search

// the find

nilaoda/N_m3u8DL-RE

★ 8,897 · C# · MIT · updated Oct 2026

Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文.

A cross-platform CLI for downloading DASH/HLS/MSS streams, including live recording with catchup and DRM decryption. Built in C#/.NET, it's aimed at people who need fine-grained control over multi-track adaptive streams — regex-based stream selection, custom encryption overrides, muxing — not casual users who just want a video saved.

The stream selection syntax (-sv/-sa/-ss with id/lang/codecs/res/bandwidth/period regex filters) is genuinely more capable than most downloaders in this space, letting you script around ad periods, pick specific bitrate ranges, or grab every language track in one call. Live handling goes beyond basic recording: catchup from a timestamp, real-time merge, and pipe-muxing straight into ffmpeg. The FFmpeg concat mode uses a local loopback HTTP server to present segments as one seekable stream, avoiding the file-handle and command-line-length limits that bite naive concat-protocol approaches on long recordings. The test suite (DASHLivePeriodRecordingTests, HLSMultiMapTests, LiveNetworkRecoveryTests, etc.) covers real edge cases parser bugs usually hide in, which is rare rigor for a tool this size.

It's CLI-only — there's no library surface, so anything that wants programmatic control has to shell out and parse stdout/JSON rather than call an API. Decryption depends on external binaries (mp4decrypt, shaka-packager, or ffmpeg) that have to be installed and path-resolved separately; `doctor` helps diagnose this but doesn't remove the dependency. The complex-parameter escaping rules (colons in paths need `\:`) and config-file precedence (CLI > file > defaults, with per-flag merge semantics) are easy to get wrong when scripting and are only documented in prose, not validated with helpful errors. The README is upfront that this targets DRM-protected and encrypted streams, which puts it in a legal gray area some users won't want to navigate, disclaimer or not.

View on GitHub →

// 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 →