github oop7/YTSage v5.1.0
YTSage v5.1.0

10 hours ago

YTSage 5.1.0

Install via PyPI:

pip install ytsage

Upgrade to the latest version:

pip install --upgrade ytsage

Downloads

Platform File Notes
Windows FFmpeg YTSage-v5.1.0-ffmpeg-Setup.exe With FFmpeg bundled
Windows EXE YTSage-v5.1.0-Setup.exe Standard installer
Windows Portable FFmpeg YTSage-v5.1.0-ffmpeg-portable.zip Portable with FFmpeg, zipped
Windows Portable YTSage-v5.1.0-portable.zip Portable version, no installation required
Linux DEB YTSage-v5.1.0-amd64.deb Debian package
Linux AppImage YTSage-v5.1.0-x86_64.AppImage AppImage, portable
Flathub YTSage-v5.1.0-x86_64.flatpak Flatpak Bundle
Linux RPM YTSage-v5.1.0-x86_64.rpm RPM package
macOS ARM64 DMG YTSage-v5.1.0-arm64.dmg Disk image installer for Apple Silicon
macOS ARM64 APP YTSage-v5.1.0-arm64.app.zip Zipped application for Apple Silicon
PyPI ytsage-5.1.0-py3-none-any.whl Python Wheel
PyPI 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 .txt and .csv files 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)s in 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 prevent HTTP 429 Too Many Requests errors 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

Don't miss a new YTSage release

NewReleases is sending notifications on new releases.