Comparison · CLI & Open-Source · HLS

Free M3U8 Downloader Tools (CLI & Open-Source) for 2026

Five free command-line and open-source M3U8 downloader tools tested on real HLS streams. ffmpeg, yt-dlp, N_m3u8DL-CLI, Streamlink, VLC. Commands, AES-128 handling, headers, and which tool fits which job. This guide is CLI and OSS only.

Looking for browser extensions instead? See our HLS Downloader Chrome Extension comparison for the Chrome/Edge/Brave route. This page covers terminal-based and open-source tools only.

By Romain Gouraud, founder 10 min read

Quick answer

The 5 best free CLI and open-source M3U8 downloader tools for 2026 are: ffmpeg (the universal video toolkit, infinite control, AES-128 support), yt-dlp (smarter site-aware extraction, 1,000+ platform handlers), N_m3u8DL-CLI (parallel segment download, popular on Windows, AES-128 friendly), Streamlink (live HLS capture, Twitch and live broadcast specialty), and VLC (real-time stream record, last-resort GUI option). All five are 100% free with no usage caps. Trade-off: command-line knowledge required. Pick by job: ffmpeg for general remuxing, yt-dlp for known sites, N_m3u8DL-CLI for Windows parallel, Streamlink for live, VLC for emergency capture.

Searching for a "free m3u8 downloader" returns a chaotic mix: open-source CLIs, freemium browser extensions, sketchy online converters, suspect GUI bundles. This guide deliberately narrows the scope to command-line tools and standalone open-source applications. No browser extensions (covered in our HLS Downloader Chrome Extension guide), no remote-server converters, no closed-source freeware. Just the five CLI and OSS options that genuinely work on real HLS streams.

All five tools here focus on legitimate use cases: saving content you own, archiving courses you purchased, capturing publicly licensed streams. None of them bypass DRM systems like Widevine or FairPlay used by Netflix, Disney+, or Prime Video. If you need background on the format itself, start with our M3U8 and HLS explainer.

1. Scope: why this guide is CLI & open-source only

"Free m3u8 downloader" is a noisy query. To stay useful, this guide draws a hard scope line:

The five CLI/OSS tools below cover every legitimate HLS download workflow you will encounter, from a quick remux to live stream capture. The trade-off is that you will spend time in a terminal. If terminal is a non-starter, jump to the Chrome extension comparison instead.

2. Tool 1: ffmpeg (CLI, 100% free, infinite power)

ffmpeg is the reference implementation for video processing on the command line. It is free, open source (LGPL/GPL), and has no usage limits of any kind. For m3u8 downloads, it handles single-quality playlists, master playlists, AES-128 encrypted streams, and streams with separate audio tracks - all in one command.

Basic download command

ffmpeg -i "https://cdn.example.com/playlist.m3u8" -c copy output.mp4

The -c copy flag muxes the existing streams without re-encoding. Output keeps the original bitrate and quality. For a 30-minute 1080p stream, the command finishes in the time needed to download the segments - typically 2 to 4 minutes on a normal connection.

Download with authentication headers

If the stream requires cookies or a Referer header, capture them from browser DevTools and pass them directly:

ffmpeg \
  -headers $'Referer: https://source.example.com/\r\nCookie: session=abc123\r\n' \
  -i "https://cdn.example.com/playlist.m3u8" \
  -c copy \
  output.mp4

See our guide on how to find the m3u8 URL of any stream for the exact DevTools steps to capture the URL and headers.

Limits of ffmpeg

For a deeper look at the ffmpeg conversion workflow, the convert m3u8 to mp4 detailed guide covers the full set of flags, error handling, and common pitfalls.

3. Tool 2: yt-dlp (CLI, free, smarter extraction)

yt-dlp is a fork of youtube-dl with active maintenance, faster downloads, and site-specific extractors for over 1,000 platforms. Like ffmpeg, it is 100% free and open source with no usage limits. Its advantage over raw ffmpeg is automatic URL and header extraction: paste the page URL, and yt-dlp finds the m3u8, handles auth cookies, and selects the best quality automatically.

