Skip to content

Syronss/Syronss-Media-Downloader

Repository files navigation

🎬 Syronss's Media Downloader v2.0

  Python   Platform   License   UI Framework   Version   GitHub

  YouTube, TikTok, Instagram, Facebook, X, Vimeo, Dailymotion, Twitch
  Video and MP3 downloader application • Modern, fast, secure


✨ What's New in v2.0

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

🚀 Features

📥 Supported Platforms

  • 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

🎨 Modern Interface

  • Stylish design based on CustomTkinter
  • Dark / Light theme support (persistent)
  • Video preview panel
  • Download queue system
  • Download history (with search support)
  • Statistics panel

📸 Instagram Integration

  • Secure login via username/password
  • 2FA (Two-Factor Authentication) support
  • Post, Reel, Story downloading
  • Video/Image mode selection
  • Secure session management

🌍 Multi-Language Support

  • 🇹🇷 Turkish (default)
  • 🇬🇧 English
  • One-click language switching from settings

📦 Installation

Requirements

  • Python 3.8+
  • FFmpeg (for MP3 conversion — automatically downloaded)

Quick Setup

# 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

Standalone EXE

python build_app.py

The EXE file is created in the dist/SyronssMediaDownloader/ folder.


📁 Project Structure

📂 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


🧪 Tests

# Run all tests
python -m pytest tests/ -v

# Run a specific test file
python -m pytest tests/test_utils.py -v

⚙️ Settings

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

🔒 Security

  • 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.

🤝 Contributing

  1. Fork this repository
  2. Create a feature branch (git checkout -b feature/new-feature)
  3. Commit your changes (git commit -m 'Added new feature')
  4. Push to the branch (git push origin feature/new-feature)
  5. Create a Pull Request

📃 License

This project is licensed under the MIT License.


👤 Developer

SyronssGitHub

About

Easy-to-use media downloader • YouTube, TikTok & Instagram support • MP3 conversion • Local & private • No ads • Open Source

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages