# π¬ 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.
---
## π Repository Stats
### π Community



### π Issues & π Pull Requests




### π₯ Downloads


### π» Codebase




### β±οΈ Activity


---
## βοΈ How to Install
### πͺ Windows
1. [Download the latest `YTGet-Windows.zip` release.](https://github.com/ErfanNamira/ytget-gui/releases/latest/download/YTGet-Windows.zip)
2. Extract the contents.
3. Run `YTGet.exe`.
### π§ Linux
1. Install required dependencies:
```
sudo apt-get update && sudo apt-get install -y 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
```
2. [Download the latest `YTGet-Linux.tar.gz` release.](https://github.com/ErfanNamira/ytget-gui/releases/latest/download/YTGet-Linux.tar.gz)
3. Extract the contents.
```
tar -xzf YTGet-Linux.tar.gz
```
4. Make it executable and launch:
```
chmod +x YTGet
./YTGet
```
### π macOS
1. [Download the latest `YTGet-macOS.tar.gz` release.](https://github.com/ErfanNamira/ytget-gui/releases/latest/download/YTGet-macOS.tar.gz)
2. In Terminal, run:
```
tar -xzf YTGet-macOS.tar.gz
```
This will produce a YTGet.app bundle in your current directory.
3. 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.
4. Set Executable Permission
```
chmod +x YTGet.app/Contents/MacOS/YTGet
```
5. Move to Applications (Optional)
For a cleaner setup, drag YTGet.app into your /Applications folder or run:
```
mv YTGet.app /Applications/
```
6. Launch YTGet
Choose one:
* From Finder: double-click /Applications/YTGet.app.
* From Terminal:
```
open /Applications/YTGet.app
```
* Or run the binary directly:
```
/Applications/YTGet.app/Contents/MacOS/YTGet
```
### π [PyPI Installation](https://pypi.org/project/ytget-gui/)
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](https://ffmpeg.org/download.html).
* 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 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.
---
## πΌ Screenshots
<p align="center">
<img src="https://raw.githubusercontent.com/ErfanNamira/YTGet/refs/heads/main/Images/YTGet2.4%20(1).JPG" width="220" />
<img src="https://raw.githubusercontent.com/ErfanNamira/YTGet/refs/heads/main/Images/YTGet2.4%20(2).JPG" width="220" />
<img src="https://raw.githubusercontent.com/ErfanNamira/YTGet/refs/heads/main/Images/YTGet2.4%20(3).JPG" width="220" />
<img src="https://raw.githubusercontent.com/ErfanNamira/ytget/refs/heads/main/Images/YTGet2.4.3.JPG" width="220" />
</p>
---
## π§° 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](https://chrome.google.com/webstore/detail/get-cookiestxt/lgmpjfekhdgcmpcpnmlhkfkfjdkpmoec) extension.
2. Place the file in `_internal/cookies.txt`.
---
## βοΈ Requirements
- β
No installation β just unzip and run.
- πͺ Windows 10+ (64-bit).
---
## π§ Development Setup
### Prerequisites
- [Python 3.13+](https://www.python.org/downloads/)
- [FFmpeg](https://www.ffmpeg.org/download.html) (Add to PATH or project folder)
### Setup
```bash
# 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](./LICENSE) file for full details.
---
## π¦ Download
π [Latest Release (.zip)](https://github.com/ErfanNamira/YTGet/releases/latest)
Raw data
{
"_id": null,
"home_page": null,
"name": "ytget-gui",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.13",
"maintainer_email": null,
"keywords": "youtube-downloader, downloader, yt-dlp, yt-dlp-gui, audio-downloader, video-downloader",
"author": null,
"author_email": "Namira <erfannamira@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/35/57/fef657e7716993076a9238837203f942a0a1d2267b027d9b1c25c3257ff4/ytget_gui-2.4.7.3.tar.gz",
"platform": null,
"description": "# \ud83c\udfac YTGet \u2014 Cross-Platform YouTube Downloader\n\n**YTGet GUI** is a modern, lightweight, and user-friendly desktop application built with **Python** and **PySide6**. \nPowered by **yt-dlp**, it makes downloading YouTube videos, playlists, and music simple and efficient. \n\n- \ud83d\udda5\ufe0f **Cross-Platform:** Runs seamlessly on **Windows**, **macOS**, and **Linux**. \n- \ud83d\udce6 **Standalone:** Each release comes with all dependencies bundled, so it works right out of the box. \n- \u26a1 **Optimized & Stable:** Designed for smooth performance with smart resource handling, and built-in update management. \n- \ud83c\udfb5 **Versatile:** Supports full videos, playlists, and music downloads in multiple formats. \n\nWhether you\u2019re grabbing a single clip or archiving an entire channel, **YTGet** delivers a polished and seamless experience on every operating system.\n\n---\n\n## \ud83d\udcca Repository Stats\n\n### \ud83c\udf1f Community\n\n\n\n\n### \ud83d\udc1b Issues & \ud83d\udd00 Pull Requests\n\n\n\n\n\n### \ud83d\udce5 Downloads\n\n\n\n### \ud83d\udcbb Codebase\n\n\n\n\n\n### \u23f1\ufe0f Activity\n\n\n\n---\n\n## \u2604\ufe0f How to Install\n\n### \ud83e\ude9f Windows\n1. [Download the latest `YTGet-Windows.zip` release.](https://github.com/ErfanNamira/ytget-gui/releases/latest/download/YTGet-Windows.zip) \n2. Extract the contents. \n3. Run `YTGet.exe`.\n\n### \ud83d\udc27 Linux\n1. Install required dependencies:\n```\nsudo apt-get update && sudo apt-get install -y 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\n``` \n2. [Download the latest `YTGet-Linux.tar.gz` release.](https://github.com/ErfanNamira/ytget-gui/releases/latest/download/YTGet-Linux.tar.gz) \n3. Extract the contents.\n```\ntar -xzf YTGet-Linux.tar.gz\n```\n4. Make it executable and launch:\n```\nchmod +x YTGet\n./YTGet\n```\n\n### \ud83c\udf4e macOS\n1. [Download the latest `YTGet-macOS.tar.gz` release.](https://github.com/ErfanNamira/ytget-gui/releases/latest/download/YTGet-macOS.tar.gz) \n2. In Terminal, run:\n```\ntar -xzf YTGet-macOS.tar.gz\n```\nThis will produce a YTGet.app bundle in your current directory.\n\n3. Remove Quarantine Flag\nIf you see \u201ccannot be opened because Apple cannot check it for malicious software,\u201d you need to strip the quarantine attribute:\n```\nxattr -d com.apple.quarantine YTGet.app\n```\nThis lets macOS trust your app without popping security dialogs every launch.\n\n4. Set Executable Permission\n```\nchmod +x YTGet.app/Contents/MacOS/YTGet\n```\n5. Move to Applications (Optional)\n \nFor a cleaner setup, drag YTGet.app into your /Applications folder or run:\n```\nmv YTGet.app /Applications/\n```\n6. Launch YTGet\n \nChoose one:\n* From Finder: double-click /Applications/YTGet.app.\n* From Terminal:\n ```\n open /Applications/YTGet.app\n ```\n* Or run the binary directly:\n ```\n /Applications/YTGet.app/Contents/MacOS/YTGet\n ``` \n \n\n### \ud83d\udc0d [PyPI Installation](https://pypi.org/project/ytget-gui/)\nYTGet GUI depends on FFmpeg to process and convert media. Follow these steps to get everything up and running:\n\n#### 1\ufe0f\u20e3 Install YTGet GUI\n```\npip install ytget-gui\n```\n#### 2\ufe0f\u20e3 Set Up FFmpeg\n\nChoose one of the two methods below:\n\n**2.1 Add FFmpeg to Your PATH (Recommended)**\n* Download the latest FFmpeg build for your platform from this [Link](https://ffmpeg.org/download.html).\n* Extract the archive.\n* Add the bin/ directory to your system PATH:\n \n On Windows: update Environment Variables \u2192 Path.\n \n On macOS/Linux: edit ~/.bashrc or ~/.zshrc with\n ```\n export PATH=\"/path/to/ffmpeg/bin:$PATH\"\n ```\n* Verify installation:\n ```\n ffmpeg -version\n ```\n**2.2 Copy Binaries into the YTGet Folder (Alternative)**\n\n * Download the static FFmpeg binaries for your OS.\n\n * Copy ffmpeg (or ffmpeg.exe) and ffprobe (or ffprobe.exe) into the same directory where the ytget-gui executable lives. \n\n#### \ud83d\udd04 How to Update (PyPI version)\n\nTo upgrade your PyPI installation to the latest release:\n```\npip install --upgrade ytget-gui\n```\nThis command fetches and installs the newest version, replacing your current one automatically.\n\n#### \u2728 Extra Tips You Might Find Useful\n* On macOS, you can also use Homebrew:\n```\nbrew install ffmpeg\n```\n* On Debian/Ubuntu:\n```\nsudo apt update && sudo apt install ffmpeg\n```\n\n---\n\n## \u2728 Features\n\n### \ud83d\udda5\ufe0f Interface\n- \ud83c\udfaf **Clean Qt GUI** \u2014 Intuitive layout with dark-friendly visuals. \n- \ud83d\uded1 **Cancel Anytime** \u2014 Gracefully stop downloads at any moment. \n- \ud83d\udd12 **Offline Capable** \u2014 No Python installation required.\n\n### \ud83d\udce5 Download Options\n- \ud83d\udcf9 **Multiple Formats** \u2014 Download videos from 480p up to 8K. \n- \ud83c\udfb5 **MP3 Mode** \u2014 High-quality audio extraction with embedded thumbnails & metadata. \n- \ud83d\udcc4 **Subtitles** \u2014 Auto-fetch subtitles (multi-language). \n- \ud83d\udcc2 **Playlist Support** \u2014 Download entire playlists in audio/video mode.\n\n### \ud83d\udd27 Advanced Features\n- \u2699\ufe0f **Persistent Settings** \u2014 All settings saved to `config.json`. \n- \ud83d\ude80 **Improved Playlist Support** \u2014 Reverse order, select items, archive tracking. \n- \u2702\ufe0f **Clip Extraction** \u2014 Download video portions by start/end time. \n- \u23ed\ufe0f **SponsorBlock** \u2014 Skip sponsored content, intros, and outros. \n- \ud83e\udde9 **Chapters Handling** \u2014 Embed or split videos by chapters. \n- \ud83c\udfbc **YouTube Music Metadata** \u2014 Accurate music info and album data.\n\n### \ud83d\udee0 Functionality\n- \ud83c\udf10 **Proxy Support** \u2014 Configure proxies for downloads. \n- \ud83d\udcc5 **Date Filter** \u2014 Download videos uploaded after a specified date. \n- \ud83e\uddea **Custom FFmpeg Args** \u2014 Add advanced arguments for power users. \n- \ud83d\udd0a **Audio Normalization** \u2014 Uniform volume for all downloads. \n- \ud83d\uddc3 **Channel Organization** \u2014 Auto-sort videos into uploader folders. \n- \u26a1 **Performance Enhancements** \u2014 Smart rate limiting and retry logic.\n\n---\n\n## \ud83d\uddbc Screenshots\n\n<p align=\"center\">\n <img src=\"https://raw.githubusercontent.com/ErfanNamira/YTGet/refs/heads/main/Images/YTGet2.4%20(1).JPG\" width=\"220\" />\n <img src=\"https://raw.githubusercontent.com/ErfanNamira/YTGet/refs/heads/main/Images/YTGet2.4%20(2).JPG\" width=\"220\" />\n <img src=\"https://raw.githubusercontent.com/ErfanNamira/YTGet/refs/heads/main/Images/YTGet2.4%20(3).JPG\" width=\"220\" />\n <img src=\"https://raw.githubusercontent.com/ErfanNamira/ytget/refs/heads/main/Images/YTGet2.4.3.JPG\" width=\"220\" />\n</p>\n\n---\n\n## \ud83e\uddf0 How to Use\n\n1. \u25b6\ufe0f Launch `YTGet`. \n2. \ud83d\udd17 Paste a YouTube URL. \n3. \ud83c\udf9a\ufe0f Select format (e.g., 1080p MKV or MP3). \n4. \u2b07\ufe0f Click **\u2795 Add to Queue**. \n5. \u2b07\ufe0f Click **\u25b6\ufe0f Start Queue**.\n\n---\n\n## \ud83d\udcc1 Output\n\n- \u2705 Clean filenames: `%(title)s.ext` \n- \ud83c\udfb5 Audio downloads include:\n - Embedded album art \n - Metadata tags (artist, title, etc.) \n\n---\n\n## \ud83e\udde9 Format Options\n\n| Format | Description |\n|-----------------|-------------------------------------------------|\n| \ud83c\udf9e\ufe0f 480p\u20138K | MKV, MP4, WebM video with merged best audio |\n| \ud83c\udfb5 FLAC Audio | High-quality audio with tags & thumbnails |\n| \ud83c\udfb5 MP3 Audio | High-quality audio with tags & thumbnails |\n| \ud83d\udcc3 Playlist MP3 | Batch audio extraction from playlists |\n\n---\n\n## \ud83d\udd12 Cookies Support\n\nFor **age-restricted** or **private content**:\n\n1. Export cookies using [Get cookies.txt](https://chrome.google.com/webstore/detail/get-cookiestxt/lgmpjfekhdgcmpcpnmlhkfkfjdkpmoec) extension. \n2. Place the file in `_internal/cookies.txt`.\n\n---\n\n## \u2699\ufe0f Requirements\n\n- \u2705 No installation \u2014 just unzip and run. \n- \ud83e\ude9f Windows 10+ (64-bit).\n\n---\n\n## \ud83d\udd27 Development Setup\n\n### Prerequisites\n\n- [Python 3.13+](https://www.python.org/downloads/) \n- [FFmpeg](https://www.ffmpeg.org/download.html) (Add to PATH or project folder)\n\n### Setup\n\n```bash\n# Clone the repo\ngit clone https://github.com/ErfanNamira/ytget-gui.git\n\n# Navigate to project\ncd ytget-gui\n\n# Create & activate virtual environment\npython -m venv venv\n# Linux/Mac\nsource venv/bin/activate\n# Windows\nvenv\\Scripts\\activate\n\n# Install dependencies\npip install -r requirements.txt\n\n# Run app\npython -m ytget_gui\n```\n---\n\n## \ud83e\udd1d Contribution Guide\n\n1. Fork & clone the repo\n\n2. Create a feature branch: git checkout -b my-feature\n\n3. Commit & push: git commit -m \"msg\" && git push origin my-feature\n\n4. Open a Pull Request\n\n---\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the **MIT License**. See the [LICENSE](./LICENSE) file for full details.\n\n---\n\n## \ud83d\udce6 Download\n\n\ud83d\udc49 [Latest Release (.zip)](https://github.com/ErfanNamira/YTGet/releases/latest)\n",
"bugtrack_url": null,
"license": null,
"summary": "A GUI YouTube downloader powered by yt-dlp",
"version": "2.4.7.3",
"project_urls": {
"Homepage": "https://github.com/ErfanNamira/ytget-gui",
"Issues": "https://github.com/ErfanNamira/ytget-gui/issues",
"Repository": "https://github.com/ErfanNamira/ytget-gui"
},
"split_keywords": [
"youtube-downloader",
" downloader",
" yt-dlp",
" yt-dlp-gui",
" audio-downloader",
" video-downloader"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1844f92ec47738ec9a6a85e9d7afe82cc79ea71a96dea27ee57072548633e075",
"md5": "7905861541cac37afa5805c621c956a2",
"sha256": "619eb11cd0e2f1aaf171a31229d43e66b516fd04fcad34d93de620fcd4ada61e"
},
"downloads": -1,
"filename": "ytget_gui-2.4.7.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7905861541cac37afa5805c621c956a2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.13",
"size": 234526,
"upload_time": "2025-08-30T11:26:13",
"upload_time_iso_8601": "2025-08-30T11:26:13.351866Z",
"url": "https://files.pythonhosted.org/packages/18/44/f92ec47738ec9a6a85e9d7afe82cc79ea71a96dea27ee57072548633e075/ytget_gui-2.4.7.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3557fef657e7716993076a9238837203f942a0a1d2267b027d9b1c25c3257ff4",
"md5": "2377aaf73ec08d81ee95aa108b4082e0",
"sha256": "b9f073d606b2f33b3d87b6444c20bf6f637558199b083390d4829197e77d7027"
},
"downloads": -1,
"filename": "ytget_gui-2.4.7.3.tar.gz",
"has_sig": false,
"md5_digest": "2377aaf73ec08d81ee95aa108b4082e0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.13",
"size": 232094,
"upload_time": "2025-08-30T11:26:14",
"upload_time_iso_8601": "2025-08-30T11:26:14.494137Z",
"url": "https://files.pythonhosted.org/packages/35/57/fef657e7716993076a9238837203f942a0a1d2267b027d9b1c25c3257ff4/ytget_gui-2.4.7.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-30 11:26:14",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ErfanNamira",
"github_project": "ytget-gui",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "yt-dlp",
"specs": []
},
{
"name": "PySide6",
"specs": []
},
{
"name": "requests",
"specs": []
},
{
"name": "mutagen",
"specs": []
},
{
"name": "Pillow",
"specs": []
},
{
"name": "packaging",
"specs": []
}
],
"lcname": "ytget-gui"
}