YTSage 5.1.0
Install via PyPI:
pip install ytsageUpgrade to the latest version:
pip install --upgrade ytsageDownloads
| Platform | File | Notes |
|---|---|---|
| YTSage-v5.1.0-ffmpeg-Setup.exe | With FFmpeg bundled | |
| YTSage-v5.1.0-Setup.exe | Standard installer | |
| YTSage-v5.1.0-ffmpeg-portable.zip | Portable with FFmpeg, zipped | |
| YTSage-v5.1.0-portable.zip | Portable version, no installation required | |
| YTSage-v5.1.0-amd64.deb | Debian package | |
| YTSage-v5.1.0-x86_64.AppImage | AppImage, portable | |
| YTSage-v5.1.0-x86_64.flatpak | Flatpak Bundle | |
| YTSage-v5.1.0-x86_64.rpm | RPM package | |
| YTSage-v5.1.0-arm64.dmg | Disk image installer for Apple Silicon | |
| YTSage-v5.1.0-arm64.app.zip | Zipped application for Apple Silicon | |
| ytsage-5.1.0-py3-none-any.whl | Python Wheel | |
| ytsage-5.1.0.tar.gz | Source Distribution |
✨ Features
- Concurrent Connections: Boost download speeds by downloading multiple video fragments concurrently. Configurable via Download Settings. (Resolves #87, thanks to @iShoaibMughal)
- Export Playlists: Added a "Save Playlist As" button to export playlist contents to
.txt,.csv,.m3u, or.json. - Enhanced Playlist Export: Exported
.txtand.csvfiles now include the video index and duration (e.g.,1. Video Name [05:20]), matching the Select Videos UI. (#97, thanks to @avtandil33) - Default Preferences: Added new options in Download Settings to set a "Default Video Resolution" and "Default Subtitle Languages".
- Filename Variables: Added support for
%(playlist_index)sin the output filename format. - Persistent Cookies: Added "Remember cookie settings on next startup" option in Custom Options > Login with Cookies to persist login cookies across sessions. (#93, thanks to @avtandil33)
🔧 Improvements
- Smart Filename Templates: Automatically cleans up playlist-specific variables (like
%(playlist_index)s) from filenames when downloading single videos, preventing "NA" prefixes. (#96, thanks to @avtandil33) - Auto-Selection: Automatically checks the correct video quality and subtitles in the format table based on your configured default settings.
- Playlist Quality Constraint: Added a '≤' prefix to quality and resolution labels in playlist mode to indicate it acts as a ceiling rather than an exact match for all videos. (Resolves #86, thanks to @j1aaar)
- Safe Defaults: Implemented safe defaults for concurrent connections (default:
1) to preventHTTP 429 Too Many Requestserrors or IP blocks across platforms. - Localization Updates: Added missing localization keys to prevent console warnings, implemented full UI localization for the new Concurrent Connections setup across all 14 supported languages, and refined README translations.
- Error Handling: Handled private video edge cases gracefully by showing a user-friendly error dialog directing users to use the Custom Options cookie settings instead of raw yt-dlp technical errors.
- Format Table Logic: Fixed resolution string extraction logic from the format table during download initialization (resolves a hardcoded 'default' value issue).
🐛 Bug Fixes
- Playlist Error Handling: Fixed an issue where playlist downloads would freeze or completely abort if a single video encountered an error. The app now gracefully skips problematic videos, continues the playlist, and correctly reports completion status. (#92, #101, thanks to @avtandil33, @j1aaar)
- JSON Serialization Crash: Fixed a critical background bug that caused silent crashes, configuration file corruption, and occasional resetting of user settings (such as the UI language reverting to English on startup). (#92, #101, thanks to @avtandil33, @j1aaar)
- Playlist Quality Selection: Fixed an issue in playlist mode where selecting the highest quality often caused subsequent videos to fail or download in low quality. The application now dynamically determines the best available format for each individual video up to the specified resolution. (#86, thanks to @j1aaar)
- Playlist Overwrites: Fixed playlist download overwrites by updating the default filename format to include a unique video ID (
%(title)s_%(resolution)s_[%(id)s].%(ext)s), preventing data loss for identical titles. (#90, thanks to @j1aaar) - Subtitle Selection: Fixed subtitle selection logic so the app only downloads auto-generated subtitles if explicitly selected, preventing unwanted caption files.
- Subtitle Re-selection: Fixed a UI issue where the selected subtitle counter would incorrectly reset to "0" after analysis despite default languages being auto-selected. (#95, thanks to @avtandil33)
- UI Lockup: Fixed an issue where the user interface remained locked and grayed out after cancelling a download due to missing signals.
- Vertical Videos: Fixed an issue where the application assigned a wrong quality label to vertical videos.
- Download History Crash: Fixed a rendering crash that prevented the Download History dialog from opening if previous downloads were missing file size information.
- Settings Reset Bug: Fixed a bug where saving the download path could erase other user settings.
Special thanks to @avtandil33 and @j1aaar for feature suggestions and bug reports