Commit Graph

79 Commits

Author SHA1 Message Date
oop7 15451f7715 Switch update checks from GitHub API to PyPI
Update logic in updater dialog and main app to fetch latest version info from PyPI instead of GitHub API, avoiding rate limiting issues. Changelog is now fetched from GitHub only as a fallback, improving reliability of update checks.
2025-11-29 13:31:57 +02:00
oop7 b58b1a6857 Persist cookie settings using ConfigManager
Refactored cookie settings initialization and application to use ConfigManager for persistence. Cookie source, browser, profile, file path, and active status are now saved and loaded from config, ensuring consistent behavior across sessions. Cookies remain inactive on app launch until explicitly applied by the user.
2025-11-28 18:18:57 +02:00
oop7 fc719a8cc8 Add thumbnail status messages and refactor thumbnail saving
Added new localized status messages for thumbnail saving in all supported languages. Refactored the thumbnail saving logic in ytsage_gui_video_info.py to use cached images from analysis instead of extracting via yt-dlp subprocess, improving reliability and performance.
2025-11-28 18:00:56 +02:00
oop7 3f0db8208b Add audio format settings update in preferences
Audio format settings (force and preferred) are now updated from the preferences dialog. Tooltip update logic is extended to reflect changes in audio format settings.
2025-11-17 15:26:37 +02:00
oop7 f2b6dc26cb Add audio format selection for audio-only downloads
Introduces settings and UI for forcing audio format conversion on audio-only downloads, including support for selecting preferred audio formats. Updates language files for all supported languages, adds config options, and passes new settings through the downloader and main app logic.
2025-11-17 15:23:48 +02:00
oop7 15bf5673e3 Refactor table column sizing for mixed stretch modes
Updated the format table column configuration to use a 'stretch' flag for each column, allowing some columns to stretch while others remain fixed. This improves layout flexibility and ensures important columns have consistent sizing.
2025-11-15 18:27:05 +02:00
oop7 9d5a2460b1 Add Deno version check and update UI
Introduces a Deno version checker and updater section to the updater tab, with localized strings in all supported languages. Adds backend functions for fetching the latest Deno version, comparing versions, and upgrading Deno, along with corresponding GUI logic for checking and updating Deno from the interface.
2025-11-14 18:44:40 +02:00
oop7 894f999017 Add Deno version detection and caching support
Introduces functions to detect Deno version directly and with caching in ytsage_deno.py and ytsage_utils.py. Updates the About dialog to display Deno status, version, and path if available. Also extends version cache refresh logic to include Deno.
2025-11-14 18:19:02 +02:00
oop7 38a8d9d29f Add Deno setup and integration to application
Introduces Deno binary management, setup dialog, and download/verification logic. Updates localization files for Deno setup messages in all supported languages. Integrates Deno setup checks into main.py and GUI initialization, and adds Deno constants for platform-specific downloads.
2025-11-14 17:58:45 +02:00
oop7 bb231ccd12 Refactor FFmpeg updater to version checker
Replaces the FFmpeg updater logic with a version checker across all supported languages and removes the updater module. The Windows installation logic in ytsage_ffmpeg.py is rewritten to use essentials build extraction and path configuration directly, removing dependency on the updater module. Dialogs and UI strings are updated to reflect the new version checking workflow and provide installation guide links.
2025-11-14 17:10:36 +02:00
oop7 4c07423b49 Add yt-dlp release channel selection to updater UI
Introduces UI elements and logic for selecting between stable and nightly yt-dlp release channels in the updater tab, with support for switching channels and displaying status. Updates all language files with new strings for channel selection and status messages, and adds a default 'ytdlp_channel' config key.
2025-11-12 22:09:58 +02:00
oop7 0764e3327c Reorder language and updater tabs in options dialog
Moved the language tab to appear after the updater tab in the CustomOptionsDialog tab widget for improved tab organization.
2025-11-12 16:36:06 +02:00
oop7 2e302f1d0e Move yt-dlp auto-update settings to updater tab
Refactored auto-update settings for yt-dlp from DownloadSettingsDialog to the UpdaterTabWidget in the Custom Options dialog. Updated logic to use ConfigManager for settings management and ensured settings are saved when the dialog is accepted. This improves separation of concerns and centralizes update-related options.
2025-11-12 16:33:25 +02:00
oop7 a3a4352f9d Add FFmpeg updater module and GUI integration
Introduces a new FFmpeg updater module for checking and updating FFmpeg to the latest essentials build, with progress reporting and version comparison. Updates language files with new translation keys for the updater in multiple languages. Refactors Windows FFmpeg installation to use the new updater logic. Adds UpdaterTabWidget to the GUI dialogs for integration of the updater into the application's interface.
2025-11-12 16:04:55 +02:00
oop7 17a33b0c9c Remove unused code and style module
Deleted the ytsage_style.py file and removed related imports, as well as unused compatibility exception classes and the sanitize_filename function. The downloader now always uses the direct CLI command, removing the Python API fallback.
2025-11-04 21:49:33 +02:00
oop7 f2a6f3c3e6 Add analysis-dependent control logic and tooltips
Introduces logic to enable or disable UI controls based on whether video analysis is complete, with appropriate tooltips for disabled states. Updates all language files to include new tooltip strings. Ensures controls like subtitle selection, SponsorBlock, and merge subtitles are only enabled after analysis, improving user guidance and preventing invalid actions.
2025-11-03 21:33:25 +02:00
oop7 3729d2941e Add output format selection to settings
Introduces new settings for forcing output format when merging videos, allowing users to select a preferred format (mp4, webm, mkv). Updates all language files with relevant translations, adds UI controls in the settings dialog, persists settings via ConfigManager, and passes options through the download workflow to yt-dlp.
2025-11-03 20:53:53 +02:00
oop7 70a913b903 Remove update button enable/disable logic
Eliminated the line that enabled or disabled the update_ytdlp_btn in the YTSageApp class. This may be due to a change in UI requirements or the removal of the update button functionality.
2025-11-03 19:32:46 +02:00
oop7 c765e69453 Increase thumbnail size in history entry widget
Adjusted the thumbnail QLabel size from 240x135 to 280x158 in HistoryEntryWidget to better utilize available space and improve visibility.
2025-11-03 19:05:37 +02:00
oop7 d009202230 Refactor yt-dlp update flow and update translations
Replaces manual update check logic in DownloadSettingsDialog with a dedicated YTDLPUpdateDialog for progress tracking. Removes the 'Update yt-dlp' button and related logic from the main window. Updates translation strings in all supported languages to reflect the new update dialog flow and button labeling.
2025-11-03 18:40:28 +02:00
oop7 df4a7ab49d Add download history feature with UI and localization
Introduces a download history dialog with thumbnail previews, redownload, and remove options. Updates all language files to support history-related UI strings. Adds HistoryManager utility and integrates history dialog into the main GUI. Enhances downloader to better track final downloaded files and merged outputs.
2025-11-03 18:27:22 +02:00
oop7 e862c811c2 Use APP_VERSION constant for version display
Replaces hardcoded version strings with the APP_VERSION constant in both the main window and About dialog. This ensures version consistency across the application and simplifies future version updates.
2025-11-01 12:43:58 +02:00
oop7 73479a46bd Improve format selection for audio/video downloads
Refactored format selection logic to explicitly handle audio-only and progressive formats using new flags. Updated GUI to pass format metadata, ensuring correct yt-dlp command construction and more reliable downloads for different format types.
2025-11-01 12:28:32 +02:00
oop7 eeb601cbbd Bump version to 4.9.2
Update version references from 4.9.1 to 4.9.2 in documentation, __init__.py, About dialog, and main application class to prepare for new release.
2025-10-31 19:02:36 +02:00
oop7 32c2d899ba Show error dialog for invalid URLs in GUI
Replaces status label updates with QMessageBox warnings for invalid video URLs in the main UI. Adds 'error_title' translation key to all supported languages for consistent error dialog titles.
2025-10-31 17:54:02 +02:00
oop7 f31b07e018 Revamp cookies tab UI and add apply functionality
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.
2025-10-31 17:46:18 +02:00
oop7 1ba4703631 Remove cookie handling from custom options dialog
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.
2025-10-31 17:46:08 +02:00
oop7 8d2e7bd553 Add URL validation and ytdlp error messages to translations
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.
2025-10-26 21:05:57 +03:00
oop7 fe5638393a Bump version to 4.9.1
Update version references from 4.9.0 to 4.9.1 in documentation, __init__.py, AboutDialog, and main application window to prepare for new release.
2025-10-25 19:50:50 +03:00
oop7 41d35060c1 Remove yt-dlp Python package usage; use binary only
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.
2025-10-25 19:49:46 +03:00
oop7 08021f6c53 Bump version to 4.9.0 for release
Updated version references from 4.9.0b to 4.9.0 in __init__.py, main app, and About dialog to reflect stable release.
2025-10-25 18:47:41 +03:00
oop7 c00ef14703 Add 'Open Folder' button after download completion
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.
2025-10-25 18:10:04 +03:00
oop7 115718c396 Localize update dialog strings in all languages
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.
2025-10-13 15:50:25 +03:00
oop7 3c8fa38a94 Add Keys for update and error messages
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.
2025-10-13 15:15:27 +03:00
Your Name d80dff371c Add localization keys for fallback and status messages in UI
Replaced hardcoded status and fallback messages with localized strings across downloader, update, and main UI modules. Updated language files for all supported languages to include new keys for fallback download status, pip timeout, invalid URL, zero selected, and playlist selection dialog title. This improves internationalization and consistency of user-facing messages.
2025-10-06 17:26:16 +03:00
Your Name 2ccdb532b5 Add localization for post-processing status messages
Introduces new translation keys for post-processing status messages ('merging formats' and 'removing sponsor segments') in all supported languages. Updates code to use these i18n keys in both downloader and GUI, improving localization and consistency of user-facing messages.
2025-10-06 17:09:36 +03:00
Your Name 79b03bd083 Add HDR column to format table and translations
Introduces an HDR (High Dynamic Range) column to the format table in both playlist and normal modes, updating column counts, widths, and item population logic accordingly. Also adds the 'hdr' translation key to all supported languages.
2025-10-04 14:03:29 +03:00
Your Name 4bc677add3 Make format table column widths responsive
Refactored column width and resize logic in the format table to use responsive sizing based on header text length and font metrics. Introduced helper methods to calculate and apply column widths for both normal and playlist modes, improving adaptability to localization and UI consistency.
2025-10-04 13:42:50 +03:00
Your Name a627dfbf64 Add new translation keys for file exists and auto-update dialogs
Introduces new translation keys for file exists and auto-update dialogs in all supported languages. Updates the settings and main GUI to use these i18n strings instead of hardcoded English text, improving localization and user experience.
2025-10-04 13:25:17 +03:00
Your Name 3164c07416 Add localization for status and error messages
Replaced hardcoded status and error messages with localized strings throughout the downloader, main GUI, update dialog, and video info components. Updated English and Spanish language files with new keys for download statuses, errors, playlist info, and UI labels to improve internationalization and maintainability.
2025-10-02 22:03:21 +03:00
Your Name be122d77fe Fix resolution parsing in format quality sorting
Improves robustness of the get_quality function by handling None and non-string resolution values, and catching IndexError in addition to ValueError when parsing resolution.
2025-10-02 21:22:08 +03:00
Your Name d81adc4781 Replace notes column with FPS in format table
The format table now displays FPS (frame rate) instead of notes in both playlist and normal modes. All translations were updated to remove the 'notes' and related size/quality fields, replacing them with 'fps'. The table column widths were adjusted for better visibility, and FPS values are color-coded based on their value. The obsolete _get_format_notes method was removed.
2025-10-02 21:16:27 +03:00
Your Name f461e9480b Increase select column width in format table
The select column width in the format table was increased from 50 to 80 pixels to better accommodate longer translations. This change ensures consistent column sizing across different table setups.
2025-10-02 19:37:11 +03:00
Your Name f85e3a6a83 Add Japanese localization and update language support
Added a new Japanese translation file (ja.json) and updated all language files to include Japanese in the language selection. Updated quality label color detection in ytsage_gui_format_table.py to support Japanese terms, and registered Japanese in the default language list in ytsage_localization.py.
2025-10-02 18:28:04 +03:00
Your Name 0ccb974708 Add Arabic translation and update language support
Added a new Arabic translation file (ar.json) and updated all other language files to include 'arabic' in the language selection list. Also updated quality label color detection in the format table to support Arabic terms, ensuring proper highlighting for quality levels in Arabic.
2025-10-02 18:20:50 +03:00
Your Name 8d0bcf60c1 Add Italian language support and update quality labels
Introduces Italian translations by adding languages/it.json and updating all language files to include 'italian' in the language selection. Updates quality label color logic in ytsage_gui_format_table.py to recognize Italian terms for best, high, medium, and low quality. Also updates the default language list in ytsage_localization.py to include Italian.
2025-09-30 22:44:12 +03:00
Your Name 828f105c92 Add Polish localization and update quality color mapping
Added Polish translations in a new pl.json file and updated all language files to include 'polish' in the language selection. Extended the quality color mapping in ytsage_gui_format_table.py to recognize Polish terms for best, high, medium, and low quality. Updated the default language list in ytsage_localization.py to include Polish.
2025-09-30 22:38:29 +03:00
Your Name fdbb4a6972 Add Turkish localization and update language support
Added Turkish translations in languages/tr.json and updated all other language files to include Turkish in the language selection. Updated format table color logic in ytsage_gui_format_table.py to recognize Turkish quality terms. Also updated ytsage_localization.py to include Turkish in the default language list.
2025-09-30 22:28:27 +03:00
Your Name b9e8e34e8f Add Indonesian localization and update language support
Introduces Indonesian translations by adding languages/id.json and updating all language files to include 'indonesian' in the language selection. Updates format table color logic in ytsage_gui_format_table.py to recognize Indonesian quality terms. Also updates ytsage_localization.py to include Indonesian in the default language list.
2025-09-30 22:22:53 +03:00
Your Name b02ca9ae01 Add Hindi localization and update language support
Introduces a new Hindi translation file (hi.json) and adds Hindi as a selectable language in all existing language files. Updates the format table to recognize Hindi quality terms for color coding, and includes Hindi in the default language list in the localization manager.
2025-09-30 22:16:31 +03:00