Modern YouTube downloader with a clean PySide6 interface. Download videos in any quality, extract audio, fetch subtitles, sponsorBlock, and view video metadata. Built with yt-dlp for reliable performance.
Python
4,659
707 commits
updated Oct 14, 2026
Modern YouTube downloader with a clean PySide6 interface.
Download videos in any quality, extract audio, fetch subtitles, and more.
English: EN | Arabic: AR | German: DE | Spanish: ES | French: FR | Hindi: HI | Indonesian: ID | Italian: IT | Japanese: JA | Korean: KO | Polish: PL | Portuguese: PT | Russian: RU | Turkish: TR | Chinese: ZH | Persian: FA
Installation โข Features โข Usage โข Screenshots โข Troubleshooting โข Telegram โข Sponsor โข Contributing
YTSage is designed for users who want a simple yet powerful YouTube downloader. Unlike other tools, it offers:
| Core Features | Advanced Features | Extra Features |
|---|---|---|
| ๐ฅ Format Table | ๐ซ SponsorBlock Integration | ๐๏ธ FPS/HDR Display |
| ๐ต Audio Extraction | ๐ Subtitle Selection & Merging | ๐ Auto Update yt-dlp |
| โจ Simple UI | ๐พ Save Description & Thumbnail | ๐ ๏ธ FFmpeg/yt-dlp/Deno Detection |
| ๐ Playlist Support & Selector | ๐ Speed Limiter | โ๏ธ Custom Commands |
| ๐ Chapter Integration | โ๏ธ Video Section Trimming | ๐ช Login with Cookies |
| ๐ Download History | ๐ Version Channel Selection | ๐ Proxy Support |
| ๐๏ธ Audio Format Conversion | ๐ฌ Video Format Settings | ๐ Built-in Updater Tab |
| ๐ Generic Mode | ๐ Audio Normalization (EBU R128) | ๐ Localized in 16 Languages |
| ๐พ Playlist Export | โ๏ธ Default Quality & Subtitles |
If you just want to use YTSage and don't know what Python is, start here
Simply download the pre-built installer for your operating system:
| Format | Description |
|---|---|
| Standard Installer (Recommended) - Just double-click to install. | |
| With FFmpeg Included (Use this if you don't already have FFmpeg). | |
| Portable version, no installation needed. | |
| Portable with FFmpeg, zipped. |
.exe): Double-click the file and follow the setup wizard..zip): Extract the archive to your desired location and launch ytsage.exe.โ ๏ธ Note: These installers are natively built for Apple Silicon (M1/M2/M3/M4). If you are using an older Intel Mac, please use the Python installation method below.
| Format | Description |
|---|---|
| Disk Image Installer (Recommended) - Open and drag to Applications. | |
| Zipped Application for Apple Silicon. |
.dmg): Double-click to mount, then drag YTSage.app to your Applications folder..zip): Extract the zip and move YTSage.app to your Applications folder.Note: If you encounter an "Application is damaged" error, see the troubleshooting section below.
| Format | Description |
|---|---|
| Portable AppImage (Recommended) | |
| Debian Package | |
| RPM Package | |
| Flatpak Bundle |
.AppImage):
chmod +x YTSage-*.AppImage
./YTSage-*.AppImage
.deb):
sudo dpkg -i ytsage_*.deb
sudo apt-get install -f # Fix missing dependencies if needed
.rpm):
sudo rpm -i ytsage-*.rpm
flatpak install flathub io.github.oop7.ytsage
You can also install YTSage via Python (Requires Python 3.11+)
๐ก Awesome Feature: If you install via pip on Windows, YTSage will automatically detect and help set up FFmpeg for you (macOS and Linux users can follow our easy FFmpeg Installation Guide)
pip install ytsage
pip install --upgrade ytsage
Then launch the application:
ytsage
You can also open YTSage with a video or playlist URL prefilled and analyzed immediately:
ytsage "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
Run YTSage directly from the source code.
git clone https://github.com/oop7/YTSage.git
cd YTSage
โก Using uv
uv pip install .
๐ฆ Or using standard pip
pip install .
python -m ytsage.main
![]() | ![]() |
| Download Settings | Playlist Download |
![]() | ![]() |
| Audio Format | Custom Options |
Video for video downloadsAudio for audio extraction๐ก You can now select and merge multiple audio tracks from the Audio section into a single video. Whether you want to combine a video with multiple language tracks, or merge several audio streams together.
Choose Options:
Click "Download"
๐ก Default download directory is the user's "Downloads" folder.
๐ก You can export playlist entries as (
.txt,.csv,.m3u, or.json) by clicking on "Save Playlist As" button.
Use Generic Mode when you want YTSage to accept URLs from sites supported by yt-dlp, such as Dailymotion, CBC Gem, TikTok, and others.
How to use it:
Download Settings.Generic Mode.Analyze.Notes:
HH:MM:SS format.500K for 500 KB/s. Available in Download Settings โ General โ Speed Limit.mp4, webm, mkv). Available in Download Settings โ Format โ Output Format Settings.AAC, MP3, FLAC, WAV, Opus, M4A, Vorbis, or Best). Available in Download Settings โ Format โ Audio Format Settings.1080, 720) and preferred subtitle languages (en, es, etc.) plus subtitle container format (srt, vtt, ass, lrc). Available in Download Settings โ Format โ Default Selection Settings.%(title)s_%(resolution)s_[%(id)s].%(ext)s). Reset button included. Available in Download Settings โ File โ Filename Format.cookies.txt file.yt-dlp arguments directly with live output logging and execution console. Access via Custom Options โ Custom Command.YTSage supports 16 languages for global accessibility. Select your preferred language in Custom Options โ Language.
| Language | Code | Language | Code |
|---|---|---|---|
| ๐บ๐ธ English | en | ๐ช๐ธ Spanish | es |
| ๐ธ๐ฆ Arabic | ar | ๐ซ๐ท French | fr |
| ๐ฉ๐ช German | de | ๐ฎ๐ณ Hindi | hi |
| ๐ฎ๐ฉ Indonesian | id | ๐ฎ๐น Italian | it |
| ๐ฏ๐ต Japanese | ja | ๐ฐ๐ท Korean | ko |
| ๐ต๐ฑ Polish | pl | ๐ง๐ท Portuguese | pt |
| ๐ท๐บ Russian | ru | ๐น๐ท Turkish | tr |
| ๐จ๐ณ Chinese | zh | ๐ฎ๐ท Persian | fa |
| Language | File | Language | File |
|---|---|---|---|
| ๐บ๐ธ English | README.md | ๐ช๐ธ Spanish | readme-translations/README.es.md |
| ๐ธ๐ฆ Arabic | readme-translations/README.ar.md | ๐ซ๐ท French | readme-translations/README.fr.md |
| ๐ฉ๐ช German | readme-translations/README.de.md | ๐ฎ๐ณ Hindi | readme-translations/README.hi.md |
| ๐ฎ๐ฉ Indonesian | readme-translations/README.id.md | ๐ฎ๐น Italian | readme-translations/README.it.md |
| ๐ฏ๐ต Japanese | readme-translations/README.ja.md | ๐ฐ๐ท Korean | readme-translations/README.ko.md |
| ๐ต๐ฑ Polish | readme-translations/README.pl.md | ๐ง๐ท Portuguese | readme-translations/README.pt.md |
| ๐ท๐บ Russian | readme-translations/README.ru.md | ๐น๐ท Turkish | readme-translations/README.tr.md |
| ๐จ๐ณ Chinese | readme-translations/README.zh.md | ๐ฎ๐ท Persian | readme-translations/README.fa.md |
๐ก Want to contribute a translation? Check out the Contributing section to help us add more languages!
YTSage-v<version>-ffmpeg.exe file, which comes bundled with FFmpeg.Some antivirus software may flag .exe files as false positives. This is a known limitation of packaged applications.
Why this happens:
Safe Alternatives:
pip install ytsage (Recommended)If you see this error on macOS Sonoma or newer, you need to remove the quarantine attribute.
xattr -d com.apple.quarantine
YTSage.app file from your Finder window and drop it directly into the Terminal window. This will automatically paste the correct file path.%LOCALAPPDATA%\YTSage~/Library/Application Support/YTSage~/.local/share/YTSageIf YTSage saves you time, please consider sponsoring the project. Sponsoring helps cover development time, testing across all platforms, and future improvements.
oop7_support@proton.meWe welcome contributions! Hereโs how you can help:
git checkout -b feature/AmazingFeature
git commit -m 'Add some AmazingFeature'
git push origin feature/AmazingFeature
readme-translations/README.fr.md)ytsage/languages/<code>.jsonREADME.md and create readme-translations/README.<code>.mdThis document describes the organized folder structure of YTSage.
YTSage/
โโโ ๐ .github/ # GitHub configuration
โ โโโ ๐ ISSUE_TEMPLATE/ # Issue templates
โ โ โโโ ๐-bug-report.md # Bug report template
โ โโโโ ๐ workflows/ # GitHub Actions workflows
โ โ โโโ build-linux.yml # Linux build workflow
โ โ โโโ build-macos.yml # macOS build workflow
โ โ โโโ build-windows.yml # Windows build workflow
| | โโโ release-all.yml # Release master workflow
| | โโโ star-history.yml # Star history workflow
โ โโโ ๐ CI_CD_README.md # CI/CD documentation
โโโ ๐ branding/ # Branding assets (Screenshots, SVGs)
โ โโโ ๐ icons/ # App icons
โ โโโ ๐ screenshots/ # Documentation screenshots
โ โโโ ๐ svg/ # SVG assets
โโโ ๐ LICENSE # License file
โโโ ๐ pyproject.toml # Project metadata and dependencies
โโโ ๐ README.md # Project documentation
โโโ ๐ requirements.txt # Python dependencies (dev)
โโโ ๐ ytsage/ # Source package
โโโ ๐ assets/ # Runtime assets
โ โโโ ๐ Icon/ # App icons
โ โโโ ๐ sound/ # Sound files
โโโ ๐ languages/ # Localization files
โ โโโ ๐ ar.json # Arabic translation
โ โโโ ๐ de.json # German translation
โ โโโ ๐ en.json # English translation
โ โโโ ... # Other languages
โโโ ๐ core/ # Core business logic
โ โโโ ๐ __init__.py # Core package init
โ โโโ ๐ ytsage_deno.py # Deno integration
โ โโโ ๐ ytsage_downloader.py # Download functionality
โ โโโ ๐ ytsage_ffmpeg.py # FFmpeg integration
โ โโโ ๐ ytsage_utils.py # Utility functions
โ โโโ ๐ ytsage_yt_dlp.py # yt-dlp integration
โโโ ๐ gui/ # UI components
โ โโโ ๐ __init__.py # GUI package init
โ โโโ ๐ ytsage_gui_main.py # Main app window
โ โโโ ๐ ytsage_gui_dialogs/ # Dialog classes
โโโ ๐ utils/ # Utility modules
โ โโโ ๐ __init__.py # Utils package init
โ โโโ ๐ ytsage_config_manager.py # Config management
โ โโโ ๐ ytsage_logger.py # Logging utilities
โโโ ๐ __init__.py # Package entry point
โโโ ๐ main.py # Main execution script
This project is licensed under the MIT License - see the LICENSE file for details.
A big thanks to everyone who contributed to this project by opening an issue to suggest an improvement or report a bug
Special thanks to @bastik-1001 and @dj23me for being the first and major donors supporting this project โค๏ธ
| Core Components | |
|---|---|
| yt-dlp | Download Engine |
| FFmpeg | Media Processing |
| Deno | Runtime for yt-dlp plugins |
| Libraries & Frameworks | |
| PySide6 | GUI Framework |
| Pillow | Image Processing |
| requests | HTTP Requests |
| packaging | Version/Package Management |
| markdown | Markdown Rendering |
| loguru | Logging |
| Assets & Contributors | |
| @bastik-1001 | First & Major Donor Support |
| New Notification 09 by Universfield | Notification Sound |
| viru185 | Code Contributor |
This tool is for personal use only. Please respect YouTube's Terms of Service and content creator rights.
Made with โค๏ธ by oop7
512 followers ยท starred Apr 2026
35 followers ยท starred Aug 2025
24 followers ยท starred Aug 2025
696 followers ยท starred Aug 2025
Modern YouTube downloader with a clean PySide6 interface. Download videos in any quality, extract audio, fetch subtitles, sponsorBlock, and view video metadata. Built with yt-dlp for reliable performance.
Python
4,659
707 commits
updated Oct 14, 2026
Modern YouTube downloader with a clean PySide6 interface.
Download videos in any quality, extract audio, fetch subtitles, and more.
English: EN | Arabic: AR | German: DE | Spanish: ES | French: FR | Hindi: HI | Indonesian: ID | Italian: IT | Japanese: JA | Korean: KO | Polish: PL | Portuguese: PT | Russian: RU | Turkish: TR | Chinese: ZH | Persian: FA
Installation โข Features โข Usage โข Screenshots โข Troubleshooting โข Telegram โข Sponsor โข Contributing
YTSage is designed for users who want a simple yet powerful YouTube downloader. Unlike other tools, it offers:
| Core Features | Advanced Features | Extra Features |
|---|---|---|
| ๐ฅ Format Table | ๐ซ SponsorBlock Integration | ๐๏ธ FPS/HDR Display |
| ๐ต Audio Extraction | ๐ Subtitle Selection & Merging | ๐ Auto Update yt-dlp |
| โจ Simple UI | ๐พ Save Description & Thumbnail | ๐ ๏ธ FFmpeg/yt-dlp/Deno Detection |
| ๐ Playlist Support & Selector | ๐ Speed Limiter | โ๏ธ Custom Commands |
| ๐ Chapter Integration | โ๏ธ Video Section Trimming | ๐ช Login with Cookies |
| ๐ Download History | ๐ Version Channel Selection | ๐ Proxy Support |
| ๐๏ธ Audio Format Conversion | ๐ฌ Video Format Settings | ๐ Built-in Updater Tab |
| ๐ Generic Mode | ๐ Audio Normalization (EBU R128) | ๐ Localized in 16 Languages |
| ๐พ Playlist Export | โ๏ธ Default Quality & Subtitles |
If you just want to use YTSage and don't know what Python is, start here
Simply download the pre-built installer for your operating system:
| Format | Description |
|---|---|
| Standard Installer (Recommended) - Just double-click to install. | |
| With FFmpeg Included (Use this if you don't already have FFmpeg). | |
| Portable version, no installation needed. | |
| Portable with FFmpeg, zipped. |
.exe): Double-click the file and follow the setup wizard..zip): Extract the archive to your desired location and launch ytsage.exe.โ ๏ธ Note: These installers are natively built for Apple Silicon (M1/M2/M3/M4). If you are using an older Intel Mac, please use the Python installation method below.
| Format | Description |
|---|---|
| Disk Image Installer (Recommended) - Open and drag to Applications. | |
| Zipped Application for Apple Silicon. |
.dmg): Double-click to mount, then drag YTSage.app to your Applications folder..zip): Extract the zip and move YTSage.app to your Applications folder.Note: If you encounter an "Application is damaged" error, see the troubleshooting section below.
| Format | Description |
|---|---|
| Portable AppImage (Recommended) | |
| Debian Package | |
| RPM Package | |
| Flatpak Bundle |
.AppImage):
chmod +x YTSage-*.AppImage
./YTSage-*.AppImage
.deb):
sudo dpkg -i ytsage_*.deb
sudo apt-get install -f # Fix missing dependencies if needed
.rpm):
sudo rpm -i ytsage-*.rpm
flatpak install flathub io.github.oop7.ytsage
You can also install YTSage via Python (Requires Python 3.11+)
๐ก Awesome Feature: If you install via pip on Windows, YTSage will automatically detect and help set up FFmpeg for you (macOS and Linux users can follow our easy FFmpeg Installation Guide)
pip install ytsage
pip install --upgrade ytsage
Then launch the application:
ytsage
You can also open YTSage with a video or playlist URL prefilled and analyzed immediately:
ytsage "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
Run YTSage directly from the source code.
git clone https://github.com/oop7/YTSage.git
cd YTSage
โก Using uv
uv pip install .
๐ฆ Or using standard pip
pip install .
python -m ytsage.main
![]() | ![]() |
| Download Settings | Playlist Download |
![]() | ![]() |
| Audio Format | Custom Options |
Video for video downloadsAudio for audio extraction๐ก You can now select and merge multiple audio tracks from the Audio section into a single video. Whether you want to combine a video with multiple language tracks, or merge several audio streams together.
Choose Options:
Click "Download"
๐ก Default download directory is the user's "Downloads" folder.
๐ก You can export playlist entries as (
.txt,.csv,.m3u, or.json) by clicking on "Save Playlist As" button.
Use Generic Mode when you want YTSage to accept URLs from sites supported by yt-dlp, such as Dailymotion, CBC Gem, TikTok, and others.
How to use it:
Download Settings.Generic Mode.Analyze.Notes:
HH:MM:SS format.500K for 500 KB/s. Available in Download Settings โ General โ Speed Limit.mp4, webm, mkv). Available in Download Settings โ Format โ Output Format Settings.AAC, MP3, FLAC, WAV, Opus, M4A, Vorbis, or Best). Available in Download Settings โ Format โ Audio Format Settings.1080, 720) and preferred subtitle languages (en, es, etc.) plus subtitle container format (srt, vtt, ass, lrc). Available in Download Settings โ Format โ Default Selection Settings.%(title)s_%(resolution)s_[%(id)s].%(ext)s). Reset button included. Available in Download Settings โ File โ Filename Format.cookies.txt file.yt-dlp arguments directly with live output logging and execution console. Access via Custom Options โ Custom Command.YTSage supports 16 languages for global accessibility. Select your preferred language in Custom Options โ Language.
| Language | Code | Language | Code |
|---|---|---|---|
| ๐บ๐ธ English | en | ๐ช๐ธ Spanish | es |
| ๐ธ๐ฆ Arabic | ar | ๐ซ๐ท French | fr |
| ๐ฉ๐ช German | de | ๐ฎ๐ณ Hindi | hi |
| ๐ฎ๐ฉ Indonesian | id | ๐ฎ๐น Italian | it |
| ๐ฏ๐ต Japanese | ja | ๐ฐ๐ท Korean | ko |
| ๐ต๐ฑ Polish | pl | ๐ง๐ท Portuguese | pt |
| ๐ท๐บ Russian | ru | ๐น๐ท Turkish | tr |
| ๐จ๐ณ Chinese | zh | ๐ฎ๐ท Persian | fa |
| Language | File | Language | File |
|---|---|---|---|
| ๐บ๐ธ English | README.md | ๐ช๐ธ Spanish | readme-translations/README.es.md |
| ๐ธ๐ฆ Arabic | readme-translations/README.ar.md | ๐ซ๐ท French | readme-translations/README.fr.md |
| ๐ฉ๐ช German | readme-translations/README.de.md | ๐ฎ๐ณ Hindi | readme-translations/README.hi.md |
| ๐ฎ๐ฉ Indonesian | readme-translations/README.id.md | ๐ฎ๐น Italian | readme-translations/README.it.md |
| ๐ฏ๐ต Japanese | readme-translations/README.ja.md | ๐ฐ๐ท Korean | readme-translations/README.ko.md |
| ๐ต๐ฑ Polish | readme-translations/README.pl.md | ๐ง๐ท Portuguese | readme-translations/README.pt.md |
| ๐ท๐บ Russian | readme-translations/README.ru.md | ๐น๐ท Turkish | readme-translations/README.tr.md |
| ๐จ๐ณ Chinese | readme-translations/README.zh.md | ๐ฎ๐ท Persian | readme-translations/README.fa.md |
๐ก Want to contribute a translation? Check out the Contributing section to help us add more languages!
YTSage-v<version>-ffmpeg.exe file, which comes bundled with FFmpeg.Some antivirus software may flag .exe files as false positives. This is a known limitation of packaged applications.
Why this happens:
Safe Alternatives:
pip install ytsage (Recommended)If you see this error on macOS Sonoma or newer, you need to remove the quarantine attribute.
xattr -d com.apple.quarantine
YTSage.app file from your Finder window and drop it directly into the Terminal window. This will automatically paste the correct file path.%LOCALAPPDATA%\YTSage~/Library/Application Support/YTSage~/.local/share/YTSageIf YTSage saves you time, please consider sponsoring the project. Sponsoring helps cover development time, testing across all platforms, and future improvements.
oop7_support@proton.meWe welcome contributions! Hereโs how you can help:
git checkout -b feature/AmazingFeature
git commit -m 'Add some AmazingFeature'
git push origin feature/AmazingFeature
readme-translations/README.fr.md)ytsage/languages/<code>.jsonREADME.md and create readme-translations/README.<code>.mdThis document describes the organized folder structure of YTSage.
YTSage/
โโโ ๐ .github/ # GitHub configuration
โ โโโ ๐ ISSUE_TEMPLATE/ # Issue templates
โ โ โโโ ๐-bug-report.md # Bug report template
โ โโโโ ๐ workflows/ # GitHub Actions workflows
โ โ โโโ build-linux.yml # Linux build workflow
โ โ โโโ build-macos.yml # macOS build workflow
โ โ โโโ build-windows.yml # Windows build workflow
| | โโโ release-all.yml # Release master workflow
| | โโโ star-history.yml # Star history workflow
โ โโโ ๐ CI_CD_README.md # CI/CD documentation
โโโ ๐ branding/ # Branding assets (Screenshots, SVGs)
โ โโโ ๐ icons/ # App icons
โ โโโ ๐ screenshots/ # Documentation screenshots
โ โโโ ๐ svg/ # SVG assets
โโโ ๐ LICENSE # License file
โโโ ๐ pyproject.toml # Project metadata and dependencies
โโโ ๐ README.md # Project documentation
โโโ ๐ requirements.txt # Python dependencies (dev)
โโโ ๐ ytsage/ # Source package
โโโ ๐ assets/ # Runtime assets
โ โโโ ๐ Icon/ # App icons
โ โโโ ๐ sound/ # Sound files
โโโ ๐ languages/ # Localization files
โ โโโ ๐ ar.json # Arabic translation
โ โโโ ๐ de.json # German translation
โ โโโ ๐ en.json # English translation
โ โโโ ... # Other languages
โโโ ๐ core/ # Core business logic
โ โโโ ๐ __init__.py # Core package init
โ โโโ ๐ ytsage_deno.py # Deno integration
โ โโโ ๐ ytsage_downloader.py # Download functionality
โ โโโ ๐ ytsage_ffmpeg.py # FFmpeg integration
โ โโโ ๐ ytsage_utils.py # Utility functions
โ โโโ ๐ ytsage_yt_dlp.py # yt-dlp integration
โโโ ๐ gui/ # UI components
โ โโโ ๐ __init__.py # GUI package init
โ โโโ ๐ ytsage_gui_main.py # Main app window
โ โโโ ๐ ytsage_gui_dialogs/ # Dialog classes
โโโ ๐ utils/ # Utility modules
โ โโโ ๐ __init__.py # Utils package init
โ โโโ ๐ ytsage_config_manager.py # Config management
โ โโโ ๐ ytsage_logger.py # Logging utilities
โโโ ๐ __init__.py # Package entry point
โโโ ๐ main.py # Main execution script
This project is licensed under the MIT License - see the LICENSE file for details.
A big thanks to everyone who contributed to this project by opening an issue to suggest an improvement or report a bug
Special thanks to @bastik-1001 and @dj23me for being the first and major donors supporting this project โค๏ธ
| Core Components | |
|---|---|
| yt-dlp | Download Engine |
| FFmpeg | Media Processing |
| Deno | Runtime for yt-dlp plugins |
| Libraries & Frameworks | |
| PySide6 | GUI Framework |
| Pillow | Image Processing |
| requests | HTTP Requests |
| packaging | Version/Package Management |
| markdown | Markdown Rendering |
| loguru | Logging |
| Assets & Contributors | |
| @bastik-1001 | First & Major Donor Support |
| New Notification 09 by Universfield | Notification Sound |
| viru185 | Code Contributor |
This tool is for personal use only. Please respect YouTube's Terms of Service and content creator rights.
Made with โค๏ธ by oop7
512 followers ยท starred Apr 2026
35 followers ยท starred Aug 2025
24 followers ยท starred Aug 2025
696 followers ยท starred Aug 2025