Stasha

How it works

For those who like to know — using it requires none of this

Nothing leaves the room

一The edge of your machine

Where each step of a download runs A boundary marked “your machine” contains every step of a download: noticing the stream, gathering its pieces, making them whole with WebAssembly, and keeping the result. Two lines cross it, both chosen by you — the video you asked for, coming in, and, only if you switch it on, the finished file going out to storage you already own. Nothing else crosses. the video you are watching your machine asked for by you It notices the stream The pieces are gathered Made whole, here, in the browser Kept storage you already own only if you switch it on
Two lines cross this boundary and you drew both of them: the video you asked for, coming in, and — only if you switch cloud saving on — the finished file going out to a cloud account or a server of your own. There is no third line. There is nowhere for one to go: no account to sign into, no telemetry, and no infrastructure of ours that could receive anything if it tried.

What it will catch

二Three ways video arrives

  • HLS .m3u8

    Segmented streams, including the everyday AES-128 that keeps media safe on its travels. Where a playlist offers several qualities, the choice is yours rather than an algorithm's.

  • DASH .mpd

    Adaptive streams, which keep the picture and the sound in separate places. Stasha reunites them — and the few shapes it cannot read yet are declined out loud, not failed quietly.

  • Progressive

    Ordinary .mp4 and .webm, served whole and saved exactly as they arrived — nothing re-encoded, nothing quietly lost on the way past.

How the catching is done

三Four steps, none of them elsewhere

  1. Notice

    Your browser and the video are already deep in conversation. Stasha listens to an exchange it is party to anyway and works out what is playing. Nothing is sent off to be identified; the evidence was on your machine the whole time.

  2. Gather

    A stream arrives as hundreds of small pieces, which is why the thing in your browser is a performance rather than an object. Stasha collects them, in order, from the same place your player was getting them and with the same credentials the page itself used. Standard AES-128 transport encryption is undone here, exactly as the player would have undone it.

  3. Make whole

    The pieces become a single playable file by way of libav.js — the FFmpeg libraries, compiled to WebAssembly. It travels inside the extension, so no code is ever fetched from anywhere and run: a rule of the stores, and independently the right thing to do.

  4. Keep

    Off it goes to your downloads folder — or, if you have switched cloud saving on, to whichever corner of the cloud you keep things in, or to both. You decide, and you may change your mind on any particular download without ceremony.

Where kept things live

四Your disk, or your storage

Your disk is the default, and needs nothing set up. Cloud saving is built in and stays off until you switch it on: your Google Drive, your Dropbox, or a server you already own — WebDAV or S3-compatible, from the NAS in the hallway to a bucket of your choosing. Every destination is one you own. Stasha uploads from your browser straight to it, with no waystation of ours in the middle, for the straightforward reason that there is no ours; the privacy policy’s Part 2 lists every request cloud saving can make.

  • This computer

    Your usual downloads folder, by way of the browser's usual machinery. If you would rather not accumulate a thousand loose files, it will file them by site and by date.

  • Drive, Dropbox

    Sign in with the provider and the file goes from your browser to your account. Stasha asks for the narrowest access that will do the job — on Drive it can see only the files it creates, and not one thing besides.

  • WebDAV, S3

    Your own server or bucket, your own endpoint, your own credentials — which we do not see, hold or forward anywhere. They stay in the browser doing the uploading.

Cloud saving stays off until you turn it on, behind a disclosure you have to read and accept first. Withdraw it and the uploader stops — mid-file, if that is when you changed your mind.

What it will not do

五By design, not by omission

A downloader is defined, rather more than most software, by what it declines to do. What follows is not a statement of good intentions. It is in the code, and it is covered by tests.

  • Video that is locked

    Some video is protected, deliberately, by people entirely within their rights to protect it. Widevine, PlayReady, FairPlay and SAMPLE-AES are recognised and declined — while reading the stream, in the interface, and once more before anything begins. Stasha carries no means of opening them and makes no attempt to acquire any.

  • YouTube

    Not supported, and blocked outright in the editions that go to the Chrome and Edge stores. Their rules forbid it and YouTube's own terms forbid it, and we would sooner say so plainly than be coy about it.

  • Anything about you

    No analytics, no telemetry, no crash reports, no little pings home to announce a version number. The extension’s own list of what it has downloaded lives on your machine and nowhere else, and you may clear it whenever the mood takes you. Should you prefer evidence to assurances — and you should — open your browser's network inspector while Stasha works. You will find us conspicuously absent.