How to Download HLS Streaming Videos (M3U8) from Any Website
By Canvas Assistant Team · March 6, 2026 · 10 min read

You find a video online, right-click it, and there's no "Save Video As" option. Or you try saving the page source and can only find a .m3u8 file rather than an MP4. This is HLS — HTTP Live Streaming — and it's the reason most streaming video on the web can't be downloaded with a simple right-click.
HLS is used by Canvas LMS (via Kaltura), Panopto, university lecture systems, corporate training platforms, and thousands of other websites. This guide explains what HLS is, how to find the M3U8 URL, and three methods to download the video as a proper MP4 file.
What Is HLS Streaming and Why Can't You Just "Save As"?
HLS (HTTP Live Streaming) is a streaming protocol developed by Apple and now used across virtually all major video platforms. Instead of serving one large video file, HLS works by:
- Breaking the video into small segments — typically 2–10 seconds each — stored as
.tsfiles - Creating a
.m3u8playlist file that lists the order and URLs of all segments - Your browser downloads segments continuously as you watch, rather than downloading the whole file upfront
This design is great for streaming — it adapts quality based on your connection, buffers smoothly, and loads faster than downloading a single large file. But it means there is no single video file to save. Right-clicking and "Save As" just downloads the playlist file, not the video content.
To download an HLS stream, you need a tool that reads the playlist, downloads all the segments, and reassembles them into a single MP4 file. Here are three ways to do that.
How to Find the M3U8 URL
Methods 1 and 2 require you to find the M3U8 URL first. Here's how:
- Open Chrome and navigate to the page with the video
- Press F12 (or Ctrl+Shift+I) to open DevTools
- Click the Network tab
- Press Ctrl+R to reload the page
- Start playing the video
- In the Network filter box, type m3u8
- Look for a request with a
.m3u8filename — usually labeled something likemaster.m3u8,playlist.m3u8, orindex.m3u8 - Right-click that request → Copy → Copy URL
Tip: finding the right M3U8 file
You may see multiple .m3u8 files — a master playlist and severalvariant playlists for different quality levels. The master playlist lists all quality options. Use the master playlist URL with FFmpeg to download the best available quality automatically.
Method 1 — Using FFmpeg (Technical Users)
FFmpeg is a free, open-source command-line tool that handles virtually every video format and streaming protocol. It's the most reliable method for downloading HLS streams.
Install FFmpeg:
- Mac:
brew install ffmpeg(requires Homebrew) - Windows: Download from ffmpeg.org and add to your PATH
- Linux:
sudo apt install ffmpeg(Ubuntu/Debian)
Download the stream:
ffmpeg -i "https://example.com/path/to/playlist.m3u8" -c copy output.mp4Replace the URL with the M3U8 URL you copied from DevTools. The -c copy flag copies the video without re-encoding — faster and preserves the original quality.
If the URL contains an authentication token (you'll see ?token=or similar in the URL), the token may expire. Run the FFmpeg command immediately after copying the URL while the page is still open.
Pros: Reliable, handles all quality levels, widely supported.
Cons: Requires command-line comfort, FFmpeg installation, and finding the URL manually.
Method 2 — Using VLC Media Player
VLC can open network streams, including M3U8 URLs, and record them to a local file. No command line needed.
- Open VLC and go to Media → Open Network Stream (Ctrl+N)
- Paste the M3U8 URL into the URL field
- Click the dropdown arrow next to Play and select Convert
- In the Convert dialog, choose Video – H.264 + MP3 (MP4) as the profile
- Set the destination file path (e.g.,
lecture.mp4) - Click Start — VLC downloads and converts the stream to MP4
VLC is slower than FFmpeg because it re-encodes the video. For a 1-hour lecture, expect 10–20 minutes of processing time depending on your CPU. The output quality depends on the profile you select — use a high-bitrate MP4 profile for best results.
Skip the technical setup entirely
Canvas Assistant automatically detects HLS streams in your browser and downloads them as MP4 — no URL copying, no command line, no FFmpeg installation.
Download for Chrome — FreeMethod 3 — Using Canvas Assistant (Simplest)
Canvas Assistant detects HLS streams automatically when a video is playing in your browser. You don't need to find the M3U8 URL or install any additional software.
- Install Canvas Assistant from the Chrome Web Store
- Navigate to the webpage with the HLS video and start playing it
- Click the Canvas Assistant icon in your Chrome toolbar
- Click Download next to the detected stream
- The extension downloads all segments and assembles them into a single MP4 file
This method works on Canvas LMS (Kaltura), Panopto, Blackboard, university lecture systems, and most streaming websites that use HLS. For educational platforms specifically, see our guides on downloading Canvas LMS videos and downloading Panopto videos.
Common Problems and Solutions
DRM-protected content
DRM (Digital Rights Management) encrypts the video stream using systems like Widevine or FairPlay. These protections operate at the hardware level — the browser decrypts for display only. No method in this guide can download DRM-protected streams. Streams from Netflix, Amazon Prime Video, Disney+, and similar services all use DRM.
Encrypted HLS segments
Some HLS streams encrypt individual segments (using AES-128). The M3U8 playlist includes the encryption key, and FFmpeg handles this automatically in most cases. Canvas Assistant also handles standard AES-encrypted HLS. If you still get an unplayable file, the encryption key may be server-session-specific and expired.
Authentication tokens in URLs
Many educational platforms include time-limited tokens in their M3U8 URLs (e.g.,?token=abc123&expires=1234567890). Once the token expires, the download fails. Run your download immediately after copying the URL while the page is still open. Canvas Assistant handles tokens automatically since it works from the live browser session.
FAQ
What's the difference between HLS and MP4?
MP4 is a single video file you download directly. HLS breaks the video into small segments (.ts files) described by a playlist (.m3u8). Right-click Save As doesn't work on HLS because there's no single file to save — you need a tool to download all segments and reassemble them.
Can I download DRM-protected videos?
No. DRM encrypts the stream at the hardware level using systems like Widevine or FairPlay. The methods here work for standard HLS streams without DRM. Streams from Netflix, Amazon Prime Video, and similar subscription services use DRM and cannot be downloaded.
How to download HLS video on Mac?
On Mac, install FFmpeg via Homebrew (brew install ffmpeg) and run:ffmpeg -i "your_m3u8_url" -c copy output.mp4Alternatively, Canvas Assistant handles HLS downloads without any setup and works on both Mac and Windows.
Conclusion
HLS streaming is why right-click-save doesn't work on most online videos. To download an HLS stream, you need a tool that reassembles the segments: FFmpeg for full technical control, VLC for a GUI-based approach, or Canvas Assistant for a no-setup browser-based method. All three work for standard HLS streams — DRM-protected content is the one scenario none of them can handle.
Canvas Assistant
Download HLS streaming videos from Canvas LMS, Panopto, Blackboard, and any website. One click — no command line, no FFmpeg setup required.
Download for Chrome — Free