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.
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 |
Install YTSage via PyPI:
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"
| Format | Description |
|---|---|
| Standard Installer | |
| With FFmpeg Included | |
| 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.| Format | Description |
|---|---|
| Debian Package | |
| AppImage, Portable | |
| RPM Package | |
| Flatpak Bundle |
.deb):sudo dpkg -i ytsage_*.deb
sudo apt-get install -f # Fix missing dependencies if needed
.rpm):sudo rpm -i ytsage-*.rpm
.AppImage):chmod +x YTSage-*.AppImage
./YTSage-*.AppImage
flatpak install flathub io.github.oop7.ytsage
| Format | Description |
|---|---|
| Zipped Application for Apple Silicon | |
| Disk Image Installer 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 macOS troubleshooting section below.
git clone https://github.com/oop7/YTSage.git
cd YTSage
uv pip install .
pip install .
python -m ytsage.main
![]() |
![]() |
| Download Settings | Playlist Download |
![]() |
![]() |
| Audio Format | Custom Options |
Video for video downloadsAudio Only for audio extraction๐ก Default download directory is the userโs โDownloadsโ folder.
๐ก The application automatically handles the download queue, and you can export playlist entries as
.txt,.csv,.m3u, or.json.
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.en,es). Available in Download Settings โ Default Subtitle Languages.%(title)s, %(uploader)s, %(playlist_index)s, and %(resolution)s. Available in Download Settings โ Filename Format.mp4, webm, or mkv. Available in Download Settings โ Output Format Settings.AAC, MP3, FLAC, WAV, Opus, M4A, Vorbis, or Best. Available in Download Settings โ Audio Format Settings.Extract cookies from browser option in the app, then select your browser and optionally a profile.cookies.txt and paste cookiescookies.txt file in the apphttp://<proxy-server>:<port>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.
We 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.
| 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 | |
| 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