🎬 YTGet — Cross-Platform YouTube Downloader
🌐 Website: erfannamira.github.io/ytget-gui
YTGet GUI is a modern, lightweight, and user-friendly desktop application built with Python and PySide6.
Powered by yt-dlp, it makes downloading YouTube videos, playlists, and music simple and efficient.
- 🖥️ Cross-Platform: Runs seamlessly on Windows, macOS, and Linux.
- 📦 Standalone: Each release comes with all dependencies bundled, so it works right out of the box.
- ⚡ Optimized & Stable: Designed for smooth performance with smart resource handling, and built-in update management.
- 🎵 Versatile: Supports full videos, playlists, and music downloads in multiple formats.
Whether you’re grabbing a single clip or archiving an entire channel, YTGet delivers a polished and seamless experience on every operating system.
🖼 Screenshots
📊 Repository Stats
🌟 Community
🐛 Issues & 🔀 Pull Requests
📥 Downloads
💻 Codebase
⏱️ Activity
☄️ How to Install
⚠️ Some formats are still limited or temporarily unavailable on YouTube itself. These cannot be fixed by the app alone. If a specific format continues to fail, we may need to wait for an yt-dlp update to adapt to changes on YouTube.
🪟 Windows
Installer (recommended)
- Download the latest
YTGet-<version>-windows-setup.exefrom the releases page. - Run it. It installs for the current user only, so no administrator prompt appears.
- Optionally tick the desktop shortcut and Start YTGet when I sign in during setup.
- Launch YTGet from the Start menu. Uninstall from Settings → Apps like any other program.
Portable archive
- Download the latest
YTGet-Windows.ziprelease. - Extract the contents.
- Run
YTGet.exe.
🐧 Linux
- Install required dependencies:
sudo apt-get update && sudo apt-get install -y ffmpeg python3-mutagen libxcb-cursor0 libxcb-xinerama0 libxcb-xinput0 libxcb-xfixes0 libxcb-shape0 libxcb-render-util0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render0 libxcb-shm0 libxcb-sync1 libxcb-util1 libxcb-xkb1
- Download the latest
YTGet-Linux.tar.gzrelease. - Extract the contents.
tar -xzf YTGet-Linux.tar.gz
- Make it executable and launch:
chmod +x YTGet
./YTGet
🍎 macOS
- Download the latest release:
- Open Terminal and run:
cd Downloads
- Extract the contents.
tar -xzf YTGet-macOS-arm64.tar
or
tar -xzf YTGet-macOS-x86_64.tar
This will produce a YTGet.app bundle in your current directory.
- Remove Quarantine Flag If you see “cannot be opened because Apple cannot check it for malicious software,” you need to strip the quarantine attribute:
xattr -d com.apple.quarantine YTGet.app
This lets macOS trust your app without popping security dialogs every launch.
- Set Executable Permission
chmod +x YTGet.app/Contents/MacOS/YTGet
- Move to Applications (Optional)
For a cleaner setup, drag YTGet.app into your /Applications folder or run:
mv YTGet.app /Applications/
- Launch YTGet
Choose one:
- From Finder: double-click /Applications/YTGet
- From Terminal:
open /Applications/YTGet.app
- Download yt-dlp via Menu Bar → Help → Check yt-dlp Update.
🐍 PyPI Installation
YTGet GUI depends on FFmpeg to process and convert media. Follow these steps to get everything up and running:
1️⃣ Install YTGet GUI
pip install ytget-gui
2️⃣ Set Up FFmpeg
Choose one of the two methods below:
2.1 Add FFmpeg to Your PATH (Recommended)
-
Download the latest FFmpeg build for your platform from this Link.
-
Extract the archive.
-
Add the bin/ directory to your system PATH:
On Windows: update Environment Variables → Path.
On macOS/Linux: edit ~/.bashrc or ~/.zshrc with
export PATH="/path/to/ffmpeg/bin:$PATH" -
Verify installation:
ffmpeg -version
2.2 Copy Binaries into the YTGet Folder (Alternative)
-
Download the static FFmpeg binaries for your OS.
-
Copy ffmpeg (or ffmpeg.exe) and ffprobe (or ffprobe.exe) into the same directory where the ytget-gui executable lives.
🔄 How to Update (PyPI version)
To upgrade your PyPI installation to the latest release:
pip install --upgrade ytget-gui
This command fetches and installs the newest version, replacing your current one automatically.
✨ Extra Tips You Might Find Useful
- On macOS, you can also use Homebrew:
brew install ffmpeg
- On Debian/Ubuntu:
sudo apt update && sudo apt install ffmpeg
✨ Features
🖥️ Interface
- 🎯 Clean Qt GUI — Intuitive layout with dark-friendly visuals.
- 🛑 Cancel Anytime — Gracefully stop downloads at any moment.
- 🔒 Offline Capable — No Python installation required.
📥 Download Options
- 📹 Multiple Formats — Download videos from 480p up to 8K.
- 🔁 Same Link, Several Formats — Queue one video as 1080p and MP3; each format is its own row.
- 📏 Size Estimates — Every queued item shows its approximate download size (video + audio).
- 🎵 MP3/FLAC Mode — High-quality audio extraction with embedded thumbnails & metadata.
- 📄 Subtitles — Auto-fetch subtitles (multi-language).
- 📂 Playlist Support — Download entire playlists in audio/video mode.
🔧 Advanced Features
- ⚙️ Persistent Settings — All settings saved to
config.json. - 🚀 Improved Playlist Support — Reverse order, select items, archive tracking.
- ✂️ Clip Extraction — Download video portions by start/end time, applied only to the item you are adding.
- ⏭️ SponsorBlock — Skip sponsored content, intros, and outros.
- 🧩 Chapters Handling — Embed or split videos by chapters.
- 🎼 YouTube Music Metadata — Accurate music info and album data.
🛠 Functionality
- 🌐 Proxy Support — Configure proxies for downloads.
- 📅 Date Filter — Download videos uploaded after a specified date.
- 🧪 Custom FFmpeg Args — Add advanced arguments for power users.
- 🔊 Audio Normalization — Uniform volume for all downloads.
- 🗃 Channel Organization — Auto-sort videos into uploader folders.
- ⚡ Performance Enhancements — Smart rate limiting, retry logic, and a fast cold start.
- 🌐 Unlisted Site Policy — Links from sites outside your watcher list can be queued automatically, confirmed first, or ignored.
🧰 How to Use
- ▶️ Launch
YTGet. - 🔗 Paste a YouTube URL.
- 🎚️ Select format (e.g., 1080p MKV or MP3).
- ⚙️ Optional: open ADVANCED to set a clip range or playlist selection. It applies only to the items you add next, and the button shows a dot while it is armed.
- ⬇️ Click ➕ Add to Queue. To grab the same link in another format, pick a different format and add it again — you get a second row.
- ⬇️ Click ▶️ Start Queue.
📁 Output
- ✅ Clean filenames:
%(title)s.ext - 🎵 Audio downloads include:
- Embedded album art
- Metadata tags (artist, title, etc.)
🧩 Format Options
| Format | Description |
|---|---|
| 🎞️ 480p–8K | MKV, MP4, WebM video with merged best audio |
| 🎵 FLAC Audio | High-quality audio with tags & thumbnails |
| 🎵 MP3 Audio | High-quality audio with tags & thumbnails |
| 📃 Playlist MP3 | Batch audio extraction from playlists |
🔒 Cookies Support
For age-restricted or private content:
- Export cookies using Get cookies.txt extension.
- Place the file in
_internal/cookies.txt.
⚙️ Requirements
- ✅ No installation needed — unzip and run, or use the Windows installer.
- 🪟 Windows 10+ (64-bit).
🔧 Development Setup
Prerequisites
- Python 3.13+
- FFmpeg (Add to PATH or project folder)
Setup
# Clone the repo
git clone https://github.com/ErfanNamira/ytget-gui.git
# Navigate to project
cd ytget-gui
# Create & activate virtual environment
python -m venv venv
# Linux/Mac
source venv/bin/activate
# Windows
venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run app
python -m ytget_gui
🤝 Contribution Guide
-
Fork & clone the repo
-
Create a feature branch: git checkout -b my-feature
-
Commit & push: git commit -m "msg" && git push origin my-feature
-
Open a Pull Request
📄 License
This project is licensed under the MIT License. See the LICENSE file for full details.
📦 Download
Release files for ytget-gui 2.8.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ytget_gui-2.8.1.0.tar.gz | 245.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ytget_gui-2.8.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 500.8 kB
Release files / ytget_gui-2.8.1.0.tar.gz
| Download URL | ytget_gui-2.8.1.0.tar.gz |
|---|---|
| Size | 245.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
005330b542ce7eb8ec65d7abb95397bc4519200b75a674ae281564754f92943a
|
|
BLAKE2b-256 checksum How to use checksums |
6969697822770ddf02d56d11967a34dc9d7881dc268bb6a2ed635626e3a3114a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / ytget_gui-2.8.1.0-py3-none-any.whl
| Download URL | ytget_gui-2.8.1.0-py3-none-any.whl |
|---|---|
| Size | 255.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c268d92513df9f9535d8f81d251ad46a7d3b74185faca45fc75d17fcc938f31f
|
|
BLAKE2b-256 checksum How to use checksums |
b0d49fababb978be95833697f9ad67afd15e4eaa551e60c3f163d342d069d062
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|