Skip to content
← Work2025 · Windows desktop application

A desktop media downloader that wraps yt-dlp and FFmpeg in an interface a non-technical user can operate without ever seeing a flag. Downloads stream progress into the UI; processing steps are queued and surfaced as readable stages instead of raw log output.

Carries into the engineClosest thing I had built to an engine problem before Unreal: long-running work on background threads, structured progress out of unstructured output, and a UI that never stalls.

TubeVault — home screen
01

The problem

yt-dlp and FFmpeg are extraordinarily capable and extraordinarily unfriendly. Everything they do well is behind a wall of flags. The interesting question was whether that power could be exposed without the interface either lying about what's happening or freezing while it happens.

02

What I built

A Flutter desktop app that orchestrates both binaries as one integrated pipeline. It spawns and supervises external processes, parses their streaming output into structured progress, and recovers when a step fails partway through — all while keeping the UI thread free.

TubeVault — download queue
03

Why it matters here

This is the same class of problem a build pipeline or an asset cooker presents. Supervising external processes, turning noisy stdout into something a human can read, and never blocking the frame are habits that transfer to Unreal almost line for line.

04

What it taught me

Wrapping battle-tested tools is a design problem as much as an engineering one. The value was never in reimplementing FFmpeg — it was in deciding which of its thousand capabilities a person actually needs to see.

In the app

TubeVault — media library
NextAdvanced Resume Builder