# nilaoda/n_m3u8dl-cli

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/nilaoda-n-m3u8dl-cli).**

15,982 stars · 2,285 forks · C# · MIT

## Links

- GitHub: https://github.com/nilaoda/N_m3u8DL-CLI
- Homepage: https://nilaoda.github.io/N_m3u8DL-CLI/
- awesome-repositories: https://awesome-repositories.com/repository/nilaoda-n-m3u8dl-cli.md

## Topics

`command-line` `downloader` `m3u8` `m3u8-downloader` `m3u8-parser` `m3u8dl-cli` `windows`

## Description

N_m3u8DL-CLI is a cross-platform .NET command-line interface designed for extracting and recording adaptive video streams. It functions as an HLS and DASH downloader that retrieves media from m3u8 and DASH playlist files, including the ability to capture ongoing live broadcasts with automatic duration limits.

The tool includes a dedicated AES-128-CBC stream decryptor to handle protected video segments using provided keys and initialization vectors. To optimize transfer speeds, it utilizes a multi-threaded download model and supports custom HTTP header management to bypass server restrictions.

The project covers broad media operations including batch acquisition of multiple streams, external audio and subtitle track retrieval, and the binary merging of media segments. It also provides utilities for partial video downloading based on specific timecodes, metadata embedding for titles and imagery, and the ability to resume interrupted transfers.

A graphical download interface is available to automate parameter generation and trigger downloads from stream addresses.

## Tags

### Graphics & Multimedia

