All in One Downloader

- Year
- 2026
- Role
- Solo — design, build, release
- Status
- Shipped
- Stack
- Electron · React · TypeScript · Node.js · yt-dlp · ffmpeg
Paste any link and it lists every video on the page, with the size of each quality before a byte is fetched — then downloads them over several connections at once. The desktop app I open every day, on macOS and Windows.
One link, every video on the page
yt-dlp reads the page first. When it does not know the site, an in-house resolver takes over — it reads the page and its player scripts, follows embedded frames, and asks the player's own source endpoint the way the player would. If a page wants a person to click through, it opens a visible window: you pass the gate, the app catches the stream.
Why downloads were slow, and what fixed it
A line doing 8 MB/s was downloading at 300 KB/s. The limit was never the line — it was one connection: servers throttle per connection and a single TCP stream never opens its window. Files are now split across four connections, each writing to its own offset and journaling where it stopped, so a pause resumes only what is missing; streamed video fetches its fragments in parallel instead of one round trip at a time.
An encrypted vault
Some files are nobody's business. The vault encrypts each file and its name with AES-256-GCM under a key derived with scrypt; the key lives only in memory and is zeroed on lock, which also happens by itself after a quiet spell. The limits are stated plainly in the app: an open vault does not protect you from someone at your keyboard, and a forgotten passphrase is not recoverable.
Under the hood
- 01Electron with a React and TypeScript interface; yt-dlp and ffmpeg found on the PATH or bundled
- 02Size per quality before downloading, estimated from bitrate when the server will not say
- 03Subtitle search and automatic sync to the downloaded file
- 04macOS (arm64 + x64) and Windows builds produced by GitHub Actions on every tag




