I've been wanting to download videos from YouTube and TikTok for a long time, but every solution I found was either a sketchy website full of ads, a command-line tool that non-technical users couldn't use, or a bloated app that required an account and uploaded your files to a cloud server.
So I built my own.
What it does
Grabbit is a desktop app for Windows that downloads videos from YouTube, TikTok, Instagram, Facebook, Twitter, Pinterest, Twitch and SoundCloud — up to 4K/8K quality. It runs a local Flask server and opens in your browser, so the UI is just a web page served from localhost:5000. No Electron, no heavy framework. Just Python and Vanilla JS.
It also has a Chrome Extension that puts a Grab button directly on video pages. While you're watching a video, click Grab — it gets added to a download queue in real time. No copying links, no switching tabs.
How I built it
The stack is simple on purpose:
Backend: Python + Flask + yt-dlp + ffmpeg
Frontend: Vanilla JS SPA (no React, no Vue)
License system: Supabase (PostgreSQL + Edge Functions)
Payments: Stripe webhooks → Supabase Edge Function → Resend email
Installer: PyInstaller + Inno Setup
Distribution: GitHub Releases
The trickiest part was getting the download progress to stream in real time. yt-dlp outputs progress line by line, so I parse each line with regex and push it to a polling endpoint the frontend checks every 600ms. Not the most elegant solution but it works reliably.
Another challenge was packaging with PyInstaller. When frozen, file points inside the bundle temp directory, not where the exe lives. So I had to detect sys.frozen and use sys.executable to find the actual working directory. Took me longer than I'd like to admit.
What I learned
Building a freemium desktop app from scratch taught me a lot about things I'd never dealt with before — code signing certificates, Windows Smart App Control, subprocess encoding issues on Windows (cp1252 vs utf-8), auto-update architecture without breaking user data, and how to structure a license system that works offline when Supabase is unreachable.
The most important thing I learned: ship early. The first version was rough. But shipping it gave me real feedback and the motivation to keep going.
Where it is now
Grabbit is live. Free plan with 5 downloads/day. Pro plan at $8.99/month or $59.99/year for unlimited downloads, 4K/8K, all platforms, segment download and premium themes.
If you're curious: appgrabbit.com
Happy to answer any questions about the stack or implementation details.
If you try it, let me know what you think — feedback is welcome.
Top comments (0)