Improves the cookies tab in CustomOptionsDialog by making browser extraction the recommended default, updating the status indicator to show active cookies, and adding an Apply button to confirm cookie settings. Refactors radio button logic, status updates, and integrates user feedback via QMessageBox.
Deleted logic for handling cookie file and browser cookies selection in the show_custom_options method. This streamlines the dialog to only process proxy options.
Added new translation keys for URL validation and ytdlp error messages in all supported languages. This improves error reporting and user feedback for invalid URLs and common download issues.
Introduces validate_video_url to check YouTube/YouTube Music URLs for supported formats and domains, returning detailed error messages. Adds sanitize_filename to clean filenames by removing unsafe characters for filesystem compatibility.
Refactored all modules to remove dependency on the yt-dlp Python package, switching to subprocess calls to the yt-dlp binary for all extraction and update operations. Update logic now exclusively manages the app's own yt-dlp binary and no longer supports pip-based updates. Simplified format/audio detection and thumbnail extraction to use CLI heuristics and subprocess output. This improves reliability and avoids Python package conflicts.
Deleted pip-related update messages from all language JSON files to simplify and unify the update flow messaging for yt-dlp. This change removes unused or deprecated strings related to pip installation and update status.
Introduces an 'Open Folder' button to the UI, shown after a download completes, allowing users to quickly open the folder containing the downloaded file. Updates all language files to include translations for the new button tooltip.
Enhanced get_asset_path to better handle frozen executables (PyInstaller, cx_Freeze) by checking multiple locations for assets. Updated app data directory logic to always use user data directories for app data, logs, config, and binaries, regardless of whether the app is frozen, ensuring consistent storage location across platforms.
Added new translation keys for update dialog fields (new version available, current/latest version labels, changelog, download update, remind later) in all supported languages. Updated the GUI code to use these localized strings instead of hardcoded English text for improved internationalization.
Replaces hardcoded update and error strings in ytsage_dialogs_update.py with internationalized messages. Adds new translation keys for update success, already latest, network error, general error, pip update errors, and pip update failed in all supported languages.