xidown is a powerful, cross-platform GUI-based video and audio downloader built with Python. Designed with a premium, dark-themed CustomTkinter UI, xidown lets you effortlessly scan, queue, and download media using yt-dlp and ffmpeg.
- Zero Antivirus Warnings: Recompiled natively with Nuitka to completely eliminate false positive virus detections (like Wacatac) and improve performance.
- Setup Wizard Installer: Replaced manual zip extraction with a professional, easy-to-use Windows Installer (
setup.exe). - Smart Portable Mode: Download the
.zipversion and run it directly from a USB drive! It automatically detects portable mode and saves all data locally without touching the host PC. - Organized Downloads: Automatically stores all downloads, caches, and history cleanly inside your OS's native
Videos/xidownfolder. - Premium Aesthetics: Features perfect layout symmetry, flat square scrollbars, and tactile CustomTkinter interfaces.
- Modern & Premium UI: Built with CustomTkinter featuring custom color palettes, fluid animations, and a high-contrast dark aesthetic.
- Interactive Queue (Drag & Drop): Easily reorder scanned videos by dragging and dropping the cards.
- Advanced Context Menus: Right-click cards to Pin/Unpin items, Test Play (15s) to preview, Download Item instantly, or Delete from queue.
- Intelligent Playlist Guard: Prompts a confirmation dialog when pasting large playlists to prevent UI overload.
- Browser Extension Integration: Built-in Flask server (Maribel Server) runs silently on port 3000 to catch download links instantly from the companion browser extension.
- Smart Cookie Management: Easily import Netscape cookies per domain to bypass age restrictions and login walls, with built-in YouTube API spoofing.
- Caching & Cleaner Manager: Caches thumbnails and includes a one-click manager to clear temporary files and broken downloads.
- History & Session Recovery: Undo/redo actions in the scan list and recover previously scanned sessions on startup.
- Python 3.8+
- ffmpeg and yt-dlp: Required for scanning and downloading.
- Windows: Automatically prompted to download to the local
bin/folder on first run if missing from system PATH. - Linux / macOS: Can be installed manually via package managers (e.g.,
sudo apt update && sudo apt install ffmpeg yt-dlporbrew install ffmpeg yt-dlp).
- Windows: Automatically prompted to download to the local
Download the pre-compiled package for your OS from the Releases page.
- Download the release for your platform.
- Run the application:
- Windows: Download the
-setup.exeinstaller for an automated, User-Level installation (no admin rights needed), or grab the-portable.zipversion to run it directly from a USB drive. - Linux: Download the
.zip, extract it, open a terminal in the folder, make it executable, and run:chmod +x xidown ./xidown
- macOS: Download the
.zip, extract it, and simply double-clickxidown.app(or runopen xidown.appin your terminal).
- Windows: Download the
- Clone the repo:
git clone https://github.com/indravoyager/xidown.git cd xidown - Set up virtual environment:
python -m venv venv # Activate: source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows (CMD)
- Install in editable mode:
pip install -e . - Run the application:
Once installed, you can launch the app from any directory:
Or run it directly as a module from the project root:
xidown
python -m xidown
xidown uses Nuitka to compile Python into native C binaries.
Requirements:
- Python 3.8+
- C compiler: MSVC (Windows), GCC (Linux), or Xcode CLT (macOS)
Steps:
pip install -e .
pip install nuitka ordered-set
python build.pyThe compiled output will be in dist/app.dist/ and a release .zip in releases/.
To catch download links directly from your browser:
- Clone or download the extension: xidown_ext
- Open your Chromium browser and go to
chrome://extensions/. - Enable Developer mode (top-right toggle).
- Click "Load unpacked" and select the extension folder.
- The extension will now automatically send links to xidown whenever the app is running!
xidown/
├── assets/ # Icons and image resources
├── bin/ # Auto-downloaded yt-dlp and ffmpeg executables
├── xidown/ # Core Python package
│ ├── app.py # Main application entry point & Flask Server
│ ├── core/ # Download logic, scanning algorithms, and system utilities
│ └── gui/ # CustomTkinter UI layouts, popups, and components
├── build.py # Nuitka build script for standalone compilation
├── pyproject.toml # Python package configuration and dependencies
└── README.md
