Last updated: September 22, 2026
Clipwell ("we", "our", or "the extension") is a browser extension designed to help users detect and organize media loaded by their active browser tabs. We believe privacy is a fundamental human right. Clipwell does its work in your browser, with no analytics, no telemetry, and no tracking, and it sends your browsing history nowhere. The only data it ever sends to the developer is the Plus check described in section 4: a Stripe Checkout Session id and a random install id. If you buy Plus, Stripe collects your email address and payment details on its own checkout page and shares the purchase record with the developer as the seller (section 4).
1. What Clipwell Does Not Collect
Clipwell has no analytics, no telemetry, and no tracking, and we do not sell any data. Apart from the Plus check (section 4), the extension sends the developer nothing. A webhook export goes only to the URL you entered, and a Plus payment is made on Stripe’s own page (sections 3 and 4). If you buy Plus, the developer also receives the purchase record from Stripe (below).
- No account, name or email from the extension. Clipwell has no account, and the extension does not send the developer your name, email address or physical address. The optional Plus check sends two ids tied to your purchase: the Stripe Checkout Session id (your Plus code) and a random install id (section 4). Clipwell’s own code never reads or stores your IP address, but Cloudflare, which runs the Plus verification worker, receives it with each Plus check, as any server receives the address a request comes from (section 4). The only id Clipwell creates is the random install id, made on your device and used only to count Plus devices (section 4). It is random and contains nothing about you or your browsing. If you buy or restore Plus, it is stored with your purchase at Stripe, so it is linked to that purchase; it is never linked to your browsing.
- Plus purchases go through Stripe. The extension never handles your card. If you buy Plus, Stripe collects your email address and payment details on its checkout page and shares the purchase record with the developer as the seller: your email address, the name and billing country (and postal code, where required) you enter at checkout, the amount, limited payment details such as the card brand and last four digits (Stripe never shares the full card number), and the fraud-check details Stripe shows sellers, such as the IP address and approximate location of the device you paid from. Support finds your purchase by its receipt email when you ask for help, and the random install id is stored in that purchase’s Stripe Checkout Session (section 4).
- No browsing history. Clipwell does not send your browsing history, page contents, bookmarks, or downloaded files to the developer or to any third party. A file leaves your device only when you export it to a webhook URL you entered (section 4).
- No telemetry. We do not run any remote analytics software, usage tracking scripts, error telemetry, or third-party SDKs.
2. How Permissions Are Used
Clipwell uses its permissions in your browser to provide the extension's core features. What they read stays on your device, apart from the network requests described in sections 3 and 4:
- Storage (chrome.storage). Saves your preferences (theme, display options, detection sensitivity, custom profiles, filename templates, and site rules) on this device in chrome.storage.local so large rule lists are not capped by Chrome’s 8,192-byte sync item limit. Older installs may still have a leftover chrome.storage.sync copy that Clipwell migrates into local storage. Clipwell also keeps one random install id in chrome.storage.sync (chrome.storage.local if sync is unavailable), so a browser profile synced across computers counts as one Plus device; it is used only for Plus verification (section 4). Removing Clipwell or clearing its data deletes the install id from this browser, and a later install usually makes a new one, which counts as a new Plus device. Browser sync (Chrome Sync or Firefox Sync) may keep a copy while Clipwell is still installed on another browser synced to the same profile, in which case a reinstall reuses it. Your Plus code and any webhook URLs you enter are kept with your settings in chrome.storage.local. When you open Plus checkout from Settings, Clipwell also stores the time you opened it in chrome.storage.local (clipwell.plusCheckoutStartedAt) so the thank-you page can unlock Plus in this browser (section 4); it is ignored after two hours and removed once the verification service has answered, once a Restore succeeds, or once Clipwell finds it expired. Bookmarked items (Later) and favorite page links (Favourites) stay in chrome.storage.local. The temporary download queue and the tab media catalog (each open tab’s media list and current address, see Tabs) use chrome.storage.session. Apart from the Plus code and install id sent in the Plus check (section 4), no settings or lists are ever sent to our servers or any third party.
- Downloads (chrome.downloads). Manages file saving, pause, resume, and cancel actions through your browser's native download manager.
- Active tab (activeTab). Used only after you click the Clipwell toolbar icon, press a Clipwell keyboard shortcut, or open the Clipwell side panel. Chrome then grants temporary access to that one tab so Clipwell can list video and audio the page already loaded and save it. Chrome keeps that access until the tab navigates to another page or is closed; switching to another tab does not end it. Clipwell does not use activeTab to read other tabs or to run in the background.
- Scripting (scripting). By default, used only together with activeTab, after the same user gesture, to inject Clipwell’s local content.js into that tab (chrome.scripting.executeScript). The script finds HTML5 video and audio elements and the page resource log so Clipwell can show saveable media. Clipwell does not register a content script on all sites at install. If you later grant the optional all-sites access in Settings, Clipwell also injects the same local script into pages and frames as they finish loading, without a further click, so media on those pages is listed. If you turn on Floating video overlay in Settings, the same local script shows hover controls (Save, picture-in-picture, speed and volume boost) over most video players on the pages where it runs. A timed live HLS recording also runs in this local script, inside the tab: it reads the stream there and saves the file through the page, so it stops if you close the tab or a new page loads in it. Moving around inside a single-page site, where only the address changes, does not stop it. Save frame copies the playing video’s current frame (or, when the site blocks that, a screenshot of the visible tab) into an image saved on your device. The script is not injected on chrome:// pages or the Chrome Web Store.
- Optional network observation (chrome.webRequest). Only if you turn on “Read media headers on every site” in Settings. Clipwell’s listener is registered for all addresses with no request-type filter, so Chrome passes it the response headers of every request your tabs make. Clipwell reads only Content-Type, Content-Length and Content-Range, keeps only responses that are media or subtitles the player loaded, and drops every other response at once without storing it. A media or subtitle address it keeps is stored as-is, query string included, in that tab’s media list on your device, so a save can use the same address the player did; it is not sent to the developer. Clipwell never reads or logs request bodies, form submissions, Set-Cookie headers, or user credentials. Install does not grant this.
- Tabs (chrome.tabs). Reads the title and URL of the active tab to display card titles, generate clean filenames, and apply domain-specific rules you configured. Tab update events report every tab’s address as it changes: Clipwell keeps each open tab’s current address with that tab’s media list in chrome.storage.session (clipwell.mediaByTab), only to tell when the tab moves to another page and reset its list, and removes it when the tab closes. Session storage is cleared when the browser quits. Clipwell also checks tab addresses on your device to recognise the Clipwell Plus thank-you page. In the browser that opened checkout, within two hours and only while Plus is not already on, it reads the Plus code from that page’s address so Plus unlocks right away (section 4). No tab address leaves your device; only the Plus code read from that page is sent, with the install id, to the verification service.
- Side Panel (chrome.sidePanel). Renders the Clipwell user interface in Chrome's side panel for side-by-side convenience.
- Offscreen document (chrome.offscreen). Runs an in-memory worker document within Chrome to fetch and assemble unencrypted HLS and DASH segments into single video or audio files (including a clip you trimmed) without risking process interruption when the background worker sleeps.
- Optional host access. Install does not request access to all websites. The current tab is enough for the default scan-and-save path, and an ordinary file save does not ask for more. When Clipwell has to fetch something itself (joining a stream, saving subtitles, or a webhook export), Chrome may ask you to allow that one media host; you can decline. Broad host access is optional and only requested if you enable header watching in Settings.
3. Third-Party Services & Remote Code
Clipwell does not load or execute any remote code (no remote JavaScript, no external CDNs, no dynamic eval). All extension logic and assets are bundled locally in the extension package.
Apart from the small Plus verification worker described in section 4, Clipwell has no backend of its own and contacts none during normal operation: scanning, listing and saving media all happen inside your browser. Besides the optional exports and Plus verification described in the next section, Clipwell makes only two kinds of network request, and both go only to sites the page already uses. When Clipwell scans a page, it re-reads the HLS and DASH playlists that page loaded, and also fetches the quality playlist a save would use, which the player may not have loaded, to list each stream’s qualities, duration and live status. When the page shows only stream segments, Clipwell also tries a few likely playlist addresses on the same server as those segments (index.m3u8, master.m3u8, playlist.m3u8 and manifest.mpd, keeping the segment’s query string). All of these scan requests carry the site’s cookies. The popup also shows the page’s own poster or preview image as a thumbnail. A scan runs when you open Clipwell on a tab; if you grant the optional all-sites access, it also runs as pages load, without a click. When you save, Clipwell fetches the media you picked (the file, playlist, segment or subtitle URLs the page itself uses).
When Clipwell saves a stream (HLS or DASH, including a trimmed clip), it fetches the playlist and segments with the site’s own cookies, so login-protected media you can play can also be saved. A timed live recording runs inside the tab and fetches like the page’s own scripts: its requests come from the page’s own origin, and the browser attaches cookies under the same rules it applies to the page. Nothing about any of these requests is logged or sent to us.
If you choose to upgrade to Clipwell Plus, payment processing is handled externally and securely by Stripe on Stripe’s own checkout page. We never see your full card number and do not store your card details; what Stripe shares with the developer is described in section 4. After payment, Stripe returns you to a static Clipwell thank-you page (andreasne89.github.io/clipwell/plus.html) that shows your Plus code. That page’s script runs only in your browser and sends the code nowhere (its source is docs/plus.html in the Clipwell repository). The page address, which contains the code, is requested from GitHub Pages like any page you open. In the browser that opened checkout, Clipwell itself picks the code up from that tab’s address to unlock Plus (section 4).
Clipwell does not unwrap, decrypt, or circumvent DRM-protected streams (Widevine, FairPlay, PlayReady) or encrypted HLS (#EXT-X-KEY). Protected items are marked and cannot be saved.
4. Plus and Optional Exports
Some features send data off your device only because you set them up or started them. Nothing in this section runs unless you configure it or start it, and nothing is sent until you ask for it.
In Firefox, the browser also asks for your consent first: to share “financial and payment information” when you click the Stripe pay button or Restore Plus, and “website content” when you click Save to cloud. If you decline, nothing is sent; if you decline the prompt from the Stripe pay button, checkout does not open. Chrome has no such prompt.
- Webhooks (a custom URL, Discord, or Slack). If you enter a webhook URL in Settings → Export and pick “Save to cloud” on an item (offered only for direct media files, not HLS or DASH streams), Clipwell fetches that one file and posts the file, its filename and its title only to the URL you entered. The filename comes from your filename template, so it can contain the site, creator, date and id if your template uses them. Clipwell accepts only https webhook URLs (plain http only for localhost on your own computer). The URL is stored only in your browser’s chrome.storage.local. Nothing is sent unless you choose to export an item. Clipwell does not add any identifier of yours to the request, and the receiving service’s own privacy policy applies to what happens next.
- Plus purchase (Stripe). Buying Plus is optional. If you do, you pay on Stripe’s checkout page, and Stripe collects your email address and payment details under Stripe’s own privacy policy. Stripe also collects identifying information about the device you pay from, including its IP address, and uses it for fraud prevention under Stripe’s privacy policy (https://stripe.com/privacy). As the seller, the developer receives the purchase record from Stripe: your email address, the name and billing country (and postal code, where required) you enter at checkout, the amount, limited payment details such as the card brand and last four digits (Stripe never shares the full card number), and the fraud-check details Stripe shows sellers, such as the IP address and approximate location of the device you paid from. The developer keeps that record in Stripe and uses it to find your purchase by its receipt email when you ask support for help, for example to look up a lost Plus code or free a device slot. The random install id from the Plus check is stored in that same Checkout Session (next item).
- Plus verification. When Plus unlocks after a Stripe checkout, or when you enter your Plus code in the Restore field (for example to unlock Plus on another device), Clipwell sends exactly two things to the Clipwell Plus verification worker (clipwell-plus-verify.andreas-nelvik-engebretsen.workers.dev): the Stripe Checkout Session id (your Plus code) and the random install id described in section 2. The install id is created on your device and kept in your browser’s sync storage. It is random and contains nothing about you or your browsing, but it is stored with your purchase at Stripe, in the same Checkout Session that holds your receipt email, so it is linked to that purchase; it is not linked to your browsing. The worker asks Stripe whether that checkout was paid and stores the install id in that purchase’s Stripe Checkout Session metadata only to count devices, so one purchase can unlock Plus on up to 3 devices; it keeps no database of its own. The worker runs on Cloudflare Workers, so Cloudflare necessarily receives each request, including your IP address, and handles it under Cloudflare’s own privacy policy; Clipwell’s worker code does not read or store your IP address. The thank-you page is checked automatically only in the browser that opened checkout, within two hours, and only while Plus is not already on. That check sends the Checkout Session id and the install id to the verification service, the same as Restore. Once Plus is on, Settings → Plus shows your Plus code so you can restore Plus on another device. No other data is sent, and nothing is sent if you never buy Plus: the automatic check needs a checkout you opened in that browser, and Restore needs a code you enter.
5. Data Sharing & Disclosure
We do not sell or rent user information, and we do not share it with advertisers or data brokers. The only data the extension sends to the developer is the Plus verification request (a Checkout Session id and a random install id, section 4), which the verification worker, hosted on Cloudflare Workers, checks with Stripe before storing the install id with that purchase at Stripe. If you buy Plus, Stripe shares the purchase record with the developer as the seller: your email address, the name and billing country (and postal code, where required) you enter at checkout, the amount, limited payment details such as the card brand and last four digits (Stripe never shares the full card number), and the fraud-check details Stripe shows sellers, such as the IP address and approximate location of the device you paid from. Support uses your receipt email to find your purchase when you ask for help (section 4). Cloudflare receives this data only to run the Plus check, and Stripe only to process the payment and, under its own privacy policy, to prevent fraud (section 4). Everything else that leaves your device goes where you or the page point it: a webhook export goes only to the URL you entered (section 4), a Plus payment is made on Stripe’s own page (section 3), and the requests described in section 3 go only to sites the page already uses. Those are re-reading that page’s HLS and DASH playlists, fetching the quality playlist a save would use, trying a few likely playlist addresses next to stream segments, and loading its poster or preview image when Clipwell scans it (with the site’s cookies), and fetching the media you picked when you save. None of those site requests is sent to the developer.
6. Children's Privacy
Clipwell does not knowingly collect personal information from children under the age of 13. The extension itself sends the developer only the Plus check in section 4 (a Checkout Session id and a random install id), and a Plus purchase record reaches the developer only from Stripe.
7. Changes to this Policy
If we make changes to this Privacy Policy, the revised version will be published with an updated effective date.
8. Contact Us
If you have questions about this Privacy Policy or Clipwell's privacy practices, contact the developer at the email below.