Basic usage

# Download best quality from a supported site
yt-dlp https://platform.example.com/video/12345

# Force MP4 output container
yt-dlp --merge-output-format mp4 https://platform.example.com/video/12345

# Pass browser cookies for authenticated streams
yt-dlp --cookies-from-browser chrome https://platform.example.com/video/12345

What yt-dlp does better than raw ffmpeg

Limits of yt-dlp

For streams on platforms without a yt-dlp extractor - custom LMS, corporate training portals, Bunny.net-served content - the tool falls back to generic m3u8 handling, which works but loses the smart cookie injection. That is where a browser extension has an edge.

4. Tool 3: N_m3u8DL-CLI (Windows-friendly, parallel)

N_m3u8DL-CLI is an open-source command-line HLS downloader that has become the default choice for many Windows users. The original C# implementation (nilaoda/N_m3u8DL-CLI) ships as a single .exe with no install step, and its newer Go rewrite (N_m3u8DL-RE) adds DASH/MPD support and a cleaner UX. Source: github.com/nilaoda/N_m3u8DL-CLI and the newer N_m3u8DL-RE.

Basic command

# Classic N_m3u8DL-CLI (C#)
N_m3u8DL-CLI.exe "https://cdn.example.com/playlist.m3u8" --workDir downloads --saveName myvideo

# Newer N_m3u8DL-RE (Go rewrite)
N_m3u8DL-RE "https://cdn.example.com/playlist.m3u8" --save-name myvideo

With headers for authenticated streams

N_m3u8DL-CLI.exe "https://cdn.example.com/playlist.m3u8" \
  --headers "Referer:https://source.example.com/|Cookie:session=abc123" \
  --workDir downloads --saveName myvideo

Why N_m3u8DL-CLI

Limits of N_m3u8DL-CLI

Streamlink is an open-source CLI (Python-based) focused on live stream extraction. Where ffmpeg and yt-dlp shine on VOD, Streamlink shines on Twitch, YouTube Live, and other broadcast platforms. It is built on a plugin system that handles platform-specific quirks (ad-skipping, auth tokens, stream URL resolution) which is exactly where generic tools struggle on live HLS.

Basic command

# Play a Twitch live stream
streamlink https://www.twitch.tv/example best

# Save to file
streamlink --output my_stream.ts https://www.twitch.tv/example best

# Pipe into ffmpeg for direct MP4 muxing
streamlink --stdout https://www.twitch.tv/example best | ffmpeg -i - -c copy live.mp4

Why Streamlink for live

Limits of Streamlink

For more detail on the live capture workflow, see our dedicated live HLS stream download guide.

6. Tool 5: VLC stream record (open-source GUI last resort)

VLC is the most widely installed media player in the world and it can record network streams, including HLS. It is free, open source, and available on every platform. It is also not a dedicated downloader, and that distinction matters.

How to record an m3u8 stream in VLC

  1. Open VLC. Go to Media > Open Network Stream.
  2. Paste the m3u8 URL and click Show more options. Check the Stream output box.
  3. In the stream output dialog, select File as the destination and set the format to MP4.
  4. Click Stream. VLC plays and records simultaneously in real time.

Alternatively, use the command line interface: vlc https://cdn.example.com/playlist.m3u8 --sout="#file{dst=output.mp4}" vlc://quit

Why VLC is a last resort for m3u8

VLC is useful for a quick one-off capture of a live stream when no other tool is available. For live HLS specifically, the live HLS stream capture guide covers more reliable options. For any pre-recorded stream, ffmpeg or a browser extension is faster and more reliable.

7. Side-by-side comparison table

