A modern, cross-platform desktop application for downloading YouTube videos and audio built with Tauri, React, and Rust.
- Multiple Format Support: Download videos in MP4, WebM formats or extract audio as MP3, WAV
- Quality Selection: Choose from best, high, medium, low, or worst quality options
- Cross-Platform: Works on Windows, macOS, and Linux
- Modern UI: Clean, responsive interface built with React and Tailwind CSS
- Download History: Track all your downloads with status monitoring
- Progress Tracking: Real-time download progress updates
- Customizable Settings: Set default download paths, formats, and quality preferences
- URL Validation: Automatic YouTube URL validation before download
- Embedded Dependencies: Includes yt-dlp and ffmpeg binaries for seamless operation
The application features a clean, three-tab interface:
- Download: Main download functionality with URL input and progress tracking
- History: View and manage your download history
- Settings: Customize download preferences and output directory
- Go to the Releases page
- Download the appropriate version for your operating system:
- Installer:
Snapper_1.0.0_x64_en-US.msi- Recommended - Setup:
Snapper_1.0.0_x64-setup.exe
- Intel (x64):
Snapper_1.0.0_x64.dmg - Apple Silicon (ARM64):
Snapper_1.0.0_aarch64.dmg - App Bundle (Intel):
Snapper_x64.app.tar.gz - App Bundle (ARM64):
Snapper_aarch64.app.tar.gz
- AppImage:
Snapper_1.0.0_amd64.AppImage- Universal, no installation required - Debian/Ubuntu:
Snapper_1.0.0_amd64.deb - RPM (Fedora/RHEL):
Snapper-1.0.0-1.x86_64.rpm
- Download the
.msiinstaller (recommended) or.exesetup file - Run the installer and follow the setup wizard
- Launch "Snapper" from the Start Menu
- Download the appropriate
.dmgfile for your Mac:- Intel Macs:
x64.dmg - Apple Silicon Macs (M1/M2):
aarch64.dmg
- Intel Macs:
- Open the
.dmgfile and drag the app to Applications folder - Launch from Applications (you may need to allow the app in Security & Privacy settings)
Alternative: Download the .app.tar.gz file, extract it, and run directly
AppImage (Recommended)
- Download
Snapper_1.0.0_amd64.AppImage - Make it executable:
chmod +x Snapper_1.0.0_amd64.AppImage - Run directly:
./Snapper_1.0.0_amd64.AppImage
Debian/Ubuntu
# Download and install
sudo dpkg -i Snapper_1.0.0_amd64.debRPM-based (Fedora/RHEL/CentOS)
# Install using rpm
sudo rpm -i Snapper-1.0.0-1.x86_64.rpm- Rust (latest stable)
- Node.js (v16 or later)
- Tauri Prerequisites
-
Clone the repository
git clone https://github.com/66HEX/snapper.git cd snapper -
Install frontend dependencies
npm install
-
Build the application
npm run tauri build
-
Development mode
npm run tauri dev
- Launch the application
- Paste a YouTube URL in the download tab
- Select format and quality (or use your saved preferences)
- Choose output directory (optional - defaults to Downloads folder)
- Click Download and monitor progress
- View completed downloads in the History tab
- Standard YouTube videos:
https://www.youtube.com/watch?v=... - YouTube Shorts:
https://www.youtube.com/shorts/... - Short URLs:
https://youtu.be/... - Playlists:
https://www.youtube.com/playlist?list=...
- Tauri Framework: Provides secure bridge between frontend and system
- tokio: Async runtime for handling downloads
- serde: JSON serialization/deserialization
- chrono: Date/time handling for download history
- anyhow: Error handling
- uuid: Unique download ID generation
- React 18: Modern React with hooks
- TypeScript: Type-safe development
- Tailwind CSS: Utility-first styling
- shadcn/ui: High-quality UI components
- Lucide React: Beautiful icons
- Async download processing with status tracking
- Automatic retry logic with fallback strategies
- Cache management and cleanup
- File path validation and sanitization
- Automatic detection of embedded vs system binaries
- Platform-specific path resolution
- Fallback to common installation paths
- JSON-based settings storage using Tauri's store plugin
- Auto-save functionality for user preferences
- Default value handling
# Development server
npm run tauri dev
# Build for production
npm run tauri build
# Frontend development only
npm run dev
# Lint code
npm run lint
# Type checking
npm run type-checkThe application includes a built-in test function accessible via browser console:
// Open DevTools and run:
window.testBackend()This will test all backend functionality including dependency checks, URL validation, and video info retrieval.
This project is licensed under the MIT License - see the LICENSE file for details.
This application is for personal use only. Please respect YouTube's Terms of Service and copyright laws. The developers are not responsible for any misuse of this software.
- yt-dlp - The powerful YouTube downloader library
- Tauri - Secure, fast, and lightweight desktop applications
If you encounter any issues or have questions:
- Check the Issues page for existing problems
- Create a new issue with detailed information about your problem
- Include your operating system, application version, and error messages
Made with ❤️ using Tauri, React, and Rust
