English | 简体中文

About The Project
N_m3u8DL-RE GUI provides a graphical interface for the N_m3u8DL-RE command-line tool. It makes downloading DASH, HLS, and MSS streams incredibly easy—no need to memorize complex command-line arguments anymore!
Main Benefits:
- 🚀 No command-line memorization - Common options are available through simple UI controls.
- ⚡ Multi-Job Concurrent Downloads - Download multiple streams simultaneously with configurable concurrency (1–8 jobs), real-time aggregate top progress bar, interactive job list with two-way form inspection, and individual Resume, Stop, Open Folder, and Remove controls.
- ⏯️ Resume Interrupted Downloads - Resume stopped or failed downloads right from the job list with 1-click Resume or on application startup. Seamlessly attach a fresh stream link or new title (since signed CDN URLs expire quickly) and resume without losing previously downloaded chunks.
- 🎬 Native Abyss & Hydrax Support - Direct AES-CTR chunk decryption and assembly for
abysscdn.com, playhydrax.com, zplayer.io, and short.ink without external tools, with a picker when a video offers several qualities.
- 🌏 Speaks Your Language - The whole interface, status messages included, switches instantly between English, 简体中文, and 繁體中文.
- 📦 Batch processing - Download multiple streams from text files or folders with one click.
- 🔒 Privacy First - Your settings and headers are automatically saved between sessions and heavily encrypted using Windows DPAPI.
- 🛡️ Cloudflare WAF Bypass - Built-in TLS fingerprint impersonation to bypass Cloudflare security seamlessly.
(back to top)
Getting Started (Installation)
We have intentionally kept the installation process as simple as possible. No installers, no complicated setups.
1. Download
Download the latest release (N_m3u8DL_RE_GUI_v2.1.7.zip) from our GitHub Releases page.
Extract the .zip file anywhere on your computer. Inside the folder, you will find 4 core files plus the optional companion browser extension:
N_m3u8DL_RE_GUI_v2.1.7/
├── N_m3u8DL_RE_GUI.exe <-- The main application (Double click this!)
├── N_m3u8DL-RE.exe <-- The core download engine
├── ffmpeg.exe <-- The video/audio muxing engine
├── m3u8_cf_bypass.py <-- The Cloudflare TLS bypass script
├── extension-chrome/ <-- Optional Chrome / Edge / Brave companion extension
└── extension-firefox/ <-- Optional Firefox companion extension
3. Run
Simply double-click N_m3u8DL_RE_GUI.exe to launch the application.
Python Requirement: If you plan to use the Cloudflare Bypass feature, make sure you have Python installed on your Windows machine, and run pip install curl_cffi in your command prompt.
(back to top)
Usage Guide
Quick Start
- Enter URL - Paste your
.m3u8, .mpd, or stream URL in the top URL field.
- Configure Options - Select desired options from the sidebar tabs (e.g., Audio Only, Sub Only).
- Click GO - The application will automatically generate the CLI command and start downloading.
| Method |
How to use |
| ⬇ 1-Click Download |
Click ⬇ Download in the Browser Extension to automatically queue and start downloads in the GUI over Native Messaging. |
| 📋 Paste from Browser |
Copy a request as cURL from browser DevTools (F12) or click Copy as cURL in the Browser Extension, then click 📋 Paste from browser. |
| 🗂️ HAR Capture Drop |
Drag a .har network capture onto the GUI. If multiple streams are found, an interactive picker window lets you select the master stream. |
| 🎬 Abyss / Hydrax |
Paste abysscdn.com/?v=..., playhydrax.com/?v=..., zplayer.io/?v=..., or short.ink/... directly. The GUI fetches the available qualities and downloads chunks natively. When more than one quality is offered you pick one (largest listed first); a download started by the browser extension takes the largest automatically. |
| Direct URL |
Paste a standard .m3u8, .mpd, or .mp4 stream URL directly into the top bar. |
| Drag & Drop |
Drag .m3u8, .mpd, or .txt files directly into the window. |
| Batch File |
Drop a .txt file containing multiple URLs (one per line). |
| Folder |
Drop a folder containing stream files to batch process them all. |
N-RE Stream Bridge Browser Extension (v1.4.6)
Use the companion browser extension N-RE Stream Bridge in extension-chrome/ or extension-firefox/ for 1-click stream capture, quality selection, and multi-URL batch queues in Chrome, Edge, Brave, and Firefox:
Installation
- Firefox (≥ 128) — Recommended:
- Install directly from Mozilla Add-ons (AMO) for permanent installation and automatic updates.
- Launch N_m3u8DL-RE GUI at least once so it registers the Native Messaging Host for Firefox in your Windows registry (
HKCU\Software\Mozilla\NativeMessagingHosts\com.nm3u8dlre.gui).
- (Optional) In
about:addons → N-RE Stream Bridge, toggle Run in Private Windows to allow capture in private tabs.
(Or for local development / testing: open about:debugging#/runtime/this-firefox, click Load Temporary Add-on, and select extension-firefox/manifest.json).
- Chrome / Edge / Brave (Chromium ≥ 111):
- Open
chrome://extensions (or edge://extensions) and enable Developer mode.
- Click Load unpacked and select the
extension-chrome/ folder from the release.
Usage
- Play any video or audio in your browser → click the extension icon.
- Single Stream: Click
▸ Qualities to pick your resolution (1080p, 720p, etc.) → ⬇ Download (or 📋 Copy as cURL).
- Batch Streams: Check multiple stream rows → click
📋 Copy as list.
- In the GUI, click
📋 Paste from browser (or Ctrl+V) → All stream URLs, headers, and quality selectors are filled instantly!
1-click download: once the GUI has been run at least once, the popup shows a ⬇ Download button beside 📋 Copy as cURL. It hands the stream — URL, headers, merged cookies, and the selected quality — straight to the GUI and starts the download, with no copy-paste and no window switching. Click it while a download is already running and the stream simply queues behind it.
Stream Coverage & Privacy: Supports HLS (.m3u8), DASH (.mpd), Smooth Streaming (.ism//Manifest), Abyss/Hydrax, standalone audio (.m4a, .opus, .flac, .wav, .aac, .mp3), and progressive formats (.mp4, .m4v, .webm, .mkv, etc.). Automatically suppresses segment flooding to keep manifests visible, shows live file sizes and confidence badges, probes stream renditions strictly on demand, and uses memory-backed chrome.storage.session so sensitive cookies are never written unencrypted to disk.
How to use Cloudflare Bypass
If a website is blocking you with Cloudflare, open the Network tab (🌐) and find the ⚡ Cloudflare Bypass (curl_cffi) section:
- Tick Enable Cloudflare Bypass.
- Choose your bypass Engine:
- Auto (Recommended) - Downloads plain HLS directly via multi-threaded
curl_cffi, and spins up the local proxy server for DASH/MSS/CENC streams. If a direct HLS download finds something it cannot assemble (fMP4 init segments, separate audio tracks, byte-range segments), it hands the job to the proxy engine by itself.
- CF Direct (HLS only) - Directly downloads and merges plain HLS streams using concurrent worker threads. It refuses fMP4 / separate-audio / byte-range playlists instead of writing a broken file; use Auto or Proxy for those.
- CF Proxy + RE (DASH / MSS / DRM) - Starts a local
--serve ephemeral proxy server (127.0.0.1:0) with token authentication and SSRF protection to rewrite manifests and forward requests to N_m3u8DL-RE. A custom or system proxy is not applied on this path, because N_m3u8DL-RE only talks to the local proxy.
- Select a browser fingerprint (e.g.,
chrome131, chrome120, edge101, safari17_0).
- Enter
Referer or CF Cookie if needed — or simply click 📋 Paste from browser to populate them automatically from the extension.
- Click ▶ GO.
Credential Privacy: The parameters preview bar shows the real command, credentials included, so that 📋 Copy gives you something you can paste into a terminal and run as-is. A cookie you paste is therefore visible on screen — worth knowing before you share a screenshot or a recording. Once a Cloudflare-bypass download starts, the bar is replaced by a masked snapshot of that command (--cookie "...(masked, 412 chars)") for the rest of the run, while the launched process receives the full value.
Resuming a Stopped Download: If a Cloudflare-bypass download is stopped or fails partway through, just paste the same URL and Save Name and click ▶ GO again — segments already saved to disk are detected and skipped, so the download continues instead of restarting from 0%.
(back to top)
Detailed Features
Core Features
- Universal Stream Capture - 1-click ⬇ Download over Native Messaging, paste browser cURL commands directly, drag-and-drop
.har captures with automated stream ranking and picking, or use the N-RE Stream Bridge browser extension. Every capture starts clean: the decryption key, Cloudflare bypass, and TLS profile are reset, so nothing carries over from the previous stream; your own proxy setting is kept.
- Resume Interrupted Downloads - Automatically derives deterministic temp directories (
<saveDir>/.nre-tmp/<saveName>) and persists active job metadata. On startup, detects unfinished downloads with saved segments, offers a 1-click resume workflow with a fresh stream link, or clean discards.
- Native Abyss / Hydrax Downloader - Built-in zero-dependency C# crypto engine that decrypts and reassembles fragmented chunks from
abysscdn.com, playhydrax.com, zplayer.io, and short.ink. Verifies chunk sizes on disk and resumes a stopped or interrupted download from its exact byte offset instead of restarting, with honest cancellation reporting and accurate live progress tracking. Videos offered in several qualities open a quality picker (largest first).
- Hardened Cloudflare WAF Bypass - Multi-threaded segment downloader (
curl_cffi), browser fingerprint impersonation, manifest rewriter & proxy mode (--serve) for DASH/MSS/DRM streams, honest exit code handling, and automatic segment resume from a deterministic per-download job directory (re-running the same URL and Save Name skips segments already on disk).
- 3-Zone Modern UX/UI Architecture - Clean layout with a top URL hero bar, a 6-Tab sidebar (
📦 Download, 🌐 Network, 🔒 Security, 🎬 Media, 📡 Live, ⚙️ Advanced), and a fixed command preview bar at the bottom.
- GUI & Engine Auto-Update Engine - Zero rate-limit HTTP update checker for application releases and N_m3u8DL-RE engine version probing (
EngineUpdateCheckService) with safe process teardown. If a new version is released, a green pill badge (🎉 vX.X.X Available!) will appear at the top. The Settings tab provides startup auto-checks and on-demand check controls for both the GUI and the bundled N_m3u8DL-RE CLI engine, with local version probing, 3-state status reporting, and 1-click upstream release navigation.
- Environment Doctor Diagnostics - Built-in inspection window running
N_m3u8DL-RE doctor --json on demand to check system platform, CPU architecture, .NET runtime, and the operational status/versions of companion utilities (ffmpeg, mkvmerge, mp4decrypt, shaka-packager), complete with color-coded status badges and 1-click JSON report copying.
- Multi-Language Interface - English, 简体中文, and 繁體中文, switched live from the header with no restart. Labels, dialogs, status messages, the resume banner, and update status are all translated; the technical log stays in English. The language follows your Windows display language on first launch.
- Full RE Support - Compatible with all major N_m3u8DL-RE command-line arguments.
- Batch Downloads - Process multiple URLs from text files or drop entire folders of streams.
- Config Persistence - Settings are saved automatically between sessions.
Security and Stability
- Windows DPAPI Secret Protection - Your custom headers, proxies, decryption keys, and IVs are safely encrypted via Windows DPAPI in your
config.json file. No plaintext secrets!
- Credential Privacy on Resume - Resume job records intentionally store only the source hostname (never raw stream URLs or signed access tokens). A running Cloudflare-bypass download also replaces the parameters preview with a cookie-masked snapshot of its command; the live preview itself stays verbatim so 📋 Copy remains copy-and-run.
- Thread-Safe Cancellation - Responsive process cancellation with clean token lifetime management that safely terminates child process trees.
- In-Window Live Feedback & Progress - Real-time progress bar, live status messages with color-coded alerts (green success, amber warnings/partials, red errors), collapsible diagnostic log, and an “Open Folder” button on completion.
- Accessible & Keyboard Ready - High-contrast focus visual indicators, access keys (
Alt+G for Go, Alt+S / Escape for Stop), and full UI automation properties.
- Automated Test Suite (1,718 Tests) - Rock-solid stability backed by 1,718 unit, integration, parity, and accessibility tests across .NET (1,233 tests, 1 live-network test intentionally skipped), Node.js (397 tests), and Python (88 tests) test suites.
Download Options
- Concurrent Downloads & Job Scheduler - Download multiple streams simultaneously with configurable concurrency (default 2, up to 8), real-time aggregate top progress bar, dual-scope status text, interactive job list panel with two-way form inspection, per-job Resume/Stop/Remove controls, and collision detection.
- Audio/Subtitle Selection - Download audio-only or subtitles-only easily.
- Stream Selection (Regex) - Select or drop video/audio/subtitle streams by standard regex.
- VOD Part Dropping (
--vod-drop-parts) - Discard comma-separated part indexes or ranges (e.g. 0,2-4) in VOD mode.
- Network Interface Binding (
--interface) - Bind network traffic to a specific interface name or IP address (e.g., eth0 or 192.168.1.10).
- Time Range - Download specific portions of a stream (e.g.,
00:05:00-00:10:00).
- Speed Limit - Set a maximum download speed to avoid throttling.
- Custom Proxy - Support for HTTP and SOCKS5 proxies.
Muxing and Output
- Mux After Done - Automatically mux video and audio to
.mp4 or .mkv with ffmpeg.
- Mux Import - Import external media files during muxing.
- Subtitle Format - Choose between SRT and VTT output formats.
Live Recording
- Perform as VOD - Treat live streams as VOD, allowing full download and pausing.
- Live Idle Timeout (
--live-idle-timeout) - Automatically stop recording after N seconds with no incoming segments.
- Live Catch-Up (
--live-catchup) - Download live catch-up by duration (HH:MM:SS) or ISO 8601 start timestamp (e.g., 01:00:00 or 2026-10-10T21:00:00+08:00), overriding take count.
- Realtime Merge - Merge segments in real time without waiting for completion.
- Pipe Mux - Direct pipe to muxer to save disk I/O.
- Record Limit - Set a maximum recording duration.
Decryption
- Engine Selection - Choose between MP4DECRYPT, SHAKA_PACKAGER, or FFMPEG for real-time MP4 segment decryption.
- HLS Method Override - Set a custom HLS decryption method.
- Key Text File - Load a massive list of decryption keys directly from a file.
Advanced Control
- Netscape Cookies File (
--cookies) - Load session cookies from a Netscape format text file via a file selector.
- Custom Headers - Add HTTP headers (Cookie, User-Agent, Origin, etc.).
- Thread Control - Customize thread count, retry limits, and timeout parameters.
- Auto Subtitle Fix - Automatically fix subtitle synchronization issues. Like Delete After Done, it is on by default in N_m3u8DL-RE, and unticking it really turns it off.
- Save Pattern - Custom naming pattern for downloaded files.
- Log Level - Control output verbosity (OFF/ERROR/WARN/INFO/DEBUG).
Building a Release
To build the release bundle, run publish.bat from the repository root (add /nopause when calling it from another script). It reads the version from Directory.Build.props and extension/manifest.json, publishes the app as a self-contained single file, adds companion binaries and extension folders, verifies output hygiene, and packages everything into an isolated Publish\v<version>\ bundle containing:
N_m3u8DL_RE_GUI_v<version>\ (unpacked application folder for local testing)
N_m3u8DL_RE_GUI_v<version>.zip (primary release archive)
nre-stream-bridge-v<ext_version>-firefox.zip (standalone Firefox extension package for AMO / GitHub)
nre-stream-bridge-v<ext_version>-chrome.zip (standalone Chrome extension package)
SHA256SUMS.txt (SHA-256 checksums for all release archives)
N_m3u8DL-RE.exe, ffmpeg.exe and m3u8_cf_bypass.py must sit in the repository root; if one is missing it stops before building anything. Everything is assembled in Publish\.staging and moved into place only after every check passes, so a failed run never leaves a half-built release.
A complete release archive must contain: N_m3u8DL_RE_GUI.exe, N_m3u8DL-RE.exe, ffmpeg.exe, m3u8_cf_bypass.py, and the extension-chrome/ and extension-firefox/ folders. The version is AppVersion in Directory.Build.props, the only place it is typed; publish.bat checks that the built exe reports the same number, so the folder name, the zip name and the binary cannot drift apart.
(back to top)
Roadmap
(back to top)
Disclaimer
This application is a GUI wrapper only. All downloading and processing is handled by N_m3u8DL-RE and FFmpeg. For issues related to downloading or media processing failures, please refer to their respective repositories.
License
Distributed under the MIT License. See LICENSE for more information.
评论