Najm Aldeen Alzorqah

Video Downloader Ultra

Open-source video downloader for Linux

Source codeWatch demoCase study

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.