You can download HLS videos and save M3U8 streams as MP4 in four main ways: a browser extension, FFmpeg, VLC, or a desktop HLS downloader. The best method depends on whether you already have a valid M3U8 playlist, prefer a graphical interface, or want to download videos from a supported streaming service.
For a simple HLS stream playing in your browser, an extension is usually the easiest place to start. If you already have the M3U8 URL, FFmpeg gives you more direct control, while VLC offers a graphical alternative. For supported streaming services, batch downloads, and larger offline libraries, a desktop downloader such as KeepStreams can simplify the process.
How HLS and M3U8 Downloads Work
An M3U8 file is a playlist, not the video itself. It tells the player where to find video segments and, in some cases, separate audio or subtitle tracks. An HLS downloader retrieves those segments and combines or remuxes them into a playable local file such as MP4.
From an M3U8 Playlist to an MP4 File
A typical HLS download follows the same basic process:
- Locate or detect the M3U8 playlist used by the video.
- Select the video quality and the required audio or subtitle tracks.
- Download the media segments referenced by the playlist.
- Combine or remux those streams into a local MP4 or MKV file.
HLS is the streaming technology, M3U8 is the playlist format, and MP4 or MKV is the local video container. Understanding the difference makes it much easier to diagnose problems such as missing audio, expired URLs, incomplete files, or failed segment requests.
Does Converting M3U8 to MP4 Reduce Quality?
Not necessarily. If a tool simply remuxes the selected HLS video and audio streams into an MP4 container without re-encoding them, the original video quality can be preserved. Quality may change if the workflow re-encodes the video or selects a lower-resolution rendition.
A master M3U8 playlist can also contain multiple video qualities, audio languages, and subtitle tracks. Saving only the highest video stream without its matching audio track can result in an MP4 file with no sound.
Which HLS Download Method Should You Use?
| Method | Best for | Skill level | Output | Main limitation |
|---|---|---|---|---|
| Browser extension | Simple HLS streams detected in a browser | Beginner | Usually MP4 | Browser and session limits |
| FFmpeg | Users who already have a valid M3U8 URL | Intermediate | MP4, MKV, and more | Command-line setup |
| VLC | M3U8 downloads with a graphical interface | Beginner to intermediate | Depends on conversion profile | Less control than FFmpeg |
| KeepStreams | Supported streaming services and batch downloads | Beginner | MP4 or MKV | Requires desktop installation |
Method 1: Download HLS Videos with a Browser Extension
A browser extension is the easiest option when an HLS video is already playing in Chrome and the extension can detect its M3U8 playlist. You normally do not need to find the playlist URL manually.
The three browser tools below follow a similar workflow: install the extension, open the video page, let the extension detect the HLS stream, choose the available rendition, and save the result.
HLS Downloader
As of August 2026, HLS Downloader is listed as version 0.1.4 in the Chrome Web Store, last updated on August 7, 2025. It can detect HLS playlists on webpages or work with a playlist URL, then download and merge the referenced media segments.
Install the extension from the Chrome Web Store and review the permissions it requests before enabling it.
HLS Downloader is a practical first choice for a straightforward HLS stream. If the same stream repeatedly fails with expired URLs, missing tracks, or browser storage errors, switching methods is usually more useful than repeating the same download.
Douga Getter
Douga Getter, formerly Video Getter, is currently listed as version 3.2.1, updated September 26, 2025. It works as a lightweight browser option for detecting downloadable media on compatible webpages, although results still depend on how each site delivers its video.
Check the Douga Getter Chrome Web Store listing for its current browser requirements and permissions.
Douga Getter is most useful as a quick compatibility check for an ordinary webpage. For long queues or repeated downloads, a more structured local workflow is easier to manage.
Stream Recorder
Stream Recorder is another established Chrome option for HLS and M3U8 streams. Version 2.2.9 was last updated on August 1, 2025, and the extension can save both live and archived HLS streams as MP4 without re-encoding.
The Stream Recorder Chrome Web Store listing shows its current availability and requested permissions.
Stream Recorder can also handle live HLS sessions, but very long recordings may be less convenient in a browser because of local memory and storage use.
Method 2: Convert M3U8 to MP4 with FFmpeg
If you already have a valid M3U8 URL, FFmpeg is one of the fastest and most flexible ways to save the HLS stream as MP4. It is particularly useful when you want to control the output directly instead of relying on a browser extension.
Basic FFmpeg Command for M3U8 to MP4
For a valid M3U8 playlist, the simplest command is:
ffmpeg -i "https://example.com/video.m3u8" -c copy output.mp4 The -c copy option tells FFmpeg to copy the existing video and audio streams into the MP4 container without re-encoding them. This is usually much faster than converting the video and helps preserve the original source quality.
You can also use a local M3U8 file as the input:
ffmpeg -i "playlist.m3u8" -c copy output.mp4 How to Download an HLS Stream with FFmpeg
- Install FFmpeg on your Windows, Mac, or Linux computer.
- Confirm that the M3U8 URL is still valid and playable.
- Run the FFmpeg command with the M3U8 playlist as the input.
- Wait for FFmpeg to retrieve the referenced media segments.
- Open the finished MP4 and confirm the video, audio, and duration.
If the stream uses separate audio or subtitle renditions, FFmpeg may need to select or map the correct streams. A partial file or missing audio usually indicates that the playlist structure or session requirements need to be checked rather than simply running the same command again.
When FFmpeg Does Not Work
FFmpeg works best when the playlist and its segment URLs remain valid throughout the download. Short-lived URLs, required cookies or headers, separate authentication, or protected playback can cause 403 errors or incomplete files.
If you repeatedly receive the same access error after refreshing the valid stream session, a browser or desktop workflow that manages the playback session for you may be easier.
Method 3: Save an M3U8 Stream as MP4 with VLC
VLC is useful if you have an M3U8 URL but prefer a graphical interface instead of the FFmpeg command line. First confirm that VLC can play the stream, then use its Convert/Save function to export it as a local file.
How to Convert M3U8 to MP4 with VLC
- Open VLC and choose Media > Open Network Stream.
- Paste the M3U8 URL into the network URL field.
- Confirm that VLC can play the HLS stream correctly.
- Return to Media and choose Convert/Save.
- Select an appropriate video profile and destination file.
- Start the conversion and check the exported file when it finishes.
VLC is easier to approach than FFmpeg for many users, but its conversion profiles offer less transparent control over stream mapping and remuxing. If the result is missing audio or needs more precise stream selection, FFmpeg is usually the better technical option.
Fix Common HLS and M3U8 Download Errors
Detecting an M3U8 playlist is only the first stage of an HLS download. Authentication, expired segment URLs, separate audio tracks, encryption, and local storage can still interrupt the process.
| Symptom | Likely cause | What to try |
|---|---|---|
| 403 error | Missing or expired session cookies, headers, or URL | Refresh the playback session and retry with a fresh playlist |
| 404 or partial file | Playlist or media segments expired | Get a fresh M3U8 URL |
| Video has no audio | Audio is stored in a separate rendition | Select or combine the correct audio track |
| AES-key error | The key request requires the original session | Retry within the valid playback session |
| DRM warning | The stream uses protected playback | Use the platform's available official viewing or offline option |
| Browser stops or duplicates files | Browser memory or local storage pressure | Switch to FFmpeg or a desktop workflow |
A useful troubleshooting rule is to refresh the stream once, confirm that the M3U8 playlist still works, and identify which stage is failing. If the same 403, missing-track, or browser-storage problem returns, switch methods instead of repeating the same browser action.
Method 4: Download HLS Videos with KeepStreams
If the video comes from a supported streaming service rather than a standalone M3U8 URL, a desktop downloader can simplify the process. KeepStreams provides a built-in browser, batch downloads, MP4/MKV output, and Windows/macOS support, so you do not need to manually locate and process every playlist yourself.
KeepStreams for Supported Streaming Services
This article is published by KeepStreams. In this comparison, KeepStreams is the desktop option for users who want to save supported streaming videos as local files on Windows or Mac.
KeepStreams supports Windows and macOS, covers 3,000+ supported sites, offers batch downloads, saves videos as MP4 or MKV, and supports resolutions up to 4K when available from the source and supported service.
It is especially useful when you regularly download multiple videos or episodes from supported services and want the downloads, output settings, and completed files managed in one desktop application. For a single public M3U8 URL, FFmpeg or a browser extension may still be the faster option.
How to Download Videos with KeepStreams
The basic workflow is straightforward: install KeepStreams, open a supported streaming service in the built-in browser, select the video, choose the available output settings, and add it to the download queue.
- Download and install KeepStreams from the KeepStreams website.
- Open the supported service under VIP Services or enter the video URL in the built-in browser.
- Sign in to the streaming service when required and open the video you want to save.
- Choose the available video quality, audio, subtitles, and MP4 or MKV format.
- Start the download and monitor the task from the Downloads section.
For larger supported jobs, the desktop queue makes it easier to keep active downloads and completed files in one place instead of manually processing each M3U8 playlist.
Browser Extension Safety Tips
Browser extensions can be convenient for simple HLS downloads, but they may need access to page content, downloads, tabs, or network activity in order to detect media streams.
- Install HLS downloader extensions from the browser's official extension store.
- Review the permissions requested before enabling an extension.
- Avoid entering streaming-account credentials into unrelated online download sites.
- Keep enough local storage available for the selected video quality and temporary media segments.
- For long downloads or repeated browser failures, switch to FFmpeg or a desktop workflow.
If a tool requests permissions unrelated to detecting or saving the stream, choose a more limited alternative rather than granting unnecessary browser access.
Conclusion
For a simple HLS stream, start with a browser extension. If you already have a valid M3U8 URL, FFmpeg is the fastest option for remuxing it to MP4 without re-encoding, while VLC is easier if you prefer a graphical interface.
For supported streaming services, batch downloads, or larger offline video libraries, KeepStreams provides a more convenient Windows and Mac workflow with a built-in browser, MP4/MKV output, and managed download queues. The best method depends on where the stream comes from and how much control you need over the final file.
FAQ
Can I convert an M3U8 file to MP4 with FFmpeg?
Yes. For a valid M3U8 playlist, FFmpeg can usually remux the stream into MP4 with ffmpeg -i "playlist.m3u8" -c copy output.mp4. Because -c copy avoids re-encoding, the source video quality can normally be preserved.
Can I download an HLS stream on iPhone or Android?
Desktop Chrome extensions are not generally available on iPhone or iPad in the same way as on a computer. Android offers more browser and app options, but support still depends on the website and the HLS stream. For repeated downloads, a Windows or Mac workflow usually provides more control.
Does saving HLS as MP4 reduce video quality?
Not if the tool simply remuxes the selected video and audio streams without re-encoding. Quality can change when the video is re-encoded or when the workflow selects a lower-resolution rendition.
Why does my downloaded M3U8 video have no audio?
Some HLS playlists store audio separately from the video rendition. If the downloader saves only the video stream, the result may be silent. Select or map the matching audio track and combine it with the video when exporting the final MP4.
Can I save a live HLS stream before it ends?
Some browser and desktop tools can save a live HLS stream while it is playing. For longer live sessions, browser memory and storage limits can become a problem, so a local desktop workflow with visible download progress is generally easier to manage.
