Najm Aldeen Alzorqah
Video Downloader Ultra
Open-source video downloader for Linux
01 — Overview
Video Downloader Ultra is an open-source stack for Linux that lets you start a download from the browser and track it from the desktop. A Chromium extension captures the intent, a local Python service runs yt-dlp and FFmpeg, and a QML status widget shows queue position and progress without keeping a browser tab open.
02 — My contribution
I built the MV3 extension (content scripts, popup, and options UI), the Native Messaging bridge to a Python daemon, Unix domain socket IPC between components, automated Chromium profile setup scripts, and the QML desktop bar widget with queue controls.
03 — Technical architecture
The extension talks to a native host over Chrome Native Messaging; the host forwards jobs to a long-running Python daemon that shells out to yt-dlp and FFmpeg. Progress events flow back to both the extension UI and the QML widget over the same socket layer. Bash helpers wire browser profiles and permissions so a fresh clone can reach a working path without manual guesswork.
04 — Engineering challenges
- MV3 constraints: background work and host permissions had to stay within extension limits while still launching reliable downloads — the heavy lifting stays in the trusted native daemon, not the service worker.
- Cross-process reliability: disconnects between the browser, native host, and daemon needed clear framing on the socket and idempotent job IDs so retries do not duplicate files.
- Desktop integration on Linux: the QML widget had to reflect live queue state from a process the browser does not own, which pushed state synchronization into the daemon as the single source of truth.
05 — Testing and quality
Manual testing on Chromium with real video pages, plus regression passes after yt-dlp flag changes. The repository ships a screen recording in `.github/assets/demo.mp4` that shows the full click-to-download flow. Error paths surface in the extension UI when the daemon is missing or a URL is unsupported.
06 — Results and lessons
Published as MIT-licensed source on GitHub with a recorded demo visitors can watch without installing Linux packages. Next steps would be packaged releases, automated integration tests around the socket protocol, and broader browser packaging beyond the profiles the setup scripts target today.