โ Why YTSage?
YTSage is designed for users who want a simple yet powerful YouTube downloader. Unlike other tools, it offers:
- A clean, modern PySide6 interface
- One-click downloads for video, audio, and subtitles
- Advanced features like SponsorBlock, subtitle merging, and playlist selection
- Cross-platform support and easy installation
โจ Features
| Core Features | Advanced Features | Extra Features |
|---|---|---|
| ๐ฅ Format Table | ๐ซ SponsorBlock Integration | ๐๏ธ FPS/HDR Display |
| ๐ต Audio Extraction | ๐ Multi-Subtitle Select & Merge | ๐ Auto-Update yt-dlp |
| โจ Simple UI | ๐พ Save Description & Thumbnail | ๐ ๏ธ FFmpeg/yt-dlp/Deno Detection |
| ๐ Playlist Support & Selector | ๐ Speed Limiter | โ๏ธ Custom Commands |
| ๐ Embed Chapters | โ๏ธ Trim Video Sections | ๐ช Login with Cookies |
| ๐ Download History | ๐ Release Channel Selection | ๐ Proxy Support |
| ๐๏ธ Audio Format Conversion | ๐ฌ Video Format Settings | ๐ Built-in Updater Tab |
๐ Installation
โก Quick Install (Recommended)
Install YTSage from PyPI:
๐ Update an existing installation
pip install --upgrade ytsage
Then launch the app:
๐ฆ Pre-built Executables
๐ช Windows
| Format | Description |
|---|---|
| Standard installer | |
| With FFmpeg bundled | |
| Portable version, no installation required | |
| Portable with FFmpeg, zipped |
๐ ๏ธ Installation Steps
- EXE Installer (
.exe): Double-click the file and follow the setup wizard. - Portable Version (
.zip): Extract the archive to your desired location and runytsage.exe. - FFmpeg Bundled: Choose the FFmpeg bundled versions if you don't have FFmpeg installed on your system.
๐ง Linux
| Format | Description |
|---|---|
| Debian package | |
| AppImage, portable | |
| RPM package | |
| Flatpak Bundle |
๐ ๏ธ Installation Steps
- DEB (
.deb):sudo dpkg -i ytsage_*.deb sudo apt-get install -f # Fix missing dependencies if any
- RPM (
.rpm): - AppImage (
.AppImage):chmod +x YTSage-*.AppImage ./YTSage-*.AppImage
- Flatpak: Follow instructions on Flathub or run:
flatpak install flathub io.github.oop7.ytsage
๐ macOS
| Format | Description |
|---|---|
| Zipped application for Apple Silicon | |
| Disk image installer for Apple Silicon |
๐ ๏ธ Installation Steps
- DMG Installer (
.dmg): Double-click to mount, then dragYTSage.appinto your Applications folder. - App Archive (
.zip): Extract the zip and moveYTSage.appto your Applications folder.
Note: If you encounter an "App is damaged" error, see the macOS troubleshooting section below.
๐ป Manual Installation from Source
1. Clone the Repository
git clone https://github.com/oop7/YTSage.git
cd YTSage2. Install Dependencies
โก With uv
๐ฆ Or with standard pip
3. Run the Application
๐ธ Screenshots
๐ Usage
๐ฏ Basic Usage
- Launch YTSage
- Paste YouTube URL (or use "Paste URL" button)
- Click "Analyze"
- Select Format:
Videofor video downloadsAudio Onlyfor audio extraction
- Choose Options:
- Enable subtitles & select language
- Enable subtitle merge
- Save thumbnail
- Remove sponsor segments
- Save description
- Embed chapters
- Select Output Directory
- Click "Download"
๐ก The default download directory is the user's "Downloads" folder.
๐ Playlist Download
- Paste Playlist URL
- Click "Analyze"
- Select videos from the playlist selector (optional, defaults to all)
- Choose desired format/quality
- Click "Download"
๐ก The application automatically handles the download queue
๐งฐ Advanced Options
- Subtitle Options: Filter languages and embed into video file
- Subtitle Merge: Merge subtitles into video file for hardcoded subtitles
- Custom Commands: Access advanced yt-dlp features via command line arguments
- Save Description: Save the description of the video as a text file
- Save Thumbnail: Save the thumbnail of the video as an image file
- Embed Chapters: Embed chapter markers as metadata in the downloaded video file for compatible video players
- Remove Sponsor Segments: Remove sponsor segments from the video using SponsorBlock
- Speed Limiter: Limit the download speed (e.g.,
500Kfor 500 KB/s) - Login with Cookies: Login to YouTube using cookies to access private content
How to use it:- Recommended: Use the built-in "Extract cookies from browser" option in the app. Select your browser (Chrome, Firefox, etc.) and then select Profile (optional).
- Alternatively, extract cookies manually:
a. Extract cookies from your browser using an extension like cookie-editor
b. Copy the cookies in Netscape format
c. Create a file named
cookies.txtand paste the cookies into it d. Select thecookies.txtfile in the app
- Save Download Path: Save the default download path for future downloads. Available in Download Settings โ Download Path.
- Output Filename Format: Customize the output filename format using variables like
%(title)s,%(uploader)s,%(resolution)s, etc. Available in Download Settings โ Filename Format. - Updater Tab: Unified tab in Custom Options for managing all updates:
- yt-dlp Updates: Check and update yt-dlp to the latest version, with release channel selection (Stable/Nightly)
- FFmpeg Version Checker: Check your FFmpeg version with direct links to installation guides
- Deno Updates: Check and update Deno runtime to the latest version
- FFmpeg/yt-dlp/Deno Detection: Automatically detect FFmpeg/yt-dlp/Deno path and version. You can use this option by clicking on about button.
- Trim Video: Download only specific parts of a video by specifying time ranges (HH:MM:SS format)
- Proxy Support: Use a proxy server for downloads (e.g.,
http://<proxy-server>:<port>) - Force Output Format: Force video downloads in a specific container format (e.g.,
mp4,webm,mkv). Available in Download Settings โ Output Format Settings. - Audio Format Conversion: Convert audio-only downloads to preferred formats (
AAC,MP3,FLAC,WAV,Opus,M4A,Vorbis, orBest). Ideal for video editing software like DaVinci Resolve. Available in Download Settings โ Audio Format Settings. - Download History: View past downloads with thumbnails and statuses. You can use this option by clicking on the History button.
๐ Localization
YTSage supports 14 languages for worldwide accessibility. Select your preferred language from Custom Options โ Language.
Supported Languages
| Language | Code | Language | Code |
|---|---|---|---|
| ๐บ๐ธ English | en |
๐ช๐ธ Spanish | es |
| ๐ธ๐ฆ Arabic | ar |
๐ซ๐ท French | fr |
| ๐ฉ๐ช German | de |
๐ฎ๐ณ Hindi | hi |
| ๐ฎ๐ฉ Indonesian | id |
๐ฎ๐น Italian | it |
| ๐ฏ๐ต Japanese | ja |
๐ต๐ฑ Polish | pl |
| ๐ง๐ท Portuguese | pt |
๐ท๐บ Russian | ru |
| ๐น๐ท Turkish | tr |
๐จ๐ณ Chinese | zh |
๐ก Want to contribute a translation? Check out the Contributing section to help us add more languages!
๐ ๏ธ Troubleshooting
Click to view common issues and solutions
- Format table not displaying: Update yt-dlp to the latest version, and switch to yt-dlp nightly.
- Download fails: Check your internet connection and ensure the video is available.
- Specific download errors:
- Private videos: Use cookie authentication to access private content.
- Age-restricted content: Login to YouTube account to view age-restricted videos.
- Geo-blocked videos: Consider using a VPN to bypass regional restrictions.
- Removed/deleted videos: Video is no longer available on YouTube.
- Live streams: Live streams cannot be downloaded; wait for the stream to end.
- Network errors: Check your internet connection and try again.
- Invalid URLs: Ensure the URL is correct and from a supported platform.
- Premium content: Requires YouTube Premium membership.
- Copyright blocks: Content is blocked due to copyright restrictions.
- Separate video and audio files after download: This happens when FFmpeg is missing or not detected. YTSage requires FFmpeg to merge high-quality video and audio streams.
- Solution: Ensure FFmpeg is installed and accessible in your system's PATH. For Windows users, the easiest option is to download the
YTSage-v<version>-ffmpeg.exefile, which comes bundled with FFmpeg.
- Solution: Ensure FFmpeg is installed and accessible in your system's PATH. For Windows users, the easiest option is to download the
๐ก๏ธ Windows Defender / Antivirus Warning
Some antivirus software may flag the .exe files as false positives. This is a known limitation of packaged applications.
Why this happens:
- Antivirus heuristics can misidentify packed executables as suspicious
Safe alternatives:
- โ
Use pip installation:
pip install ytsage(recommended) - โ Build from source: by following this guide
- โ Whitelist the application in your antivirus software
๐ macOS: "App is damaged and canโt be opened"
If you see this error on macOS Sonoma or newer, you need to remove the quarantine attribute.
- Open Terminal (you can find it using Spotlight).
- Type the following command but do not press Enter yet. Make sure to include the space at the end:
xattr -d com.apple.quarantine
- Drag the
YTSage.appfile from your Finder window and drop it directly into the Terminal window. This will automatically paste the correct file path. - Press Enter to run the command.
- Try opening YTSage.app again. It should now launch correctly.
Configuration Locations (Advanced)
- Windows:
%LOCALAPPDATA%\YTSage - macOS:
~/Library/Application Support/YTSage - Linux:
~/.local/share/YTSage
๐ฅ Contributing
We welcome contributions! Here's how you can help:
- ๐ด Fork the repository
- ๐ฟ Create your feature branch:
git checkout -b feature/AmazingFeature
- ๐พ Commit your changes:
git commit -m 'Add some AmazingFeature'- ๐ค Push to the branch:
git push origin feature/AmazingFeature
- ๐ Open a Pull Request
๐ Project Structure
YTSage - Project Structure
This document describes the organized folder structure of YTSage.
๐ Project Structure
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 # Master release workflow
โ โโโ ๐ CI_CD_README.md # CI/CD documentation
โโโ ๐ branding/ # Branding assets (Screenshots, SVGs)
โ โโโ ๐ icons/ # Application icons
โ โโโ ๐ screenshots/ # Screenshots for documentation
โ โโโ ๐ 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/ # Application icons
โ โโโ ๐ sound/ # Audio 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/ # User interface components
โ โโโ ๐ __init__.py # GUI package init
โ โโโ ๐ ytsage_gui_main.py # Main application window
โ โโโ ๐ ytsage_gui_dialogs/ # Dialog classes
โโโ ๐ utils/ # Utility modules
โ โโโ ๐ __init__.py # Utils package init
โ โโโ ๐ ytsage_config_manager.py # Configuration management
โ โโโ ๐ ytsage_logger.py # Logging utilities
โโโ ๐ __init__.py # Package entry point
โโโ ๐ main.py # Main execution script
โญ๏ธ Star History
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
Show Acknowledgments
A heartfelt thank you to everyone who has 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 integration with yt-dlp |
| Libraries & Frameworks | |
| PySide6 | GUI Framework |
| Pillow | Image Processing |
| requests | HTTP Requests |
| packaging | Version & Package Handling |
| markdown | Markdown Rendering |
| loguru | Logging |
| Assets & Contributors | |
| New Notification 09 by Universfield | Notification Sound |
| viru185 | Code Contributor |
โ ๏ธ Disclaimer
This tool is for personal use only. Please respect YouTube's terms of service and content creators' rights.
Made with โค๏ธ by oop7