Is M3U8 Downloader safe?
M3U8 Downloader fetches and merges HLS video segments from user-supplied URLs and saves them locally as .ts or .mp4 files.
The extension's options page accepts an M3U8 playlist URL, fetches each .ts segment in parallel (up to 6 concurrent threads), and concatenates them into a single file downloaded through the browser. AES-128 encrypted streams are supported via a bundled decryptor. The options page HTML includes an ad-network script tag (sillinesswoollen.com) and Google Analytics and Microsoft Clarity integrations, all of which are blocked from executing by the manifest's strict content security policy.
AI-generated. Findings may contain errors. Those marked Verified have been manually reviewed.
Publishers can request a review.
Findings
Options Page References a Blocked Remote Script
M3U8 Downloader's options page references a remote script at sillinesswoollen.com.
The manifest's extension-page CSP allows scripts only from the extension itself, so Chrome blocks that script before any request or user data is observed.
You open the extension's options page.
The page contains a remote script reference that Chrome blocks under the extension's declared script policy.
| Field | Value | Why it matters | |
|---|---|---|---|
Remote script host | sillinesswoollen.com | This names the outside site the options page points to. | |
Remote script path | //sillinesswoollen.com/6a981008087a0a519c722c43126e8e0b/invoke.js | This is the exact script location embedded in the page. | |
Options page | index.html | This is the extension page that contains the remote script reference. | |
Script policy | script-src 'self'; object-src 'self' | This browser-enforced rule allows extension-page scripts only from the extension package. | |
Host permission scope | https://*/* | Shows the extension can access HTTPS pages broadly, though the blocked options-page script does not run under the shipped policy. |
The shipped options page contains the remote script, and the manifest blocks it
<body>
<div id="app"></div>
<script
async="async"
data-cfasync="false"
src="//sillinesswoollen.com/6a981008087a0a519c722c43126e8e0b/invoke.js"
></script>
</body>{
"options_ui": {
"page": "index.html",
"open_in_tab": true
},
"background": {
"service_worker": "background.js"
},
"host_permissions": ["https://*/*"],
"content_security_policy": {
"extension_pages": "script-src 'self'; object-src 'self'"
}
}- sillinesswoollen.com
Remote script host referenced from the extension options page.