YouTube, TikTok, Instagram, Facebook, X, Vimeo, Dailymotion, Twitch
Video and MP3 downloader application • Modern, fast, secure
| Feature | Description |
|---|---|
| 🌍 Multi-Language | Full support for Turkish and English, dynamic switching |
| 📊 Statistics Panel | Total downloads, size, and platform distribution |
| 🔍 History Search | Search and filter within download history |
| 📄 Batch Import | Add multiple URLs to the queue at once |
| 📂 Auto-Folder | Automatically sort downloads into platform-based subfolders |
| 📋 Paste Button | One-click URL pasting from clipboard |
| 🔔 Notifications | Taskbar notification upon download completion |
| ⚙️ Advanced Settings | Language, theme, template, notification, and update settings |
| 🔄 yt-dlp Update | Automatic update check and updater |
| 🧵 Thread Safety | Safe state management for concurrent downloads |
| 🏗️ Modular Architecture | Clean, easy-to-maintain code structure |
- YouTube — Video, MP3, subtitles, playlists
- TikTok — Video downloading
- Instagram — Post, Reel, Story (Login with 2FA support)
- Facebook — Video downloading
- X (Twitter) — Video downloading
- Vimeo — Video downloading
- Dailymotion — Video downloading
- Twitch — VODs and clips
- Stylish design based on CustomTkinter
- Dark / Light theme support (persistent)
- Video preview panel
- Download queue system
- Download history (with search support)
- Statistics panel
- Secure login via username/password
- 2FA (Two-Factor Authentication) support
- Post, Reel, Story downloading
- Video/Image mode selection
- Secure session management
- 🇹🇷 Turkish (default)
- 🇬🇧 English
- One-click language switching from settings
- Python 3.8+
- FFmpeg (for MP3 conversion — automatically downloaded)
# Clone the repository
git clone https://github.com/Syronss/Syronss-Media-Downloader.git
cd Syronss-Media-Downloader
# Install dependencies
pip install -r requirements.txt
# Start the application
python launcher.py
python build_app.py
The EXE file is created in the
dist/SyronssMediaDownloader/folder.
📂 Syronss-Media-Downloader/
├── 🚀 launcher.py # Launcher and dependency management
├── 🎯 main.py # Main application (VideoDownloaderApp)
├── ⬇️ downloader.py # Download backends (yt-dlp + instaloader)
├── 🔧 utils.py # Utility functions
├── 📋 constants.py # Constants and configuration
├── 🏗️ build_app.py # PyInstaller build script
│
├── 🌍 i18n/ # Multi-language support
│ ├── __init__.py # Language manager
│ ├── tr.json # Turkish translations
│ └── en.json # English translations
│
├── 🧩 widgets/ # UI components
│ ├── queue_item.py # Queue item widget
│ ├── video_preview.py # Video preview frame
│ ├── history_item.py # History item widget
│ └── stats_panel.py # Statistics panel
│
├── 💬 dialogs/ # Dialog windows
│ ├── instagram_login.py # Instagram login (2FA supported)
│ ├── settings.py # Settings dialog
│ └── batch_import.py # Batch URL import
│
├── 🧪 tests/ # Tests
│ ├── conftest.py # Shared fixtures
│ ├── test_downloader.py # Downloader tests
│ ├── test_utils.py # Utility function tests
│ └── test_constants_i18n.py # Constants and i18n tests
│
├── 📄 requirements.txt
├── 📄 LICENSE (MIT)
└── 📄 README.md
# Run all tests
python -m pytest tests/ -v
# Run a specific test file
python -m pytest tests/test_utils.py -v
Application settings are stored in the ~/.video_downloader_settings.json file:
| Setting | Description | Default |
|---|---|---|
language |
Interface language | tr |
theme |
Theme (dark/light) | dark |
filename_template |
Filename template | %(title)s |
auto_folder |
Platform-based folder organization | false |
notifications |
Download notifications | true |
auto_update_check |
yt-dlp update check | true |
- Instagram passwords are not stored in memory; they are cleared immediately after login.
- Session files are securely deleted upon exit.
- Session information is protected via
.gitignore.
- Fork this repository
- Create a feature branch (
git checkout -b feature/new-feature) - Commit your changes (
git commit -m 'Added new feature') - Push to the branch (
git push origin feature/new-feature) - Create a Pull Request
This project is licensed under the MIT License.
Syronss — GitHub