Tool License Interface Handles AES-128 Handles auth / cookies Live stream Best for
ffmpeg LGPL/GPL CLI Yes Yes (manual headers) Yes Batch, scripting, full control
yt-dlp Unlicense CLI Yes Yes (auto on 1,000+ sites) Partial Supported platforms, smart auth
N_m3u8DL-CLI MIT CLI Yes Yes (--headers flag) Partial Windows users, parallel VOD download
Streamlink BSD-2 CLI Yes (via plugins) Yes (plugin-handled) Yes (specialty) Twitch, YouTube Live, BBC iPlayer
VLC GPL-2 GUI Partial No Yes (real-time only) Quick capture, no other tool available

For most users who are comfortable with a terminal, yt-dlp is the best general-purpose free tool: smarter than raw ffmpeg, no usage caps, and handles 1,000+ sites automatically. ffmpeg remains the universal backbone for batch and custom workflows. N_m3u8DL-CLI is the easiest single-binary option on Windows. Streamlink wins on live streams. VLC is the fallback when nothing else is installed.

If a CLI is not your style and you prefer point-and-click in your browser, the HLS Downloader Chrome Extension comparison covers that route.

8. Frequently asked questions

Is ffmpeg really free for m3u8 download?

Yes, ffmpeg is fully free and open source under the LGPL/GPL license. There is no download cap, no watermark, and no paid tier. The only cost is time: you need to install it and learn the command syntax. A single ffmpeg command can download, decrypt, and mux an m3u8 into MP4 without any license fee.

What is the catch with free online m3u8 converters?

Three main problems: they run on a remote server with no access to your cookies or session tokens, so they fail on any authenticated or paid stream; most do not handle AES-128 encryption correctly and output static or broken files; and your URL and metadata pass through a server you do not control, which is a privacy concern for private content.

Can I use yt-dlp on Windows easily?

Yes. Download the yt-dlp.exe binary from the official GitHub releases page, place it in a folder on your PATH (or the same folder as your command prompt), and run it from Command Prompt or PowerShell. No Python install is required for the pre-built Windows binary. The command yt-dlp URL handles m3u8 detection automatically for most streaming sites.

What is N_m3u8DL-CLI and when should I use it?

N_m3u8DL-CLI is an open-source command-line HLS downloader popular on Windows. It supports parallel segment download, AES-128 decryption, custom headers, and quality selection via interactive prompt. The newer N_m3u8DL-RE Go rewrite also adds DASH support. Available on GitHub at nilaoda/N_m3u8DL-CLI and nilaoda/N_m3u8DL-RE.

What is Streamlink for?

Streamlink is an open-source CLI focused on live stream extraction. It supports Twitch, YouTube Live, BBC iPlayer, and 100+ live platforms via plugin handlers. For VOD HLS, ffmpeg or yt-dlp are better choices. For live HLS capture, Streamlink piped into ffmpeg is the standard open-source recipe.

Can VLC download an m3u8?

VLC can record a stream while playing it using the Convert/Save dialog or the --sout flag. It is not designed as a dedicated downloader: it captures in real time (60 minutes of video takes 60 minutes to save), cannot reliably mux separate audio and video HLS playlists, and does not expose quality selection. Use ffmpeg or a dedicated tool for anything beyond a quick capture.

Is there a 100% free m3u8 downloader for unlimited use?

All five tools covered here (ffmpeg, yt-dlp, N_m3u8DL-CLI, Streamlink, VLC) are 100% free open-source CLIs/applications with no usage caps. They handle most m3u8 streams including AES-128 encrypted ones. The trade-off is command-line knowledge. If you prefer a Chrome browser extension instead of CLI, see our HLS Downloader Chrome Extension comparison for the browser route.

About the author

RGC Digital LLC builds Vidora, a Pro video downloader Chrome extension for Vimeo, Bunny.net, HLS streams, and MP4. Based in Albuquerque, NM. We write about video tooling, streaming protocols, and Chrome extension engineering.

Related guides

V

Vidora Engineering

Vidora is built and maintained by RGC Digital LLC, a team of engineers who have been working on browser-based HLS, DASH and MP4 video extraction since 2024. We test every method we publish on real streams from Vimeo, Bunny.net, Wistia, Apple HLS samples and AES-128 encrypted CDNs.