← Back home

tubedrop — drop a link, get the file

Local macOS web wrapper around kaifcodec/ytconverter: two clicks instead of ten. Open source, MIT.

Role UI, packaging, vibe-coding with Claude Code
Timeline An evening
Key Impact Stopped opening sketchy converter sites

tubedrop: a personal itch, scratched in an evening

I just wanted to save a video from YouTube. Every converter site was the same: popups, redirects, fake “Download” buttons, hard 360p cap — and you walk away with nothing.

kaifcodec/ytconverter had already solved the hard part — yt-dlp + ffmpeg, glued together cleanly. But it’s a terminal CLI with prompts. I wrapped it in a local web UI: two clicks instead of ten keystrokes.

The class of problem

This isn’t a product, it’s a tool for myself. The goal — turn a working but “technical” CLI into something I’m not embarrassed to share with a non-programmer. No Homebrew, no sudo, no global installs.

What’s inside

  • Two-click install. install.command pulls Python 3.12 if your system’s is too old, drops a static ffmpeg into the project folder, installs yt-dlp into a local venv. Everything stays in the folder — uninstall = rm -rf.
  • HD unlock via browser cookies. When YouTube caps anonymous tools to 360p, the UI offers to read cookies from a browser you’re logged into. yt-dlp lifts the cap locally — 720p / 1080p / 4K. Cookies never leave the Mac.
  • Clean exit. A Quit button in the corner kills the local server cleanly — no zombie processes on ports.

How I built it

Vibe-coding with Claude Code: described what I wanted, iterated on the UI and installer. The code itself isn’t an engineering showcase — it’s a usefulness showcase. Open source (RebSem/tubedrop), MIT.

What this case shows about me

I close my own pain points quickly and don’t pretend AI tooling isn’t part of the process. When I spot a solid CLI with no UX wrapper, I’ll wrap it so it’s not just me who can use it. And I credit the author of the core in the README — I don’t take someone else’s work and call it mine.