Privacy statement
From PRIVACY.md:HLS Downloader respects your privacy. We do not collect usage data, host a server, or include analytics.
What this means
No data collection
The extension does not:- Track which websites you visit
- Log which videos you download
- Record your browsing history
- Collect analytics or telemetry
- Send usage statistics
No external servers
There are no backend services. The extension:- Does not connect to third-party APIs
- Does not upload video content
- Does not phone home for updates or tracking
- Operates entirely within your browser
No analytics packages
The codebase contains:- No Google Analytics
- No tracking pixels
- No third-party monitoring tools
- No crash reporting services
You can verify this by inspecting the source code at github.com/puemos/hls-downloader
How local processing works
Every step of the download process happens in your browser:1. Stream detection
The extension monitors network requests using the browser’swebRequest API:
manifest.json
.m3u8) is detected:
- The URL is captured locally
- No external requests are made
- The data stays in browser memory
2. Download and storage
Video and audio segments are:- Downloaded directly from the original source
- Stored temporarily in IndexedDB (local browser database)
- Never uploaded or transmitted elsewhere
IndexedDB storage details
IndexedDB storage details
The extension uses IndexedDB for temporary storage:IndexedDB is a client-side storage API built into your browser. Data stored here:
- Remains on your computer
- Is not synced to cloud services
- Is automatically cleaned up after merging
3. Video merging with ffmpeg.wasm
The merge process uses WebAssembly (ffmpeg.wasm):- FFmpeg runs entirely in your browser tab
- No cloud encoding or processing
- No file uploads required
ffmpeg.wasm is a WebAssembly port of the popular FFmpeg tool. It runs in a sandboxed environment with no network access.
100% local merge with ffmpeg.wasm
A WebAssembly build of FFmpeg runs right inside your tab, muxing the chosen audio + video into a single MP4.
- Nothing is uploaded, keeping your files private.
4. Final download
Once merging completes:- The browser creates a local Blob URL
- Your browser’s download manager saves the file
- Temporary data is cleaned from IndexedDB
Permissions explained
The extension requests several permissions. Here’s why each is needed:| Permission | Purpose | Privacy impact |
|---|---|---|
webRequest | Detect HLS playlists in network traffic | Local monitoring only, no data sent |
storage | Save user preferences | Stored locally in browser |
unlimitedStorage | Handle large video files in IndexedDB | Local storage only |
downloads | Trigger browser download of merged video | Uses browser’s built-in download |
tabs | Identify which tab detected a stream | Local context only |
http://*/*https://*/* | Monitor requests on all sites | Required to detect HLS on any page |
offscreen (MV3) | Create offscreen document for Blob URLs | Local document, no network access |
Source code transparency
HLS Downloader is fully open source under the MIT License:- View all code at github.com/puemos/hls-downloader
- Audit the entire codebase
- Build from source to verify no modifications
- Submit issues or pull requests
Building from source
You can compile the extension yourself to ensure it matches the published version:Data retention
The extension uses browser storage for:Temporary data (automatically cleared)
- Downloaded video/audio segments in IndexedDB
- Blob URLs for merged files
- Processing progress state
Persistent data (stored until you clear it)
- User preferences (quality settings, UI state)
- Extension configuration
Control: Cleared when you:
- Uninstall the extension
- Clear browser data
- Reset extension storage
How to clear extension data
How to clear extension data
Firefox:
- Open
about:addons - Find HLS Downloader
- Click “Remove” to uninstall (clears all data)
- Open
chrome://extensions/oredge://extensions/ - Find HLS Downloader
- Click “Remove” to uninstall (clears all data)
- Firefox:
about:preferences#privacy→ Clear Data - Chrome:
chrome://settings/clearBrowserData
Third-party code
The extension uses these third-party libraries (all run locally):- ffmpeg.wasm - Video merging (no network access)
- React - UI rendering (local only)
- Redux - State management (local only)
pnpm-lock.yaml to ensure reproducible builds.
Browser vendor policies
While HLS Downloader doesn’t collect data, browser vendors may:- Track extension installations (for store statistics)
- Monitor crashes (through browser crash reporters)
- Collect telemetry (if enabled in your browser settings)
To minimize browser telemetry, check your browser’s privacy settings. The extension itself adds no additional tracking.
Legal considerations
Privacy and legality are separate concerns:- Privacy: The extension doesn’t collect or share your data
- Legality: You’re responsible for ensuring you have rights to download content
This extension is designed for downloading video content that you own or have authorization to access. It is prohibited to use this tool for downloading copyrighted content without permission. Users are solely responsible for their actions.
Questions or concerns?
If you have privacy questions:- Review the source code directly
- Open an issue on GitHub
- Submit a pull request to improve privacy documentation
Related resources
- Build variants - Understand different distribution versions
- Manifest versions - Learn about browser architectures
- MIT License
- Full disclaimer