Stasha

Stasha — Privacy Policy

Last updated 2026-09-15

Stasha ("the extension") is a browser extension that detects and saves streaming video (HLS, DASH, and progressive MP4/WebM) from pages you visit. Detection, format conversion, and saving all run inside your browser.

This policy has two parts:


Part 1 — In force today

Summary

The complete list of network requests the extension can make

This list is intended to be exhaustive. If you ever observe the extension making a request that does not fit one of these categories, that is a bug — please report it.

  1. Manifest and playlist fetches (detection). When a page plays a stream, or when you press "scan", the extension fetches the stream's manifest and its variant playlists — the same URLs the page's own player uses — to read out the available qualities.
  2. In-page confirmation fetches (scan). The page-scan step re-fetches candidate manifest URLs that the page itself already loaded, from within the page's own context, to confirm they really are manifests.
  3. Media fetches during a download you start. Segments (HLS/DASH) or the whole file (progressive), fetched from the stream's own hosts.
  4. Stream-key fetch (AES-128 HLS). When an HLS stream is delivered with standard AES-128 transport encryption, the extension fetches the key at the URL the stream's manifest points to — the same key the page's own player fetches to play the video. Streams that use DRM (Widevine, PlayReady, FairPlay, SAMPLE-AES) are detected and refused, so no such request is made for them.
  5. Preview fetches. When the popup shows a detected stream, the extension may fetch a small portion of that stream to render a short preview locally.

Every one of these requests goes to a URL derived from a page you visited or a stream you selected. All of them are restricted to http(s) and are blocked from reaching private, loopback, link-local, and cloud-metadata addresses by an allowlist check in the code.

What the media host learns from these requests is essentially what it learns when the page plays the video: your IP address, the request headers described in the next section, and its own cookies (attached by your browser under its normal rules). The extension gives the media host no information about you beyond that.

Requests the extension never makes: there are no analytics or telemetry endpoints, no error reporting, no version or update pings in the extension's code (your browser updates extensions through its own store mechanism, independent of anything the extension does), no uninstall page, and no remote images in the extension's UI — the extension pages' content-security policy limits images to local data, so even thumbnails are never loaded from the network.

No remote code: all executable code, including the bundled WebAssembly media library, ships inside the extension package. The content-security policy is script-src 'self' 'wasm-unsafe-eval'; nothing executable is fetched at runtime.

Request headers and cookies, precisely

To make a download succeed on sites that check where a request came from, the extension replays onto its own media fetches some of the headers the page's own media requests carried:

Captured headers are transient: the observation buffer drops each request's headers as soon as that request finishes, header data lives only in memory (including the browser's in-memory session storage, which is cleared when the browser closes), and headers are stripped out before anything is written to the on-disk download history.

None of this header data is ever sent to the developer.

What is stored on your device

All of the following is stored locally, and none of it ever leaves your machine:

What the extension refuses by design

Data retention and deletion

Everything is local. Clear the download history from the extension's UI; remove everything by uninstalling the extension or clearing its site data in your browser. Uninstalling removes all of its stored data. There is nothing to delete anywhere else, because nothing exists anywhere else.

Permissions, in plain terms

The extension requests no permission it does not use.

Changes to this policy

If what the extension does with data ever changes, the change will be announced in the extension itself before it takes effect, this document will be updated with a new "last updated" date, and any feature that sends data anywhere new will require your explicit opt-in first (see Part 2 for the one such feature currently planned).

Contact

Questions about this policy: stasha@developeroffice.de.


Part 2 — Upon the cloud-save release

This part is not yet in effect. It describes an optional cloud-save feature that is planned but has not shipped. It becomes effective only when a released version of the extension includes the feature, which will be announced in that version's release notes and in the extension itself. It is published now so the change can be reviewed in advance.

What the feature is

Cloud save will let you connect your own storage — for example your own Dropbox, a WebDAV server you control (such as a NAS), an S3-compatible bucket you own, or your own Google Drive — and have finished downloads uploaded into it, organized into folders.

Consent comes first

What changes on the network

When (and only when) you connect a provider and uploads run, these request categories are added to Part 1's list:

  1. Upload requests from your browser directly to your chosen provider — the finished video file's bytes and the folder/file names it is saved under. Note that the folder template can include the name of the site a download came from; if you use it, that site name becomes a folder name inside your storage.
  2. Sign-in and token requests to your chosen provider's authorization service (for providers that use OAuth, e.g. Google or Dropbox): the standard requests that connect your account and periodically renew the access credential.
  3. For self-configured destinations (WebDAV, S3-compatible): requests to the server address you yourself entered, authorized with the credential you entered.

Everything travels directly from your browser to your provider. There is no intermediary.

What we can and cannot see — unchanged

Google API Services — Limited Use disclosure

The following statement applies from the release that includes Google Drive support, and will also appear on the hosted privacy page at that time (placement required by Google):

Stasha's use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements.

For clarity: the only "information received from Google APIs" the extension will handle is what is needed to place your files into your own Drive (the OAuth credential and the metadata of files/folders the extension itself creates). It is used solely to provide the upload feature you configured, stored only on your device, and never transferred to anyone.

What does not change