- [Stream-Based Media Retrievers](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/streaming-broadcasting/media-streaming/stream-based-media-retrievers.md) — Retrieves HLS and DASH adaptive video streams from playlist links and saves them as local files. ([source](https://cdn.jsdelivr.net/gh/nilaoda/n_m3u8dl-cli@master/README.md))
- [Video Downloaders](https://awesome-repositories.com/f/graphics-multimedia/video-downloaders.md) — Retrieves adaptive video streams from M3U8 and DASH playlists and saves them as local files.
- [Live Stream Recorders](https://awesome-repositories.com/f/graphics-multimedia/media-capture-utilities/live-stream-recorders.md) — Captures ongoing live broadcasts and saves them as standard media files with automatic duration limits.
- [Adaptive Stream Downloaders](https://awesome-repositories.com/f/graphics-multimedia/media-players/adaptive-streaming-players/adaptive-bitrate-streaming/dash-adaptive-streaming/adaptive-stream-downloaders.md) — Functions as an HLS and DASH downloader for retrieving adaptive video streams.
- [Encrypted Segment Decryption](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/streaming-broadcasting/media-streaming/video-streaming/hls-streaming/encrypted-segment-decryption.md) — Provides a pipeline to decrypt HLS stream segments using AES-128-CBC with provided keys.
- [Stream Muxing Download Engines](https://awesome-repositories.com/f/graphics-multimedia/video-downloaders/stream-muxing-download-engines.md) — Downloads adaptive video streams with support for master lists, alternative tracks, and muxing options. ([source](https://nilaoda.github.io/N_m3u8DL-CLI/))
- [External Track Retrievals](https://awesome-repositories.com/f/graphics-multimedia/media-metadata-injection/external-track-injection/external-track-retrievals.md) — Retrieves separate external subtitle and audio tracks associated with a video stream for later muxing. ([source](https://cdn.jsdelivr.net/gh/nilaoda/n_m3u8dl-cli@master/README.md))
- [Media Stream Segmenters](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/streaming-broadcasting/media-streaming/media-stream-segmenters.md) — Allows downloading specific portions of a video stream instead of the entire file to save bandwidth. ([source](https://nilaoda.github.io/N_m3u8DL-CLI/))
- [Playlist Content Retrievers](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/streaming-broadcasting/media-streaming/playlist-aggregators/playlist-content-retrievers.md) — Parses the structure and content of media playlists to retrieve video lists and metadata. ([source](https://nilaoda.github.io/N_m3u8DL-CLI/Advanced.html))
- [Partial Range Downloading](https://awesome-repositories.com/f/graphics-multimedia/video-downloaders/partial-range-downloading.md) — Extracts specific segments of a video stream based on segment indices or precise timecodes. ([source](https://nilaoda.github.io/N_m3u8DL-CLI/Advanced.html))

### Content Management & Publishing

- [Stream Recorders](https://awesome-repositories.com/f/content-management-publishing/media-management/live-streaming-platforms/stream-recorders.md) — Captures ongoing live broadcasts with the ability to stop recording after a specified duration. ([source](https://cdn.jsdelivr.net/gh/nilaoda/n_m3u8dl-cli@master/README.md))
- [Media Merging Tools](https://awesome-repositories.com/f/content-management-publishing/media-management/media-merging-tools.md) — Combines downloaded media fragments into a single file using binary merging or external tools. ([source](https://cdn.jsdelivr.net/gh/nilaoda/n_m3u8dl-cli@master/README.md))

### Data & Databases

- [Bulk Media Acquisition](https://awesome-repositories.com/f/data-databases/bulk-media-acquisition.md) — Enables high-volume retrieval of media collections from playlists or text files for offline storage.

### Development Tools & Productivity

- [Playlist Parsers](https://awesome-repositories.com/f/development-tools-productivity/playlist-managers/playlist-parsers.md) — Implements parsing of M3U8 and DASH manifests to resolve stream quality and segment URLs.
- [Request Header Management](https://awesome-repositories.com/f/development-tools-productivity/request-header-management.md) — Adds custom HTTP headers and authentication cookies to bypass server-side access restrictions. ([source](https://nilaoda.github.io/N_m3u8DL-CLI/Advanced.html))

### Programming Languages & Runtimes

- [.NET Command Line Interfaces](https://awesome-repositories.com/f/programming-languages-runtimes/net-command-line-interfaces.md) — Implements a cross-platform command-line interface built on the .NET ecosystem.

### Part of an Awesome List

- [Binary Segment Concatenations](https://awesome-repositories.com/f/awesome-lists/media/video-playback/segmented/lossless-concatenations/binary-segment-concatenations.md) — Merges raw transport stream fragments into a single file via direct byte appending without re-encoding.

### Networking & Communication

- [Download Resumption](https://awesome-repositories.com/f/networking-communication/download-resumption.md) — Tracks downloaded segment indices to restart interrupted transfers from the last successful fragment.
- [High-Speed Download Optimizations](https://awesome-repositories.com/f/networking-communication/high-speed-download-optimizations.md) — Maximizes network throughput by configuring the number of concurrent download threads. ([source](https://cdn.jsdelivr.net/gh/nilaoda/n_m3u8dl-cli@master/README.md))
- [HTTP Header Spoofing](https://awesome-repositories.com/f/networking-communication/http-header-spoofing.md) — Allows customization of HTTP request headers and cookies to bypass server-side access restrictions.
- [Network Proxy Configurations](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-infrastructure-configuration/network-configuration/network-proxy-configurations.md) — Routes network requests through system or custom proxies to bypass network restrictions. ([source](https://cdn.jsdelivr.net/gh/nilaoda/n_m3u8dl-cli@master/README.md))
- [Network Traffic Managers](https://awesome-repositories.com/f/networking-communication/network-traffic-managers.md) — Manages data flow and bypasses server restrictions through custom HTTP header and proxy configurations.
- [Resumable Downloads](https://awesome-repositories.com/f/networking-communication/resumable-downloads.md) — Tracks transfer progress to restart interrupted downloads from the last successful segment. ([source](https://cdn.jsdelivr.net/gh/nilaoda/n_m3u8dl-cli@master/README.md))
- [Multi-threaded Downloading](https://awesome-repositories.com/f/networking-communication/resumable-downloads/multi-threaded-downloading.md) — Utilizes a thread pool to download multiple media fragments concurrently for maximum throughput.

### Web Development

- [Batch and Resumable Downloaders](https://awesome-repositories.com/f/web-development/download-managers/video-downloaders/batch-and-resumable-downloaders.md) — Processes multiple video streams simultaneously by importing lists of URLs from text files. ([source](https://nilaoda.github.io/N_m3u8DL-CLI/SimpleGUI.html))
