Repository navigation
The GUI Revolution
Released: January 2026
Build: GUI Standalone
Size: ~112 MB
After three successful terminal versions, SNATCH v1.4 takes a different direction: a graphical interface.
The terminal works great. I use it every day. But not everyone is comfortable with command-line interfaces. When I showed SNATCH v1.3 to friends and family, the response was always the same: "It looks complicated."
It's not complicated. You type a URL, choose quality, hit enter. But if you didn't grow up with terminals, that black window with white text is intimidating.
So v1.4 is about accessibility. Making SNATCH useful to more people.
v1.4 replaces the terminal with a Windows GUI application. It's a standard window with buttons, dropdowns, and a progress bar.
Design Philosophy:
- Clean and simple
- No cluttered icons or decorations
- Professional appearance
- Segoe UI font (Windows standard)
- Clear status messages
The interface is divided into sections:
Top Section: Title and URL input
Middle Section: Type and quality selection
Queue Section: Visual list of pending downloads
Bottom Section: Control buttons and progress
Everything is visible at once. No hidden menus or tabs to navigate.
The biggest usability improvement: drag URLs directly into SNATCH.
How It Works:
You're watching YouTube. You find a video you want. Instead of:
- Copy URL
- Open SNATCH
- Click in text field
- Paste
- Select options
You just:
- Drag the URL
- Drop it on SNATCH
- Done
SNATCH fills the URL field automatically. Then you choose your settings and add to queue.
What You Can Drag:
- URLs from browser address bar
- Selected text containing URLs
- Text files with URLs (reads first line)
This small change makes a huge difference in workflow.
SNATCH minimizes to the system tray instead of the taskbar.
Why This Matters:
When you queue up 20 videos, you don't want SNATCH taking up taskbar space. Minimize it, and it disappears—but the icon stays in your system tray.
Tray Features:
Right-click the icon for quick actions:
- Show Window - Restore from tray
- Paste URL from Clipboard - Quick-add without opening
- Exit - Actually close SNATCH
Double-click the icon to restore the window.
The best part: Paste URL from Clipboard. Copy a URL anywhere. Right-click SNATCH's tray icon. Select paste. The window opens with the URL already filled in. Choose quality, download.
This workflow is faster than the terminal version.
The queue is now a visual list box instead of numbered text.
What You See:
[1] Video - 1080p - https://youtube.com/watch?v=dQw4w9WgXcQ
[2] Audio - Best - https://youtube.com/watch?v=9bZkp7q19f0
[3] Playlist - 720p - https://youtube.com/playlist?list=...
Each line shows:
- Position number
- Type (Video/Audio/Playlist)
- Quality setting
- URL preview (truncated if long)
You can see your entire queue at a glance. No scrolling through terminal history.
The queue counter updates in real-time: "Download Queue: 3/50 items"
v1.4 adds a real progress bar.
Visual Progress:
- Horizontal bar fills left to right
- Shows current item / total items
- Resets to zero when complete
Status Text:
- "Ready - Enter a URL to begin"
- "Added to queue successfully"
- "Downloading 5 of 12"
- "All downloads completed successfully"
The status text animates while downloading: "Processing", "Processing.", "Processing..", "Processing..."
This gives visual feedback that something is happening, even though the actual download runs silently in the background.
v1.4 removes all the emoji icons from v1.3 GUI beta.
Before (v1.3 GUI beta):
🎬 SNATCH - YouTube Downloader
📎 Enter YouTube URL:
🎥 Video 🎵 Audio 📋 Playlist
⬇️ Start Downloads
💡 Ready to download!
After (v1.4):
SNATCH YouTube Downloader
Fast and Simple Video Downloads
YouTube URL:
Video Audio (MP3) Playlist
Start Downloads
Ready - Enter a URL to begin
Emojis looked fun but:
- Made the interface look unprofessional
- Didn't render consistently on all Windows versions
- Added visual clutter
- Made text harder to read
Clean text is more professional and easier to understand.
- Enter URL - Type or drag YouTube URL
- Choose Type - Video, Audio, or Playlist
- Select Quality - Best, 4K, 2K, 1080p, 720p, 480p, or 360p
- Add to Queue - Click button
- Start - Click "Start Downloads" when ready
- Find video on YouTube
- Drag URL from address bar
- Drop on SNATCH window
- Choose settings (type/quality)
- Add and download
- Minimize SNATCH to tray
- Copy URL from anywhere
- Right-click SNATCH icon
- Select "Paste URL from Clipboard"
- Window opens with URL ready
- Choose settings and download
v1.4 uses Win32 API—the native Windows GUI framework.
Why Win32:
- Built into Windows (no dependencies)
- Fast and lightweight
- Works on Windows 7+
- Native look and feel
- Direct system tray access
Libraries Used:
-
windows.h- Core Win32 functions -
commctrl.h- Common controls (progress bar) -
shellapi.h- Shell API (drag-drop, tray)
The entire GUI is ~30KB of code. The rest of the 112MB is still the embedded yt-dlp and FFmpeg binaries.
Implemented using Windows drag-drop API:
DragAcceptFiles(hwnd, TRUE); // Enable drag-dropWhen you drop something, SNATCH:
- Receives
WM_DROPFILESmessage - Extracts dropped file path
- If it's a text file, reads first line
- Otherwise uses the path itself as URL
- Fills URL input field
Uses Shell_NotifyIcon API:
NOTIFYICONDATA nid;
nid.hIcon = LoadIcon(...);
nid.uCallbackMessage = WM_TRAYICON;
Shell_NotifyIcon(NIM_ADD, &nid);When you right-click the icon:
- Creates popup menu
- Shows at cursor position
- Handles menu selection
- Performs action (show/paste/exit)
Downloads run in a separate thread to keep the GUI responsive:
CreateThread(NULL, 0, StartDownloads, NULL, 0, NULL);This prevents the window from freezing during downloads. You can still interact with the interface (though most controls are disabled while downloading to prevent conflicts).
Status text animation uses a simple timer:
SetTimer(hwnd, ID_TIMER_ANIMATE, 500, NULL);Every 500ms, the timer fires and updates the status text with the next animation frame. It cycles through: "Processing", "Processing.", "Processing..", "Processing..."
Accessibility: Anyone can use it, no terminal knowledge needed.
Workflow: Drag-drop and tray integration are faster than typing.
Visual Feedback: See queue, progress, and status at a glance.
Polish: Professional appearance, clean interface.
Functionality: All v1.3 features work identically.
Quality Options: Same 7 quality presets.
Queue System: Still 50-item maximum.
File Size: Still ~112MB (same embedded tools).
Learning Curve: GUI is more intuitive for beginners.
Automation: Terminal version is better for scripts.
Resource Use: GUI uses slightly more memory (about 5MB more).
Platform: GUI requires desktop Windows. Terminal works on Server Core.
- You prefer visual interfaces
- You want drag-and-drop
- You use system tray frequently
- You're downloading casually
- You're new to SNATCH
- You prefer command-line tools
- You're automating with scripts
- You're running on Windows Server
- You want minimum resource use
- You're comfortable with terminals
Both versions are actively maintained. Use whichever fits your workflow.
Some planned features got cut from v1.4:
Originally planned: panel to save preferences like default quality, download folder, etc.
Why Cut: Adds complexity without much benefit for v1.4. Most users download immediately after opening SNATCH. Settings will come in v1.5.
Wanted: list of previously downloaded videos.
Why Cut: Requires persistent storage (database or file). Not worth the complexity for v1.4. Planned for v1.5.
Planned: buttons to pause and resume individual downloads.
Why Cut: yt-dlp doesn't easily support pause/resume. Implementing this requires intercepting and managing yt-dlp's process, which is complex. Will research for v1.5.
Wanted: dark mode and color customization.
Why Cut: v1.4 needed to launch. Themes are nice-to-have, not essential. Planned for v2.0.
v1.4 is Windows-specific. The Win32 API doesn't exist on Linux or macOS.
Solution: v2.0 will use a cross-platform GUI framework like GTK or Qt. But that's a major rewrite, so it's future work.
The progress bar shows item count (3 of 10), not download percentage within each file.
Why: Getting real-time progress from yt-dlp requires parsing its output stream. v1.4 hides all output for cleaner interface. Real-time progress will come in v1.5.
Queue processes sequentially—one at a time.
Why: Parallel downloads are complex:
- Resource management (bandwidth, CPU)
- Error handling (what if one fails?)
- Progress display (show all at once?)
Sequential is simpler and more reliable. Parallel downloads planned for v2.0.
Maximum 50 items per queue.
Why: Memory management. Each item is a struct with a 512-byte URL buffer. 50 items = ~25KB. Reasonable limit.
Workaround: For larger batches, split into multiple sessions.
For developers:
# Requirements:
# - MinGW-w64 with GCC
# - windres (resource compiler)
# - yt-dlp.exe
# - ffmpeg.exe
# Build:
.\build_v1.4.bat
# Output:
# snatch_v1.4.exe (~112 MB)Build time: 10-20 seconds (same as v1.3).
The GUI code is in snatch_v1.4.c. It's pure C with Win32 API. No external GUI libraries.
Focus: Enhanced GUI
- Settings panel with persistence
- Download history viewer
- Real-time progress percentage
- Speed indicator (MB/s)
- Estimated time remaining
- Pause/resume buttons
- Video thumbnails in queue
- Notification sounds
Focus: Cross-platform
- Linux support (GTK)
- macOS support
- Parallel downloads
- Dark mode / themes
- Browser extension integration
- Auto-update system
v1.4 is a major change. The GUI is a complete rewrite, not a modification of v1.3.
If you encounter bugs, have feature requests, or just want to share thoughts:
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: abdanioparchezzi@gmail.com
v1.4 brings SNATCH to a wider audience.
The terminal versions (v1.0-v1.3) proved the concept. They work great for technical users. But they're not for everyone.
The GUI makes SNATCH accessible. Your parents can use it. Your non-technical friends can use it. Anyone comfortable with a mouse can use it.
That was the goal: make YouTube downloading simple for everyone.
v1.4 is just the beginning of GUI SNATCH. Expect many improvements in v1.5 and beyond.
But the core is solid: drag, drop, download. It works.
Previous Version: v1.3 Release Notes
Next Version: v1.5 (Coming Soon)
Back to Wiki: Home
Updated: January 2026
File: snatch_standalone.exe
Size: ~112 MB
Abdanio Parchezzi
📧 Email: cheeksparchezzi@gmail.com
📷 Instagram: @oktramdani
💻 GitHub: @Abdanio
SNATCH v1.2 • MIT License