Releases: oop7/YTSage
YTSage v5.0.2b
YTSage 5.0.2b - Beta Release
Please report any issues you encounter on the GitHub Issues page.
Downloads
| Platform | File | Notes |
|---|---|---|
| YTSage-v5.0.2b-ffmpeg-Setup.exe | With FFmpeg bundled | |
| YTSage-v5.0.2b-Setup.exe | Standard installer | |
| YTSage-v5.0.2b-ffmpeg-portable.zip | Portable with FFmpeg, zipped | |
| YTSage-v5.0.2b-portable.zip | Portable version, no installation required | |
| YTSage-v5.0.2b-amd64.deb | Debian package | |
| YTSage-v5.0.2b-x86_64.AppImage | AppImage, portable | |
| YTSage-v5.0.2b-x86_64.flatpak | Flatpak Bundle | |
| YTSage-v5.0.2b-x86_64.rpm | RPM package | |
| YTSage-v5.0.2b-arm64.dmg | Disk image installer for Apple Silicon | |
| YTSage-v5.0.2b-arm64.app.zip | Zipped application for Apple Silicon | |
| ytsage-5.0.2b-py3-none-any.whl | Python Wheel | |
| ytsage-5.0.2b.tar.gz | Source Distribution |
🚀 New Features
- Audio Normalization (EBU R128): Added a new feature to standardize the volume of audio-only downloads using FFmpeg's loudnorm filter.
- In-App Update Checking: Added a new
Check for YTSage updatessetting natively into the UI.
🔧 Improvements
- Refactor Download settings dialog into tabs and restyle.
- Added intuitive smart-toggling to the Download Settings UI (enabling audio normalization now intelligently forces an audio re-encode).
- Added comprehensive documentation and translated feature strings for the new Audio Normalization feature across all 13 supported languages.
- Added updated usage docs and strictly fixed the markdown table alignments in translated READMEs.
- Various layout fixes and localization key updates for seamless update-checking settings.
YTSage v5.0.1b
YTSage 5.0.1b - Beta Release
Please report any issues you encounter on the GitHub Issues page.
Downloads
| Platform | File | Notes |
|---|---|---|
| YTSage-v5.0.1b-ffmpeg-Setup.exe | With FFmpeg bundled | |
| YTSage-v5.0.1b-Setup.exe | Standard installer | |
| YTSage-v5.0.1b-ffmpeg-portable.zip | Portable with FFmpeg, zipped | |
| YTSage-v5.0.1b-portable.zip | Portable version, no installation required | |
| YTSage-v5.0.1b-amd64.deb | Debian package | |
| YTSage-v5.0.1b-x86_64.AppImage | AppImage, portable | |
| YTSage-v5.0.1b-x86_64.flatpak | Flatpak Bundle | |
| YTSage-v5.0.1b-x86_64.rpm | RPM package | |
| YTSage-v5.0.1b-arm64.dmg | Disk image installer for Apple Silicon | |
| YTSage-v5.0.1b-arm64.app.zip | Zipped application for Apple Silicon | |
| ytsage-5.0.1b-py3-none-any.whl | Python Wheel | |
| ytsage-5.0.1b.tar.gz | Source Distribution |
🚀 New Features
- Added
Generic Modeto support downloads from non-YouTube sites supported by yt-dlp #78 thanks to (@WoodyBABL) - Added a new Download Settings toggle for Generic Mode.
- Added sponsor visibility in the app and docs to make project support easier.
🔧 Improvements
- Added README documentation for using Generic Mode with non-YouTube URLs.
- Reorganized the README usage documentation by splitting the former Advanced Options section into separate sections for media/download, output settings, access/network, and maintenance tools.
- Added localized Generic Mode strings across all shipped language files.
- Updated the URL placeholder text dynamically based on the selected validation mode.
🐛 Bug Fixes
- Fixed a crash in the format table when third-party extractors returned
nullvalues such asformat_note. - Hardened format table handling for nullable metadata like bitrate, resolution, extension, and codec fields.
- Applied Generic Mode validation consistently to both analysis and download flows.
YTSage v5.0.0
YTSage 5.0.0 - Major Release
Install via PyPI:
pip install ytsageUpgrade to the latest version:
pip install --upgrade ytsageDownloads
| Platform | File | Notes |
|---|---|---|
| YTSage-v5.0.0-ffmpeg-Setup.exe | With FFmpeg bundled | |
| YTSage-v5.0.0-Setup.exe | Standard installer | |
| YTSage-v5.0.0-ffmpeg-portable.zip | Portable with FFmpeg, zipped | |
| YTSage-v5.0.0-portable.zip | Portable version, no installation required | |
| YTSage-v5.0.0-amd64.deb | Debian package | |
| YTSage-v5.0.0-x86_64.AppImage | AppImage, portable | |
| YTSage-v5.0.0-x86_64.flatpak | Flatpak Bundle | |
| YTSage-v5.0.0-x86_64.rpm | RPM package | |
| YTSage-v5.0.0-arm64.dmg | Disk image installer for Apple Silicon | |
| YTSage-v5.0.0-arm64.app.zip | Zipped application for Apple Silicon | |
| ytsage-5.0.0-py3-none-any.whl | Python Wheel | |
| ytsage-5.0.0.tar.gz | Source Distribution |
💖 Sponsor
Finally, a GitHub sponsor on repositories is a great way to support the project and help fund future development.
Added a sponsor link to the About dialog. If you like the project and want to support development, consider sponsoring!
🚀 New Features
- Linux Flatpak Support: Added a
.flatpakbundle for broader Linux compatibility (Fedora, Steam Deck, etc.) (#4, thanks to @imbev). - Sandbox Compatibility: YTSage now respects
YTDLP_APP_BIN_PATHandDENO_APP_BIN_PATHenvironment variables on Linux, allowing dependencies to update correctly in read-only environments. - Searchable Playlist Selection: Added a search bar and duration display to the playlist selection dialog, making it much easier to find specific videos in large playlists.
- Background History Loading: The history dialog now loads entries and thumbnails in the background, ensuring instant UI responsiveness even with hundreds of downloaded items.
- Language Synchronization: The windows installer now automatically sets the application's language based on the language selected during setup. The preference is saved directly to
ytsage_config.jsonin the local app data folder. - Automated Release Script: Added
build_release.pyto automate production builds (cleanup, wheel build, README handling) and standardize the release flow. - Modern Packaging: Migrated dependency and build configuration to
pyproject.toml, removedrequirements.txt, and addedMANIFEST.into ensure assets and language files are packaged. - Package Layout Consolidation: Renamed the top-level package from
srctoytsageand movedmain.pyintoytsage/, simplifying module imports and enablingpython -m ytsage.mainusage. - Background History & Thumbnails: Introduced a virtualized history view with an SQLite backend, persistent DB connection, and asynchronous thumbnail downloads to keep the UI responsive on large histories.
- Animated UI Enhancements:
- Window Blurring: Implemented a sophisticated modal dialog flow using blurred screenshots as overlays, providing a better focus on dialogs like "About," "History," and "Settings."
- Smooth Transitions: Added
SmoothTabWidgetwith fade-in/fade-out transitions between tabs and cross-fade animations for status messages and control buttons. - Dynamic Elements: Introduced a "shake" animation for invalid input validation and smooth fade-in effects for video thumbnails and the format table.
- Deno Integration Detection: Added a background system information thread to detect yt-dlp's Deno integration. The About Dialog now displays a "+ yt-dlp" indicator when integration is active.
- Real-time Deno Updates: Rewrote the Deno upgrade process to stream
stdoutin real-time to a dedicated GUI progress window. - Improved Analysis Feedback: Added progress signals and a simulated progress timer to provide smoother visual feedback during long-running URL extractions.
- Automated Windows Installers: The build process now automatically generates Setup installers (
.exe) alongside portable ZIPs. - Beta Update System: Introduced an opt-in beta update feature. Users can now receive notifications for preview releases by enabling the "Receive Beta Updates" option in the updater settings.
- Log Management: Added a new "Logs" button in the About dialog to quickly open the application logs folder.
- Expanded Localization: Initial support for Chinese (Simplified), Hindi, and Indonesian in the Windows installer and application metadata.
- Sponsor Link: Added a Sponsor link to the About dialog.
🔧 Improvements
- Release Triggers: Moved to manual release triggers (
workflow_dispatch) for better version control. - CI Orchestration: Added
release-allworkflow to orchestrate multi-platform builds. - Faster Playlist Analysis: Refactored the analysis engine to use flat-playlist extraction, significantly reducing the time required to load large playlists. Only the first video is fully analyzed initially to populate the UI immediately.
- Localization: Added translations for the new "Analyzing... Fetching formats for first video" status message across all 14 supported languages.
- Build Workflows & CI: Updated Windows, macOS and Linux CI workflows to install from
pyproject.toml(PEP 517), adjusted cx_Freeze entry points and asset paths, and clarified artifact naming. - README & Docs: Refreshed documentation and CI/CD notes to show the new layout, packaging steps, and how to run via
python -m ytsage.main. - Assets & Localization: Reorganized branding and asset folders (
branding/,ytsage/assets) and moved language JSON files toytsage/languagesfor packaging and discoverability. - Localization Coverage: Added and expanded translation keys (multiple languages) and localized dialogs, log messages, and FFmpeg/yt-dlp setup strings.
- Update Checks: Sped up update checks using parallel network requests and non-blocking background threads, plus improved fallbacks and timeouts.
- Format Table & UI Performance: Built the format table once and used visibility toggles for filtering; centralized file-extension constants to reduce duplication.
- Audio Playback: Replaced
pygletwithPySide6.QtMultimediafor notification playback and updated build steps accordingly. - Progress Feedback: Added smooth
QPropertyAnimationfor progress updates and increased progress precision to 0.01% (range 0–10000) for finer progress reporting. - Standardized UI Status Messages: Cleaned up and simplified status messages across all 14 supported languages, removing progress percentages in favor of concise action-oriented text.
- Aggressive Build Optimization:
- Cross-Platform Distributions: Significantly reduced bundle sizes by pruning unused Qt modules (Web, Pdf, Qml, Quick), PDB debug files, and extra translations for Windows, Linux, and macOS.
- Optimized Bytecode: Switched to
python -OOfor all builds to ensure faster startup and execution.
- Revamped CI & Packaging:
- Windows: Improved PowerShell cleanup scripts to handle duplicate Qt DLLs robustly.
- Linux: Shifted to a manual AppImage build process to ensure a cleaner layout and fix "encodings" mo...
YTSage v5.0.0b5
YTSage 5.0.0b5 - Beta Release
Please report any issues you encounter on the GitHub Issues page.
Downloads
| Platform | File | Notes |
|---|---|---|
| YTSage-v5.0.0b5-ffmpeg-Setup.exe | With FFmpeg bundled | |
| YTSage-v5.0.0b5-Setup.exe | Standard installer | |
| YTSage-v5.0.0b5-ffmpeg-portable.zip | Portable with FFmpeg, zipped | |
| YTSage-v5.0.0b5-portable.zip | Portable version, no installation required | |
| YTSage-v5.0.0b5-amd64.deb | Debian package | |
| YTSage-v5.0.0b5-x86_64.AppImage | AppImage, portable | |
| YTSage-v5.0.0b5-x86_64.flatpak | Flatpak Bundle | |
| YTSage-v5.0.0b5-x86_64.rpm | RPM package | |
| YTSage-v5.0.0b5-arm64.dmg | Disk image installer for Apple Silicon | |
| YTSage-v5.0.0b5-arm64.app.zip | Zipped application for Apple Silicon | |
| ytsage-5.0.0b5-py3-none-any.whl | Python Wheel | |
| ytsage-5.0.0b5.tar.gz | Source Distribution |
🚀 New Features
- Beta Update System: Introduced an opt-in beta update feature. Users can now receive notifications for preview releases by enabling the "Receive Beta Updates" option in the updater settings.
- Log Management: Added a new "Logs" button in the About dialog to quickly open the application logs folder.
- Expanded Localization: Initial support for Chinese (Simplified), Hindi, and Indonesian in the Windows installer and application metadata.
🐛 Bug Fixes
- UI Rendering: Removed the 🔄 emoji from the System Info loading message to resolve potential rendering issues on certain systems.
🔧 Improvements
- About/System Info:
- Refined the "System Info" loading text style (updated color to #888888 and removed italics for better readability).
- Updated version refresh icons and localized "Open Logs" tooltips across all 14 supported languages.
- Diagnostics & Reporting:
- Simplified the GitHub Bug Report template to leverage the new one-click log access.
- Workflow:
- Implemented a automated PyPI build workflow (
build-pypi.yml) to generate Python Wheel and Source distributions. - Integrated PyPI artifact generation into the master release pipeline.
- Implemented a automated PyPI build workflow (
- Update Logic: Optimised the update thread to prioritize GitHub Beta releases when opted-in, preventing version conflicts with PyPI releases.
YTSage v5.0.0b4
YTSage 5.0.0b4 - Beta Release
Please report any issues you encounter on the GitHub Issues page.
Downloads
| Platform | File | Notes |
|---|---|---|
| YTSage-v5.0.0b4-ffmpeg-Setup.exe | With FFmpeg bundled | |
| YTSage-v5.0.0b4-Setup.exe | Standard installer | |
| YTSage-v5.0.0b4-ffmpeg-portable.zip | Portable with FFmpeg, zipped | |
| YTSage-v5.0.0b4-portable.zip | Portable version, no installation required | |
| YTSage-v5.0.0b4-amd64.deb | Debian package | |
| YTSage-v5.0.0b4-x86_64.AppImage | AppImage, portable | |
| YTSage-v5.0.0b4-x86_64.flatpak | Flatpak Bundle | |
| YTSage-v5.0.0b4-x86_64.rpm | RPM package | |
| YTSage-v5.0.0b4-arm64.dmg | Disk image installer for Apple Silicon | |
| YTSage-v5.0.0b4-arm64.app.zip | Zipped application for Apple Silicon |
🚀 New Features
-
Output Filename Template: Added option to customize the output filename format in download settings (e.g.
%(title)s.%(ext)s) #75 thanks to @Daymond. -
Automated Windows Installers: The build process now automatically generates Setup installers (
.exe) alongside portable ZIPs.
🐛 Bug Fixes
- Format Table Update Issue: Fixed a bug where the download format list would not update when analyzing a new video after a previous one, causing the previous video's formats to persist #74, special thanks to @bachig26, and @xhzsz666-lang for reporting.
YTSage v5.0.0b3
YTSage 5.0.0b3 - Beta Release
Please report any issues you encounter on the GitHub Issues page.
Downloads
| Platform | File | Notes |
|---|---|---|
| YTSage-v5.0.0b3-ffmpeg-Setup.exe | With FFmpeg bundled | |
| YTSage-v5.0.0b3-Setup.exe | Standard installer | |
| YTSage-v5.0.0b3-ffmpeg-portable.zip | Portable with FFmpeg, zipped | |
| YTSage-v5.0.0b3-portable.zip | Portable version, no installation required | |
| YTSage-v5.0.0b3-amd64.deb | Debian package | |
| YTSage-v5.0.0b3-x86_64.AppImage | AppImage, portable | |
| YTSage-v5.0.0b3-x86_64.flatpak | Flatpak Bundle | |
| YTSage-v5.0.0b3-x86_64.rpm | RPM package | |
| YTSage-v5.0.0b3-arm64.dmg | Disk image installer for Apple Silicon | |
| YTSage-v5.0.0b3-arm64.app.zip | Zipped application for Apple Silicon |
🚀 New Features
- Animated UI Enhancements:
- Window Blurring: Implemented a sophisticated modal dialog flow using blurred screenshots as overlays, providing a better focus on dialogs like "About," "History," and "Settings."
- Smooth Transitions: Added
SmoothTabWidgetwith fade-in/fade-out transitions between tabs and cross-fade animations for status messages and control buttons. - Dynamic Elements: Introduced a "shake" animation for invalid input validation and smooth fade-in effects for video thumbnails and the format table.
- Deno Integration Detection: Added a background system information thread to detect yt-dlp's Deno integration. The About Dialog now displays a "+ yt-dlp" indicator when integration is active.
- Real-time Deno Updates: Rewrote the Deno upgrade process to stream
stdoutin real-time to a dedicated GUI progress window. - Improved Analysis Feedback: Added progress signals and a simulated progress timer to provide smoother visual feedback during long-running URL extractions.
🔧 Improvements
- Standardized UI Status Messages: Cleaned up and simplified status messages across all 14 supported languages, removing progress percentages in favor of concise action-oriented text.
- Aggressive Build Optimization:
- Cross-Platform Distributions: Significantly reduced bundle sizes by pruning unused Qt modules (Web, Pdf, Qml, Quick), PDB debug files, and extra translations for Windows, Linux, and macOS.
- Optimized Bytecode: Switched to
python -OOfor all builds to ensure faster startup and execution.
- Revamped CI & Packaging:
- Windows: Improved PowerShell cleanup scripts to handle duplicate Qt DLLs robustly.
- Linux: Shifted to a manual AppImage build process to ensure a cleaner layout and fix "encodings" module errors.
- macOS: Consolidated bundle trimming and automated the creation of DMG and ZIP artifacts.
- Style Consistency: Updated
QPushButtonstyles with explicit pressed-state padding and unified visual feedback across the application. - Plugin Management: Maintained
QtDBusandQtSvgsupport across all platforms to ensure D-Bus integration and proper SVG rendering.
🐛 Bug Fixes
- Enhanced Error Reporting: Implemented a yt-dlp error buffer to capture and display the last two lines of specific "ERROR:" output when a command fails, replacing generic return-code messages with actionable information. #70 thanks to (@xhzsz666-lang)
- Build Script Stability: Added error suppression to Windows pruning scripts to prevent failures when optional files (like specific translations) are missing.
- macOS Rendering: Corrected an issue where SVG and PDF rendering plugins were accidentally removed during the trimming pass.
YTSage v5.0.0b2
YTSage 5.0.0b2 - Beta Release
Please report any issues you encounter on the GitHub Issues page.
Downloads
| Platform | File | Notes |
|---|---|---|
| YTSage-v5.0.0b2-ffmpeg-Setup.exe | With FFmpeg bundled | |
| YTSage-v5.0.0b2-Setup.exe | Standard installer | |
| YTSage-v5.0.0b2-ffmpeg-portable.zip | Portable with FFmpeg, zipped | |
| YTSage-v5.0.0b2-portable.zip | Portable version, no installation required | |
| YTSage-v5.0.0b2-amd64.deb | Debian package | |
| YTSage-v5.0.0b2-x86_64.AppImage | AppImage, portable | |
| YTSage-v5.0.0b2-x86_64.flatpak | Flatpak Bundle | |
| YTSage-v5.0.0b2-x86_64.rpm | RPM package | |
| YTSage-v5.0.0b2-arm64.dmg | Disk image installer for Apple Silicon | |
| YTSage-v5.0.0b2-arm64.app.zip | Zipped application for Apple Silicon |
🚀 New Features
- Automated release script: Add
build_release.pyto automate production builds (cleanup, wheel build, README handling) and standardize the release flow. - Modern packaging: Migrate dependency and build configuration to
pyproject.toml, removerequirements.txt, and addMANIFEST.into ensure assets and language files are packaged. - Package layout consolidation: Rename the top-level package from
srctoytsageand movemain.pyintoytsage/, simplifying module imports and enablingpython -m ytsage.mainusage. - Background history & thumbnails: Introduce a virtualized history view with an SQLite backend, persistent DB connection, and asynchronous thumbnail downloads to keep the UI responsive on large histories.
🔧 Improvements
- Build workflows & CI: Update Windows, macOS and Linux CI workflows to install from
pyproject.toml(PEP 517), adjust cx_Freeze entry points and asset paths, and clarify artifact naming. - README & docs: Refresh documentation and CI/CD notes to show the new layout, packaging steps, and how to run via
python -m ytsage.main. - Assets & localization: Reorganize branding and asset folders (
branding/,ytsage/assets) and move language JSON files toytsage/languagesfor packaging and discoverability. - Localization coverage: Add and expand translation keys (multiple languages) and localize dialogs, log messages, and FFmpeg/yt-dlp setup strings.
- Update checks: Speed up update checks using parallel network requests and non-blocking background threads, plus improved fallbacks and timeouts.
- Format table & UI performance: Build the format table once and use visibility toggles for filtering; centralize file-extension constants to reduce duplication.
- Audio playback: Replace
pygletwithPySide6.QtMultimediafor notification playback and update build steps accordingly. - Progress feedback: Add smooth
QPropertyAnimationfor progress updates and increase progress precision to 0.01% (range 0–10000) for finer progress reporting.
🐛 Bug Fixes
- Build fixes: Fix Linux build configuration and correct icon paths used by build scripts; update Windows workflow paths and packaging excludes.
🔄 Refactoring
- Package & imports: Move
src/core,src/gui, andsrc/utilsintoytsage/and update imports to relative module paths across the codebase. - GUI organization: Extract analysis logic into
AnalysisMixin, centralize stylesheet handling inytsage_stylesheet.py, and reorganize GUI dialogs and modules for clarity. - Threading and stability: Replace manual threading with
QThread-based classes for analysis and updater checks, add cancellation and safer UI signaling. - History backend: Migrate history storage from JSON to SQLite with a persistent connection, add indexes for fast search, and implement a virtualized
QListViewfor large histories. - Config & constants: Introduce
ConfigManagerand centralize file-extension constants inytsage_constants.pyto reduce duplication and improve maintainability.
Known Issues
GitHub workflows on main: CI/Actions in the main branch are not reflecting the repository refactor (file paths and updated workflow files live on the beta branch). GitHub only reads workflow files from the default branch, so builds/workflows will not work until the refactor/workflow updates are merged into main.
Installation Notes
- Clean install recommended: Due to the package refactor (
src→ytsage) and updated packaging/workflows, a clean reinstall is recommended. A dirty update may work in many cases, but if you encounter import/module errors or missing assets, uninstall and perform a fresh install. Try a dirty update first, then perform a clean reinstall if problems occur
YTSage v5.0.0b
YTSage 5.0.0b - Beta Release
Please report any issues you encounter on the GitHub Issues page.
Downloads
| Platform | File | Notes |
|---|---|---|
| YTSage-v5.0.0b-ffmpeg-Setup.exe | With FFmpeg bundled | |
| YTSage-v5.0.0b-Setup.exe | Standard installer | |
| YTSage-v5.0.0b-ffmpeg-portable.zip | Portable with FFmpeg, zipped | |
| YTSage-v5.0.0b-portable.zip | Portable version, no installation required | |
| YTSage-v5.0.0b-amd64.deb | Debian package | |
| YTSage-v5.0.0b-x86_64.AppImage | AppImage, portable | |
| YTSage-v5.0.0b-x86_64.flatpak | Flatpak Bundle | |
| YTSage-v5.0.0b-x86_64.rpm | RPM package | |
| YTSage-v5.0.0b-arm64.dmg | Disk image installer for Apple Silicon | |
| YTSage-v5.0.0b-arm64.app.zip | Zipped application for Apple Silicon |
🚀 New Features
- Searchable Playlist Selection: Added a search bar and duration display to the playlist selection dialog, making it much easier to find specific videos in large playlists.
- Background History Loading: The history dialog now loads entries and thumbnails in the background, ensuring instant UI responsiveness even with hundreds of downloaded items.
- Language Synchronization: The windows installer now automatically sets the application's language based on the language selected during setup. The preference is saved directly to
ytsage_config.jsonin the local app data folder.
🔧 Improvements
- Faster Playlist Analysis: Refactored the analysis engine to use flat-playlist extraction, significantly reducing the time required to load large playlists. Only the first video is fully analyzed initially to populate the UI immediately.
- Localization: Added translations for the new "Analyzing... Fetching formats for first video" status message across all 14 supported languages.
🐛 Bug Fixes
- Fixed Playlist Timeouts: Increased the subprocess timeout from 60 to 300 seconds to prevent failures when processing massive playlists (#71). Thanks to (@oskararesov-wq) for reporting.
- Fixed Crash on Older Python: Resolved a
SyntaxErrorrelated to backslashes in f-strings, ensuring full compatibility with Python 3.11 and earlier (#72). Thanks to (@agustina-laurenti) for reporting. - Fixed Config Corruption: Fixed a
TypeErrorwhere WindowsPath objects were not correctly serialized to JSON, preventing configuration save errors (#73). Thanks to (@xhzsz666-lang) for reporting.
YTSage v4.9.8b
YTSage 4.9.8b - Beta Release
Please report any issues you encounter on the GitHub Issues page.
Downloads
| Platform | File | Notes |
|---|---|---|
| YTSage-v4.9.8b-amd64.deb | Debian package | |
| YTSage-v4.9.8b-x86_64.AppImage | AppImage, portable | |
| YTSage-v4.9.8b-x86_64.rpm | RPM package | |
| YTSage-v4.9.8b.flatpak | Flatpak Bundle |
🚀 New Features
- Linux Flatpak Support: added a
.flatpakbundle for broader Linux compatibility (Fedora, Steam Deck, etc.) #4 thanks to (@imbev) - Sandbox Compatibility: YTSage now respects
YTDLP_APP_BIN_PATHandDENO_APP_BIN_PATHenvironment variables on Linux, allowing dependencies to update correctly in read-only environments.
🔧 Improvements
- Moved to manual release triggers (
workflow_dispatch) for better version control. - Added
release-allworkflow to orchestrate multi-platform builds.
YTSage v4.9.7
YTSage 4.9.7 🎄 - 2025-12-27
Install via PyPI:
pip install ytsageUpgrade to the latest version:
pip install --upgrade ytsageDownloads
| Platform | File | Notes |
|---|---|---|
| YTSage-v4.9.7-Setup.exe | Standard installer | |
| YTSage-v4.9.7-ffmpeg-Setup.exe | With FFmpeg bundled | |
| YTSage-v4.9.7-portable.zip | Portable version, no installation required | |
| YTSage-v4.9.7-ffmpeg-portable.zip | Portable with FFmpeg, zipped | |
| YTSage-v4.9.7-amd64.deb | Debian package | |
| YTSage-v4.9.7-x86_64.AppImage | AppImage, portable | |
| YTSage-v4.9.7-x86_64.rpm | RPM package | |
| YTSage-v4.9.7-arm64.app.zip | Zipped application for Apple Silicon (Intel Macs: use Rosetta 2) | |
| YTSage-v4.9.7-arm64.dmg | Disk image installer for Apple Silicon (Intel Macs: use Rosetta 2) |
🚀 New Features
- Multi-language Setup: Added support for Arabic, Brazilian Portuguese, French, German, Italian, Japanese, Polish, Portuguese, Russian, Spanish, and Turkish to the Windows installer
- Update in progress handling: Added 'update in progress' messages and logic to prevent analysis or downloads while yt-dlp is updating
- Thumbnail status messages: Added new localized status messages for thumbnail saving in all supported languages
🔧 Improvements
- UI Refinements: Adjusted QLineEdit padding and refined input/button styles in the main GUI and video info UI for a more polished look
- Deno Checksum Parsing: Enhanced SHA256 checksum parsing to support both standard Unix and verbose formats
- Video Info Icons: Added icons to 'views', 'likes', 'upload_date', and 'duration' labels in all translations
- RPM Build Process: Fixed RPM build process with manual spec file, dynamic Qt6 plugin inclusion, and absolute paths for better reliability #60 thanks to (@BasterHapy)
- macOS Builds: Streamlined to ARM64 only (Apple Silicon), because macOS 13 is deprecated and no longer supports the workflow; Intel Mac users can run via Rosetta 2
- Update checks via PyPI: Switched update checks from GitHub API to PyPI to avoid rate limiting issues, with changelog fetched from GitHub as a fallback
- Persistent cookie settings: Cookie settings (source, browser, profile, file path, and active status) are now saved and loaded from config, ensuring consistent behavior across sessions #64 thanks to (@KamikiriTW)
- Analyze button state: The analyze button is now disabled until a valid URL is entered, with updated styling for the disabled state
- Improved subprocess handling: Replaced
textanduniversal_newlinesparameters withencoding="utf-8"anderrors="replace"for improved output handling - Generic extracting message: Removed explicit 'yt-dlp' mention from extracting info message for a more generic and consistent UI across languages
🐛 Bug Fixes
- Format Table Editing: Disabled editing in the format table to prevent accidental changes and selection box issues
- 'utf-8' codec can't decode byte 0xa8: Fixed decoding errors by improving subprocess output handling with explicit encoding and error replacement #66 thanks to (@Daymond)
- Process termination and file cleanup: Enhanced cross-platform process tree termination for downloads, using process groups on Unix and taskkill on Windows. Improved file deletion reliability with increased retries, garbage collection, and better backoff logic
- Removed ffplay.exe from Windows builds: Excluded ffplay.exe from verification and distribution as only ffmpeg.exe and ffprobe.exe are required
🔄 Refactoring
- Thumbnail saving logic: Refactored thumbnail saving to use cached images from analysis instead of extracting via yt-dlp subprocess, improving reliability and performance
YTSage v4.9.7
Release Date: