VideoNinja is a beautiful, user-friendly YouTube video downloader built with Electron. It uses yt-dlp to download videos in various qualities with an intuitive interface and smart queue management.
- π― Simple & Intuitive - Clean, colorful interface that's easy to use
- π₯ Queue Management - Download multiple videos, one at a time
- π¨ Quality Selection - Choose from 4K, 1080p, 720p, or audio-only
- πΎ Smart Storage - Monitors disk space and warns when running low
- π Tray Notifications - Flashing tray icon when downloads complete
- π Easy Access - Open videos or show them in folder with one click
- πͺ Auto-Resume - Automatically continues incomplete downloads on restart
- π― Persistent - Remembers your settings and download history
VideoNinja requires two external tools:
| Tool | Purpose | Required |
|---|---|---|
| yt-dlp | Downloads videos from YouTube and other sites | Yes |
| ffmpeg | Merges video + audio streams for high-quality downloads | Recommended |
Without ffmpeg, downloads may fail when the best quality requires merging separate video and audio streams.
Option A β Chocolatey (recommended):
choco install yt-dlp ffmpeg -yOption B β Manual install:
- Download
yt-dlp.exefrom yt-dlp releases - Download ffmpeg from gyan.dev (get the essentials build)
- Place both executables in one of:
- The same folder as VideoNinja
C:\Program Files\yt-dlp\- Any folder in your system PATH
Keeping tools up to date:
yt-dlp -U
choco upgrade ffmpeg -ybrew install yt-dlp ffmpeg# Install dependencies
pnpm install
# Start the app
pnpm start# Build for Windows
pnpm run build:win
# Build for macOS
pnpm run build:mac- Launch VideoNinja - The app will check for yt-dlp
- Configure - Choose where to save your downloads
- Download - Paste a YouTube URL, select quality, and click download
- Track - Monitor progress in the downloads list
- Enjoy - Click to open videos when complete!
- Add multiple videos to the queue
- Videos download one at a time
- Queue persists across app restarts
- Resume interrupted downloads automatically
- Best Quality (default) - Highest available quality
- 4K (2160p) - Ultra HD
- 1440p - Quad HD
- 1080p - Full HD
- 720p - HD
- 480p - SD
- Audio Only - Extract audio track
- Real-time disk space display
- Warning when < 5GB free
- Critical alert when < 1GB free
- Minimize to tray
- Flashing icon when downloads complete
- Quick access menu
- Electron - Cross-platform desktop framework
- yt-dlp - YouTube download engine
- electron-store - Persistent settings storage
- Node.js - Backend runtime
VideoNinja/
βββ src/
β βββ main/
β β βββ index.js # Main process
β β βββ ytdlp.js # yt-dlp integration
β β βββ downloadQueue.js # Queue management
β βββ renderer/
β β βββ index.html # UI layout
β β βββ app.js # UI logic
β β βββ styles.css # Styling
β βββ assets/
β βββ icons/ # App icons
βββ package.json
βββ README.md
Contributions are welcome! Please read the Contributing Guide before submitting a pull request.
This project is licensed under the MIT License β see the LICENSE file for details.
VideoNinja is intended for downloading videos you have the legal right to download. Users are solely responsible for ensuring their use of this tool complies with applicable laws, including copyright law and the terms of service of any platform they access. The developers of VideoNinja assume no liability for misuse.
Made with β€οΈ and Electron


