Skip to main content

🎬 YTGet — Cross-Platform YouTube Downloader

📄 نسخه فارسی این راهنما

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

GitHub repo stars GitHub forks GitHub watchers

🐛 Issues & 🔀 Pull Requests

GitHub issues GitHub closed issues GitHub pull requests GitHub closed PRs

📥 Downloads

GitHub all releases GitHub release (latest by date)

💻 Codebase

GitHub repo size GitHub code size in bytes GitHub language count GitHub top language Lines of code

⏱️ Activity

GitHub last commit GitHub commit activity


☄️ How to Install

⚠️ Recommended after Installing: Go to Preferences → YouTube Player Client and set it to default,web_embedded, then click Save. yt-dlp's default tv_downgraded client is currently broken for many users upstream. This switches to a known-working, cookies-safe fallback without waiting for another yt-dlp update.

⚠️ 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

  1. Download the latest YTGet-Windows.zip release.
  2. Extract the contents.
  3. Run YTGet.exe.

🐧 Linux

  1. 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
  1. Download the latest YTGet-Linux.tar.gz release.
  2. Extract the contents.
tar -xzf YTGet-Linux.tar.gz
  1. Make it executable and launch:
chmod +x YTGet
./YTGet

🍎 macOS

  1. Download the latest release:

Apple Silicon (arm64)

Intel (amd64)

  1. Open Terminal and run:
cd Downloads
  1. 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.

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

  1. Set Executable Permission
chmod +x YTGet.app/Contents/MacOS/YTGet
  1. Move to Applications (Optional)

For a cleaner setup, drag YTGet.app into your /Applications folder or run:

mv YTGet.app /Applications/
  1. Launch YTGet

Choose one:

  • From Finder: double-click /Applications/YTGet
  • From Terminal:
    open /Applications/YTGet.app
    
  1. 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.
  • 🎵 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.
  • ⏭️ 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 and retry logic.

🧰 How to Use

  1. ▶️ Launch YTGet.
  2. 🔗 Paste a YouTube URL.
  3. 🎚️ Select format (e.g., 1080p MKV or MP3).
  4. ⬇️ Click ➕ Add to Queue.
  5. ⬇️ 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:

  1. Export cookies using Get cookies.txt extension.
  2. Place the file in _internal/cookies.txt.

⚙️ Requirements

  • ✅ No installation — just unzip and run.
  • 🪟 Windows 10+ (64-bit).

🔧 Development Setup

Prerequisites

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

  1. Fork & clone the repo

  2. Create a feature branch: git checkout -b my-feature

  3. Commit & push: git commit -m "msg" && git push origin my-feature

  4. Open a Pull Request


📄 License

This project is licensed under the MIT License. See the LICENSE file for full details.


📦 Download

👉 Latest Release (.zip)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ytget_gui-2.7.9.0.tar.gz (192.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ytget_gui-2.7.9.0-py3-none-any.whl (199.7 kB view details)

Uploaded Python 3

File details

Details for the file ytget_gui-2.7.9.0.tar.gz.

File metadata

  • Download URL: ytget_gui-2.7.9.0.tar.gz
  • Upload date:
  • Size: 192.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for ytget_gui-2.7.9.0.tar.gz
Algorithm Hash digest
SHA256 9633af0c141cefd452eab9760d4ceb92b790e0e54b832962a626f8293924d456
MD5 952fcb289bfea0109cdea3f818a29153
BLAKE2b-256 5471b85b70d8eb65d0a04528cdc92bb7640b84e4443fa949f5cd98a3d76f30e5

See more details on using hashes here.

File details

Details for the file ytget_gui-2.7.9.0-py3-none-any.whl.

File metadata

  • Download URL: ytget_gui-2.7.9.0-py3-none-any.whl
  • Upload date:
  • Size: 199.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for ytget_gui-2.7.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 02d400c6041d64c414de7baa8b5bd3ad1186ab95fe1c6c2c8bc1d5467b7dcaf6
MD5 850ccb1ffbe43c8bb4710a573093907f
BLAKE2b-256 008f7e95e04bf579013ea531958901b5d8003cc126ca4e75b305c6820856d5a8

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.7.9.0 This release

2 files

2.7.5.0

2 files

2.7.2.0

2 files

2.6.0.1

2 files

2.6.0.0

2 files

2.5.2.0

2 files

2.5.1.0

2 files

2.5.0.0

2 files

2.4.9.0

2 files

2.4.8.0

2 files

2.4.7.3

2 files

2.4.7.2

2 files

2.4.7.1

2 files

2.4.7.0

2 files

2.4.6.5

2 files

2.4.6.4

2 files

2.4.6.3

2 files

2.4.6.2

2 files

2.4.6.1

2 files

2.4.6

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page