Help us keep the list up to date and submit new video software here.






Try StreamFab Downloader and download streaming video from Netflix, Amazon, Youtube! Download free trial.




Software Home »


Complete Version history / Release notes / Changelog / What's New for YTSage


YTSage 5.0.3

New Features
Added Generic Mode to 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.
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 updates setting natively into the UI.
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.
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.
Bug Fixes
Fixed a crash in the format table when third-party extractors returned null values such as format_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

New Features
Linux Flatpak Support: Added a .flatpak bundle for broader Linux compatibility (Fedora, Steam Deck, etc.) (#4, thanks to @imbev).
Sandbox Compatibility: YTSage now respects YTDLP_APP_BIN_PATH and DENO_APP_BIN_PATH environment 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.json in the local app data folder.
Automated Release Script: Added build_release.py to automate production builds (cleanup, wheel build, README handling) and standardize the release flow.
Modern Packaging: Migrated dependency and build configuration to pyproject.toml, removed requirements.txt, and added MANIFEST.in to ensure assets and language files are packaged.
Package Layout Consolidation: Renamed the top-level package from src to ytsage and moved main.py into ytsage/, simplifying module imports and enabling python -m ytsage.main usage.
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 SmoothTabWidget with 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 stdout in 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-all workflow 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 to ytsage/languages for 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 pyglet with PySide6.QtMultimedia for notification playback and updated build steps accordingly.
Progress Feedback: Added smooth QPropertyAnimation for 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 -OO for 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 QPushButton styles with explicit pressed-state padding and unified visual feedback across the application.
Plugin Management: Maintained QtDBus and QtSvg support across all platforms to ensure D-Bus integration and proper SVG rendering.
Output Filename Template: Added option to customize the output filename format in download settings (e.g. %(title)s.%(ext)s) (#75, thanks to @Daymond).
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 an automated PyPI build workflow (build-pypi.yml) to generate Python Wheel and Source distributions.
Integrated PyPI artifact generation into the master release pipeline.
Update Logic: Optimized the update thread to prioritize GitHub Beta releases when opted-in, preventing version conflicts with PyPI releases.
README Updates: Expanded the README with clear install + upgrade instructions (including platform-specific steps for Windows, Linux, and macOS).
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).
Fixed Crash on Older Python: Resolved a SyntaxError related to backslashes in f-strings, ensuring full compatibility with Python 3.11 and earlier (#72, thanks to @agustina-laurenti).
Fixed Config Corruption: Fixed a TypeError where WindowsPath objects were not correctly serialized to JSON, preventing configuration save errors (#73, thanks to @xhzsz666-lang).
Build Fixes: Fixed Linux build configuration and corrected icon paths used by build scripts; updated Windows workflow paths and packaging excludes.
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.
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, thanks to @bachig26 and @xhzsz666-lang).
UI Rendering: Removed the emoji from the System Info loading message to resolve potential rendering issues on certain systems.*
Fixed Version Matching: Improved version matching for yt-dlp updates by zero-padding PyPI version strings (#80, thanks to @bachig26).
Refactoring
Package & Imports: Moved src/core, src/gui, and src/utils into ytsage/ and updated imports to relative module paths across the codebase.
GUI Organization: Extracted analysis logic into AnalysisMixin, centralized stylesheet handling in ytsage_stylesheet.py, and reorganized GUI dialogs and modules for clarity.
Threading & Stability: Replaced manual threading with QThread-based classes for analysis and updater checks, added cancellation and safer UI signaling.
History Backend: Migrated history storage from JSON to SQLite with a persistent connection, added indexes for fast search, and implemented a virtualized QListView for large histories.
Config & Constants: Introduced ConfigManager and centralized file-extension constants in ytsage_constants.py to reduce duplication and improve maintainability.


YTSage v4.9.7

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 text and universal_newlines parameters with encoding="utf-8" and errors="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 4.9.5

New Features
Download History: Complete history management system with thumbnail previews, redownload capability, and entry removal options
Deno Integration: Full Deno runtime support including automatic setup, version detection, and updates via GUI
FFmpeg Updater: Built-in FFmpeg version checker with update capability to latest essentials build
yt-dlp Release Channels: Added ability to switch between stable and nightly yt-dlp releases directly from the updater tab
Output Format Selection: New settings option to force specific output formats (mp4, webm, mkv) when merging videos
SHA256 Verification: Automatic hash verification for yt-dlp downloads to ensure integrity and security
Analysis-Dependent Controls: Smart UI controls that enable/disable based on video analysis completion with helpful tooltips
Audio format settings: New option to specify preferred audio format when downloading audio-only content(e.g., mp3, aac, opus, vorbis, flac, wav) #62 thanks to (@xboxer214)
Optional PATH integration: Add ffmpeg to your system PATH during installation in YTSage--ffmpeg-Setup.exe installers for easier command line usage.
Improvements
FFmpeg Build Migration: Migrated from full FFmpeg build to essentials build for reduced download size and faster installation
FFmpeg Download Links: Replaced hardcoded FFmpeg version links with dynamic URLs that always download the latest version from official source
Unified Updater Tab: Consolidated all update-related settings (yt-dlp, FFmpeg, Deno) into a single updater tab in options dialog
Enhanced File Detection: Improved robustness of final file detection after download, handling merging, remuxing, and subtitle embedding scenarios
Version Caching: Added caching support for Deno version detection to improve performance
UI Refinements: Increased thumbnail size in history widget (240x135 280x158) for better visibility
Tab Organization: Reordered tabs in options dialog for improved user experience
Documentation: Updated README with Deno detection, improved folder structure, advanced options clarification, and troubleshooting advice
Requirements: Specified minimum versions for all dependencies to ensure compatibility
Python Version: Updated minimum Python requirement from 3.9+ to 3.10+
Bug Fixes
FFmpeg Download Source: Updated Windows build workflow to use official gyan.dev source for reliability
File Existence Checks: Removed redundant file existence checks now handled by yt-dlp itself
Code Cleanup: Removed unused style module and deprecated code, eliminating Python API fallback
Python 3.14 Support: Updated PySide6 to version 6.10.1 and requirements.txt minimum version to support Python 3.14 fully #53 thanks to (@xjuanfxx)
Refactoring
FFmpeg Architecture: Refactored FFmpeg updater from full updater to version checker with installation guide links
Settings Management: Migrated yt-dlp auto-update settings from download settings to updater tab for better organization
Download Thread: Simplified downloader by removing redundant checks and always using direct CLI commands



YTSage 4.9.5b - Beta release

New Features
Download History: Complete history management system with thumbnail previews, redownload capability, and entry removal options
Deno Integration: Full Deno runtime support including automatic setup, version detection, and updates via GUI
FFmpeg Updater: Built-in FFmpeg version checker with update capability to latest essentials build
yt-dlp Release Channels: Added ability to switch between stable and nightly yt-dlp releases directly from the updater tab
Output Format Selection: New settings option to force specific output formats (mp4, webm, mkv) when merging videos
SHA256 Verification: Automatic hash verification for yt-dlp downloads to ensure integrity and security
Analysis-Dependent Controls: Smart UI controls that enable/disable based on video analysis completion with helpful tooltips
Audio format settings: New option to specify preferred audio format when downloading audio-only content(e.g., mp3, aac, opus, vorbis, flac, wav) #62 thanks to (@xboxer214)
Optional PATH integration: Add ffmpeg to your system PATH during installation in YTSage--ffmpeg-Setup.exe installers for easier command line usage.
Improvements
FFmpeg Build Migration: Migrated from full FFmpeg build to essentials build for reduced download size and faster installation
FFmpeg Download Links: Replaced hardcoded FFmpeg version links with dynamic URLs that always download the latest version from official source
Unified Updater Tab: Consolidated all update-related settings (yt-dlp, FFmpeg, Deno) into a single updater tab in options dialog
Enhanced File Detection: Improved robustness of final file detection after download, handling merging, remuxing, and subtitle embedding scenarios
Version Caching: Added caching support for Deno version detection to improve performance
UI Refinements: Increased thumbnail size in history widget (240x135 280x158) for better visibility
Tab Organization: Reordered tabs in options dialog for improved user experience
Documentation: Updated README with Deno detection, improved folder structure, advanced options clarification, and troubleshooting advice
Requirements: Specified minimum versions for all dependencies to ensure compatibility
Python Version: Updated minimum Python requirement from 3.9+ to 3.10+
Bug Fixes
FFmpeg Download Source: Updated Windows build workflow to use official gyan.dev source for reliability
File Existence Checks: Removed redundant file existence checks now handled by yt-dlp itself
Code Cleanup: Removed unused style module and deprecated code, eliminating Python API fallback
Refactoring
FFmpeg Architecture: Refactored FFmpeg updater from full updater to version checker with installation guide links
Settings Management: Migrated yt-dlp auto-update settings from download settings to updater tab for better organization
Download Thread: Simplified downloader by removing redundant checks and always using direct CLI commands


YTSage 4.9.2 - Halloween Release

New Features
cookies indicator in status bar: Added a visual indicator in the login with cookies tab to show when cookies are active.
Improvements
Add video URL validation and filename sanitization: Implemented checks to ensure video URLs are valid before processing and sanitized filenames to prevent issues with invalid characters.

Cookie Management UI Revamp: Revamped the cookies tab in the CustomOptionsDialog, making browser extraction the default, adding an Apply button for confirmation, and updating status indicators to show active cookies.

Code Cleanup: Removed redundant 'update_details' signal declaration in DownloadThread.

Python Version Constraint: Added Python version constraint (<3.14) to prevent installation failures on Python 3.14+ where PySide6 is not yet supported. Users requiring Python 3.14+ should use pre-built executables from releases.

Bug Fixes
Browse button: Fixed an issue where the Browse button in the Login with Cookies tab was not functioning correctly #58 thanks to (@LuckCircles)


YTSage 4.9.1

New Features
Proxy: Added proxy support to enable users to route their downloads through a proxy server for enhanced privacy and bypass restrictions #47
thanks to (@vitos1k)

Open Folder: Added an "Open Folder" button to quickly access the download location after a download is complete #57 thanks to (@LifeDrainingCoding)

Localization: Introduced localization support, allowing users to select their preferred language for the application interface. You can change the language in the Custom Options section. Supported languages include:

English (default)
Spanish
French
German
Chinese (Simplified)
Japanese
Russian
Portuguese (Brazilian)
Italian
Polish
Arabic
Hindi
Indonesian
Turkish
FPS column in format selection: Added an FPS (Frames Per Second) column in the format selection dialog to help users choose video formats based on their frame rates.

HDR column in format selection: Added an HDR (High Dynamic Range) column in the format selection dialog to indicate which video formats support HDR, assisting users in selecting high-quality video options.

Improvements
Binary-Only yt-dlp Implementation: Transitioned to a binary-only approach for yt-dlp, removing the Python package dependency. This significantly reduces package size, speeds up installation, and simplifies dependency management. YTSage now exclusively uses its own managed yt-dlp binary located in the application's bin directory, eliminating conflicts with system-wide installations. Users who prefer a custom yt-dlp version can still specify the path to their own binary in the settings.

Enhanced Stability & Error Handling (#41, @viru185): Improved robustness of yt-dlp and FFmpeg integrations with safer binary checks, better error messages, and more reliable subprocess handling for a smoother user experience.

Streamlined Format Selection: Removed the Notes column from the format selection dialog to reduce clutter and make it easier to choose your preferred video format.

Better Logging System: Implemented centralized, thread-safe logging infrastructure for improved debugging and troubleshooting.

UI & UX Refinements: Enhanced path handling, improved playlist and format table stability, and polished the update dialog for a more responsive interface.

Updated Dependencies: Updated GitHub Actions workflows and Python version (to 3.13.x) to ensure the application uses the latest, most stable versions of build and runtime dependencies.

Bug Fixes
Windows File Locking Issues: Fixed file locking errors when deleting partial files by implementing safe deletion with retry logic and process termination delays
Documentation
Repository Screenshots: updated repository screenshots to reflect the latest UI changes


YTSage 4.8.3

New Features
Cookies Browser: Introduced a new feature to retrieve cookies using yt-dlp #31 (@Lucy-dot-dot)
Refactored Custom Commands: Enhanced custom commands with an updated design, improvements, and bug fixes
Trim Video Dialog: Removed the preview command from the trim video dialog for a streamlined interface
Enhanced Error Handling: Improved error messages with detailed guidance for common issues:
Private videos: Directs users to cookie authentication
Age-restricted content: Explains the login requirement
Geo-blocked videos: Suggests using a VPN
Removed/deleted videos: Clarifies video unavailability
Live streams: Explains timing limitations
Network errors: Recommends checking connectivity
Invalid URLs: Guides on URL format correction
Premium content: Explains membership requirements
Copyright blocks: Describes content restrictions
Migration to Pyglet: Replaced pygame with pyglet for reduced size, as pygame was overly heavy for simple notifications
Migration to cx_Freeze: Switched from PyInstaller to cx_Freeze for improved load times
CI/CD Pipeline: Implemented an automated pipeline workflow for building pre-executables
Screenshots in Repository: Added screenshots to the repository for faster loading in the README
Code Refactor and Cleanup #37 (@viru185):
Import Fixes: Eliminated unused imports, adopted full import paths, and sorted imports alphabetically (Standard Library > Third-Party > Local)
Removed Unsafe Method: Deleted Method 3 from src.core.ytsage_downloader:cleanup_subtitle_file to prevent accidental deletion of unrelated subtitle files due to recursive scanning
Path Handling Refactor: Migrated from os.path to pathlib.Path for better readability, reduced code repetition, and enhanced cross-platform compatibility
Code Readability Enhancements: Standardized string literals to double quotes, removed extraneous spaces, and enforced consistent formatting
Constants File: Created ytsage_constants.py as a centralized location for all constants
Type Hints: Added return type hints to functions for improved type checking and code clarity
GUI Module Restructuring: Renamed src/gui/dialogs to src/gui/ytsage_gui_dialogs for naming consistency, and added __init__.py for centralized dialog imports
Variable Renaming: Changed self.parent to self._parent to avoid conflicts with the built-in parent() method and added type checking
Signal Handling Update: Replaced QMetaObject.invokeMethod with Signal due to unresolved issues, aligning with the app's design patterns
Constants Integration: Replaced redundant logic with references to ytsage_constants.py
yt-dlp Update Logic: Updated src/gui/ytsage_gui_dialogs/ytsage_dialogs_update:_update_binary to use yt-dlp -U for streamlined updates
Improvements
Build Automation: Streamlined the build process with automated CI/CD pipelines for pre-executables
Windows Installer: Added new setup installer (Inno Setup) for easier installation.
RPM Package: Introduced an RPM package for easier installation on RPM-based Linux distributions
Documentation
Repository Screenshots: Added screenshots to the repository to enhance the README with faster-loading visual aids
wordmark svg: added wordmark svg to the repository for better branding
OSs badges: added OSs badges to the repository for better visibility


YTSage 4.7.0

New Features
SponsorBlock Categories: Expanded segment selection options beyond just sponsor segments. Users can now select from multiple types of video segments to automatically remove during download using community-submitted data. Available categories include: Sponsor, Unpaid/Self Promotion, Interaction Reminder, Intro, Outro/End Cards, Preview/Recap, Non-Music Section, and Filler Tangent.
Embed Chapters: Mark YouTube chapters that will be displayed by supported media players for better navigation.
Enhanced About Dialog: Added ffmpeg path display with version checks for both yt-dlp and ffmpeg (#22, thanks to @scotenchen).
Improvements
Logging System: Replaced print statements with loguru for improved efficiency and better debugging (#23, thanks to @viru185). Application logs are now stored in the YTSage\logs folder for better troubleshooting and monitoring of the application's operations.
Code Structure: Comprehensive refactoring and optimization of ytsage_gui_dialogs.py and overall project architecture.
FFmpeg Update: Updated ffmpeg to version 7.1.1-full_build in both bundled version and ytsage_ffmpeg.py installation module for latest features and improvements.
Bug Fixes
Module Not Found: Fixed an error where the application would fail to launch due to a missing pkg_resources module (#25, thanks to @DrElvis).
UI/UX Enhancements
FFmpeg Installation Dialog: Redesigned interface for a cleaner and more intuitive experience.
About Dialog Redesign: Streamlined layout with clearer information presentation and system checks.
Platform Badges: Replaced plain text with descriptive badges in the downloads section for a more modern look.
Overall Polish: Various visual improvements throughout the application.
Documentation
Project Structure: Added comprehensive file structure documentation in README.
macOS App Damaged Error: Implemented a fix to address the "App is damaged and can’t be opened" error on macOS (#27, thanks to @wenzelua).
Installation Guide: Added uv option alongside pip in requirements.txt for users who prefer faster dependency installation (#21, thanks to @viru185).
Configuration Reference: Documented application configuration paths across different operating systems.
Troubleshooting: Added a section to the README to address common issues, including the "App is damaged and can’t be opened" error on macOS.
Consistency: Improved the overall consistency and readability of the README file.


YTSage 4.6.0

New Features
Dynamic yt-dlp Management: Pre-built executables now download the appropriate yt-dlp version for your OS at startup, enabling automatic updates without requiring new app releases
Download Notifications: Added audio notification that plays when downloads complete
Version Information: Added yt-dlp and ffmpeg version display in the About dialog for better transparency
Improvements
Startup Performance: Auto-update process now runs asynchronously during startup, significantly reducing boot time
Configuration Organization: Centralized app configuration and yt-dlp bundles in platform-specific directories:
Windows: %LOCALAPPDATA%\YTSage
macOS: ~/Library/Application Support/YTSage
Linux: ~/.local/share/YTSage
Performance Optimization: Implemented caching for yt-dlp and ffmpeg versions, plus yt-dlp path resolution
User Control: Added "Auto update yt-dlp" toggle in Download Settings for manual control over updates
Multiple Instances Issue: Fixed multiple instances of YTSage when running the pre-built executables (#20, reported by @xjuanfxx, with thanks to the reporter)
Table Formatting (Under Review): Addressed formatting issues in tables, pending further validation
UI/UX Enhancements
Theme Consistency: Fixed update dialog layout to properly match the application theme
Layout Improvements: Various visual refinements to the update interface
Documentation
Cookie Authentication Guide: Added detailed step-by-step instructions for using the "Log in with cookies" feature in README.md
Improved cross-platform compatibility for configuration management


YTSage 4.5.7

Improvements
New Debian Package: Added a .deb package for easier installation on Debian, Ubuntu, and derivative distributions.
Bundled yt-dlp Update: Updated the bundled yt-dlp included in the pre-built executables to the latest version, ensuring better compatibility and performance.
UI Theming: The speed limit dropdown menu has been redesigned to match the application's theme, creating a more visually consistent and polished user interface.


YTSage 4.5.6

Improvements
Video Trimming: Introduced a new option to trim videos, allowing users to select specific segments for download.
Startup yt-dlp Check: Implemented an automatic yt-dlp check on application startup for installations via PyPI or direct Python script usage, ensuring it's correctly configured.
Custom Options Consolidation: Streamlined the interface by consolidating 'Login with Cookies' and 'Custom Command' functionalities into a new 'Custom Options' section.
Notes Feature Enhancement: Refined the 'Notes' feature for improved usability and organization.


YTSage 4.5.2

Improvements
yt-dlp Path Detection: Improved the method for detecting the yt-dlp executable path for better reliability.
Bundled yt-dlp Update: Updated the bundled yt-dlp included in the Pre-built Executables to the latest version.
Bug Fixes
yt-dlp Update (Non-PyPI): Added an informative dialog to handle cases where users attempt to use the yt-dlp auto-update feature in non-PyPI installations (where this feature is unavailable).


YTSage 4.5.0

Features
Download Speed Limiter: Added an option to limit the download speed, giving you more control over bandwidth usage.
Save Video Descriptions: You can now optionally save the video's description as a separate text file alongside the download.
Multiple Subtitle Selection & Merging: Select and download multiple subtitle tracks simultaneously. Added the capability to merge selected subtitles directly into the output video file.
Playlist Video Selection: Introduced the ability to select specific videos from a playlist for download, instead of downloading the entire list.
Cookie-Based Login: Added support for logging in using browser cookies, enabling access to private or member-only content (#16).
Dependency Detection: The "About" dialog now detects and displays whether ffmpeg and yt-dlp are found on the system.
In-App Changelog: The update notification dialog now displays the changelog for the new version.
Playlist Thumbnails: Playlist view now displays the thumbnail for the entire playlist.
Video Like Counter Display: Added a display to show the number of likes for the selected video.
Improvements
New UI Theme: Refreshed the user interface with a new theme for a more modern look and feel.
Enhanced Audio Download Safety: Improved error handling and UI guidance in the audio-only section to prevent selecting incompatible formats that previously led to download failures.
Improved yt-dlp Update Process: Streamlined the process for checking and updating the bundled yt-dlp.
More Detailed Download Progress: Enhanced the download progress indicator to provide more granular feedback.
Simplified About Dialog: Removed the features list entirely from the "About" dialog for a cleaner and more focused presentation.
Corrected Playlist View Information: Removed inaccurate file size and extension details from the playlist view (previously only reflected the first video).
Consistent Iconography: Replaced the generic download icon with the YTSage application icon.
Optimized Cleanup: Improved the temporary file cleanup process after downloads complete.
Bug Fixes
Output Format: Fixed an issue where the output format was always defaulting to .mp4, ignoring user selection.
Audio Download Error: Resolved error code 2 failures that occurred during certain audio-only downloads.
Format Table Layout: Corrected layout and alignment issues within the format selection table.
Audio Format Naming: Fixed inconsistencies between format names (e.g., resolution labels) and file extensions in the audio-only selection list.
Internal & Build Changes
Updated Python Version: The Python version used for building pre-compiled executables has been updated.
Bundled ffmpeg (Windows): New pre-built Windows executables now include ffmpeg, simplifying setup for Windows users.
Build Process Enhancements: Implemented improvements to the build process for Linux and macOS executables.


YTSage v4.2.1


YTSage v4.2.0
This release brings significant improvements and fixes to YTSage, focusing on enhanced stability, error handling, format selection, and addressing macOS compatibility.

Here's a breakdown of the changes:

Bug Fixes 
Fixed: FFmpeg Detection on macOS (#10) - Improved FFmpeg check, specifically addressing issues where FFmpeg wasn't being correctly detected on macOS. Thanks to the reporter of issue #10!
Fixed: Incorrect Output Format (MP4 vs WebM) - Resolved an issue where the output was consistently MP4 instead of the selected WebM format.
Fixed: Thumbnail Layout in Fullscreen Mode - Corrected the thumbnail layout when viewing in fullscreen mode for a better visual experience.
Improved: Download Thread Stability - Enhanced download thread stability with better exception handling to prevent crashes and ensure more reliable downloads.
Enhancements 
Added: "Video Already Downloaded" Pop-up - Implemented a pop-up message to inform users when they attempt to download a video that has already been downloaded. This prevents accidental duplicate downloads and improves user workflow.
Changed: Default Merge Format to MP4 - The default merge format for downloads is now MP4 instead of MKV, offering wider compatibility and potentially better playback across devices.
Updated: yt-dlp Update Method - The yt-dlp update method is now via PYPI
Added: Format Selection Checkbox - Introduced a checkbox to allow users to easily select their desired format directly within the format table, streamlining the selection process.
Added: Quality Column in Format Table - A new "Quality" column has been added to the format table. This column clarifies the quality differences between various available formats, making format selection more informed.
Added: Notes Column in Format Table - A "Notes" column is now present in the format table. This column provides helpful notes and context for each format, guiding users to choose the best option for their needs.
Replaced: Merge Subtitle Button with Checkbox - The "Merge Subtitle" functionality is now controlled by a checkbox instead of a button, providing a more intuitive and consistent user interface.
Improved: Robust FFmpeg Checks - Further strengthened FFmpeg checks to ensure it is correctly detected and functioning across different operating systems.
Improved: Resource Cleanup on App Close - Implemented proper cleanup of resources when the application is closed, contributing to better system stability and preventing potential resource leaks.
Added: Auto-Install FFmpeg - YTSage now attempts to automatically install FFmpeg if it is not found on the system, simplifying the setup process for new users.
Stability & Error Handling 
Improved: Comprehensive Error Handling - Implemented comprehensive error handling in the main entry point of the application. This significantly enhances the application's robustness by gracefully managing unexpected errors and providing more informative feedback.
Code Refactoring 
Refactored: Split ytsage_gui.py into Multiple Modules - The large ytsage_gui.py file has been split into smaller, more manageable modules: ytsage_gui_dialogs.py, ytsage_gui_format_table.py, ytsage_gui_main.py, and ytsage_gui_video_info.py. This improves code organization, maintainability, and makes future development easier.
Removed 
Removed: FormatID Column - The "FormatID" column has been removed from the format table. This column was deemed less relevant for most users and its removal simplifies the table and improves readability.
Thank you for using YTSage! 


YTSage v4.0.0
[v4.0.0]
This release brings significant improvements and new features to YTSage, focusing on user experience, enhanced functionality, and better code organization.

New Features
SponsorBlock Integration: Enjoy distraction-free viewing! YTSage now integrates SponsorBlock, automatically skipping sponsor segments and other unwanted parts in YouTube videos. This feature can be toggled on/off in the format selection section.
Anti-Bot Feature: Improved download reliability and success rate with the new anti-bot feature. YTSage now sends requests with browser-like headers and cookies (when necessary), mimicking a real user to bypass bot detection and ensure smoother video analysis and downloading, especially for websites with anti-scraping measures.
About Section: A new "About" section has been added to the application menu. Find information about YTSage, its version, credits, and links to the project's GitHub repository.
Enhanced Subtitle Handling with MKV Output:
Subtitle Merging: Subtitles are now seamlessly merged into the MKV video output format. This simplifies file management and keeps everything in a single container.
Subtitle Filtering: Easily find the subtitles you need with the new subtitle filter. Quickly narrow down the subtitle language list by typing language codes (e.g., en, es).
Resolution in Filename: To prevent confusion and ensure uniqueness, the video resolution is now included in the downloaded filename. This resolves issues where videos with the same title but different resolutions would overwrite each other.
Improvements
User Interface Enhancements: The user interface has been refined with various tweaks and improvements for a smoother and more intuitive experience. Expect better visual clarity and usability throughout the application.
Improved Codebase Organization: The project has been reorganized into a more modular structure for enhanced readability and maintainability. The code is now separated into the following files:
main.py: Application entry point and main function.
ytsage_gui.py: Contains all the graphical user interface components and logic.
ytsage_downloader.py: Handles the yt-dlp download processes and thread management.
ytsage_utils.py: Houses utility functions and helper methods.
Enhanced Logging with Debug Mode: Logging has been significantly improved to provide more detailed information during operation. Extra debug messages are now included in the logs, offering deeper insights into the download process and making troubleshooting easier for advanced users and developers. This detailed logging aids in identifying and resolving issues more efficiently.
Bug Fixes
Thumbnail Download Fix: Resolved an issue where video thumbnails were not consistently downloading. Thumbnails should now download reliably during video analysis.
Temporary File Cleanup on Cancel: Implemented proper cleanup of temporary files when a download is canceled. No more lingering .part files after stopping a download.
Removal of Unnecessary Files after MKV Conversion: When converting to MKV and merging subtitles, temporary video, and separate subtitle files are now automatically removed after successful conversion, keeping your download directory clean.
Update via pip


YTSage v3.5.0 Release Notes
What's New
Framework Changes
Migrated from PyQt6 to PySide6
Switched from Python Threads to QThread for better performance (#7)
Updated Python version
Features
Added "Copy URL from Clipboard" functionality (#7)
New button to update yt-dlp directly from the application
Added progress percentage display during video analysis
Improved overall user interface
add save thumbnails option
improve the error handling
replace the .app file with the dmg file for macOS
Bug Fixes
Fixed "Requested format is not available" error (#8)
remove the "yt-dlp log" button If you want to show the log run the app via Python file or PYPI
Breaking Changes
This version includes a major framework migration from PyQt6 to PySide6. Please ensure all dependencies are properly installed after updating.


[v2.0.0] - Merry Christmas!
Added
FFmpeg checker and installation guide
Playlist download functionality with best quality selection
Automatic playlist URL detection
Download control features:
Pause/Resume functionality
Cancel button
yt-dlp logging integration
Custom command support with yt-dlp
Download progress indicators:
Download speed
ETA (Estimated Time of Arrival)
Progress percentage
Auto-update checker
Package distribution:
PyPI package available via pip install YTSage
macOS .app bundle
Linux AppImage
Improved
Enhanced scroll UI
Download path save
User-friendly error messages
Version number display in title bar
Fixed
Title bar naming convention
Application version number display
Updated
Latest yt-dlp version integration


v1.0 Hot fix
Features
Download YouTube videos in any quality (up to 4K)
Extract audio from videos
Download subtitles (including auto-generated)
View video metadata (views, upload date, duration)
Preview video thumbnails
Clean, modern interface
Fast downloads powered by yt-dlp
Installation
No installation required - just download and run!




Search   Contact us   Privacy Policy   About   Advertise   Forum   RSS Feeds   Statistics   Software   

Site layout: Default Classic Blue

Affiliates: free-codecs.com

©1999-2026 videohelp.com