Commit Graph
100 Commits
Author SHA1 Message Date
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 d5c3b4799b Add explicit type annotations across core modules
Introduced explicit type annotations for variables, function arguments, and return types in ytsage_downloader.py, ytsage_utils.py, and ytsage_config_manager.py. This improves code clarity, maintainability, and static analysis support.
2025-11-15 18:31:16 +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 ac7deddd1f Update bug report template environment section
Added fields for yt-dlp and Deno versions, updated example versions for YTSage and Python, and clarified instructions for finding environment details in the About dialog.
2025-11-15 16:49:44 +02:00
oop7 8057b355ce Update README with new features and Deno support
Added details about Deno detection, updater tab, download history, and clarified output format options. Updated feature tables and instructions to reflect new capabilities and improved integration with Deno.
2025-11-14 20:02:24 +02:00
oop7 2255c4b6d2 Add minimum versions to requirements.txt
Specified minimum required versions for all dependencies in requirements.txt to ensure compatibility and reproducibility.
2025-11-14 19:35:22 +02:00
oop7 a3aebff19f Update README with deno detection and folder structure
Added deno to the detection features and clarified usage in the about dialog. Improved folder structure documentation for consistency, added missing files, and updated formatting for better readability. Also updated troubleshooting advice for format table display.
2025-11-14 19:13:28 +02:00
oop7 e7ae5566e5 Localize Deno setup strings in all language files
Replaces English Deno setup and installation messages with localized translations in Arabic, German, Spanish, French, Hindi, Indonesian, Italian, Japanese, Polish, Portuguese, Russian, Turkish, and Chinese language files for improved internationalization.
2025-11-14 18:53:41 +02:00
oop7 274ba94ff4 Localize Deno updater strings in all supported languages
Updated translations for the Deno updater feature across all language files, replacing English strings with localized versions for improved internationalization and user experience.
2025-11-14 18:48:44 +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 b0c7616704 Add SHA256 verification for yt-dlp downloads
Introduced a function to verify the SHA256 hash of the downloaded yt-dlp binary against official checksums, improving security and integrity checks. Updated the download thread to perform hash verification after download and handle failures appropriately. Added the SHA256 checksums URL to constants.
2025-11-12 20:25:48 +02:00
oop7 37f75b7d75 Update README with new module and dialog files
Added ytsage_ffmpeg_updater.py and ytsage_dialogs_updater.py to the project structure in the README to reflect recent additions to the codebase.
2025-11-12 18:13:35 +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 9f9bcf2d1e Update FFmpeg download URL in Windows build workflow
Changed the FFmpeg download link in the build-windows.yml workflow to use the official gyan.dev source instead of the GitHub release. This ensures the workflow uses the latest and most reliable FFmpeg builds.
2025-11-12 16:08:01 +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 683946377e Update Python version badge in README
Changed the Python version badge from 3.9+ to 3.10+ to reflect updated minimum supported Python version.
2025-11-12 12:46:56 +02:00
oop7 b3206d8890 Remove redundant file existence check in downloader
Eliminated the check_file_exists method and related logic, as file existence is now handled by yt-dlp itself. This simplifies the DownloadThread class and avoids unnecessary pre-download checks.
2025-11-04 22:06:30 +02:00
oop7 f88cf66a23 Remove ytsage_style.py from package file list
The reference to ytsage_style.py was removed from the README to reflect its absence or deprecation in the codebase.
2025-11-04 22:03:13 +02:00
oop7 4bbb6af693 Improve robustness of final file detection after download
Enhanced the logic for finding the final downloaded file by always searching for the most recent video or audio file in the download directory and its subdirectories. This approach handles various post-processing scenarios such as merging, remuxing, and subtitle embedding, ensuring the correct file is identified even if the tracked path is invalid or missing.
2025-11-04 22:01:34 +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 4d191427d9 Improve README advanced options section
Renamed the 'Options' section to 'Advanced Options' and clarified descriptions for several features, improving readability and consistency in the documentation.
2025-11-03 21:54:58 +02:00
oop7 d454b03b46 Update README options section and add history feature
Renamed 'Advanced Options' to 'Options' and added a description for the new history feature, allowing users to view past downloads and their statuses.
2025-11-03 21:54:08 +02:00
oop7 ac91fbd571 Update advanced options in README
Clarified and expanded descriptions for advanced options, including subtitle merging, custom commands, saving description/thumbnail, sponsor segment removal, speed limiter, download path, yt-dlp updates, FFmpeg/yt-dlp detection, and forced output format. Improves documentation accuracy and usability.
2025-11-03 21:49:58 +02:00
oop7 d9fa7063e0 Update yt-dlp translation strings in all languages
Replaces references to 'yt-dlp executable' with 'yt-dlp' in the 'analyzing_extracting_ytdlp' string across all supported language files for consistency and clarity.
2025-11-03 21:41:38 +02:00
oop7 ba5ff8c4a8 Bump version to 4.9.5b
Updated the __version__ string in src/__init__.py to 4.9.5b to reflect new changes or a beta release.
2025-11-03 21:36:04 +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
Mohamed 60a6eecc75 Update Extra Features section in README
Replace Save path with FPS/HDR Display
2025-11-01 11:28:48 +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 97aaa16cc4 Add cookie management translations to all languages
Added new translation keys for cookie management features (recommended, file applied, browser applied, cleared messages) to all supported language files for improved internationalization and user feedback.
2025-10-31 17:46:28 +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 952ac88518 Add video URL validation and filename sanitization
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.
2025-10-26 20:50:19 +03:00
oop7 22a7951d80 Remove duplicate signal declaration in DownloadThread
Eliminated a redundant declaration of the 'update_details' signal in the DownloadThread class to clean up the code and prevent confusion.
2025-10-26 20:48:34 +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 aab5fd9549 Remove yt-dlp from requirements.txt
The yt-dlp package has been removed from the list of dependencies in requirements.txt, possibly because it is no longer needed or used in the project.
2025-10-25 19:49:39 +03:00
oop7 9bc5935d12 Remove pip update strings from translations
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.
2025-10-25 19:49:25 +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 96a175cac5 Merge branch 'beta' 2025-10-25 18:42:47 +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 6ed1314bec Improve asset path resolution and app data directory logic
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.
2025-10-25 16:25:57 +03:00
oop7 f9c8b80bfe Update CI/CD README for v4.9.0 release instructions
Replaces references to v4.8.0 with v4.9.0 in the CI/CD workflow documentation to reflect the latest release process.
2025-10-25 15:53:29 +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
Mohamed b063b4f01e Format project name and update Python version badge 2025-09-05 15:01:13 +03:00
Mohamed defdedc9b1 update build-windows.yml 2025-08-27 02:52:50 +03:00
Mohamed 858fb0fc98 update scripts 2025-08-27 02:39:46 +03:00
Mohamed 7fb316be9b Add windows_build_universal.py 2025-08-27 01:59:28 +03:00
Mohamed 0b3a8e9fa6 Add windows-build-universal script 2025-08-27 01:06:25 +03:00
Mohamed f5ee279bfc Add cx_Freeze setup script for Windows build ffmpeg 2025-08-27 01:05:36 +03:00
Mohamed 1eb138172c Create setup.py for Windows build 2025-08-27 01:03:57 +03:00
Mohamed eaf024d78b Add README.md file with initial content 2025-08-27 01:01:45 +03:00
Mohamed 6652d7f00f docs: add antivirus false positive warning to troubleshooting 2025-08-19 20:30:54 +03:00
Your Name e926543eeb Merge branch 'main' of https://github.com/oop7/YTSage 2025-07-06 15:20:24 +03:00
Your Name 97375ec93b Add .gitignore file for Python project
Initial .gitignore includes rules for Python bytecode, local configuration, packaging artifacts, logs, OS/editor files, and yt-dlp temporary files.
2025-07-06 15:20:20 +03:00
Mohamed 0d384227fa feat: fix README navigation and add themed badges 2025-07-05 13:17:10 +03:00
Your Name 99d0750a74 Add yt-dlp Module with Download and Installation Path Logic 2025-07-04 21:37:01 +03:00
Your Name 49c53abe1e Refactor Utility Functions with Caching and Error Handling for yt-dlp/ffmpeg Paths 2025-07-04 21:36:35 +03:00
Your Name 67d11592bc Refactor Button Styles for Consistency 2025-07-04 21:36:07 +03:00
Your Name c75c36eea9 Ensure yt-dlp Availability in Video Info Module 2025-07-04 21:35:39 +03:00
Your Name 36f9996424 Refactor Imports, yt-dlp/Pygame Availability, and ffmpeg/yt-dlp Checks 2025-07-04 21:35:16 +03:00
Your Name 5a49e606cd Refactor Imports and yt-dlp Path Handling in Dialogs 2025-07-04 21:34:48 +03:00
Your Name 320e064ddc Refactor yt-dlp Integration and Error Handling 2025-07-04 21:34:18 +03:00
Your Name b04502b28b notification 2025-07-04 21:33:49 +03:00
Your Name df41c42ae8 Update Requirements: Add pygame 2025-07-04 21:33:10 +03:00
Your Name 4e939149de Update README with Installation and Feature Details 2025-07-04 21:32:28 +03:00
Your Name 03a210507d Update Application Initialization with yt-dlp Checks 2025-07-04 21:32:00 +03:00
Your Name 1cc16cab5d chore: bump version number 2025-06-11 00:35:19 +03:00
Your Name 236521a8eb ui: redesign speed limit dropdown to match theme 2025-06-11 00:34:46 +03:00
Your Name 55c7cd5032 docs: add .deb package info to README 2025-06-11 00:34:02 +03:00
Muhamed 633af43ec9 docs: update emojis and add collapsible section 2025-06-10 20:03:24 +03:00
Your Name c138a19822 Add Custom Options & Trim Video 2025-06-04 18:47:24 +03:00
Your Name d9fc067e62 Add yt-dlp auto-update via PyPI 2025-06-04 18:47:11 +03:00
Your Name b8b73f0bf2 Refine file size notes 2025-06-04 18:46:56 +03:00
Your Name 6bd6ba8dd1 Merge cookie/custom dialogs; add trim dialog 2025-06-04 18:46:39 +03:00
Your Name b4d1254c64 Support time-ranged video downloads 2025-06-04 18:46:21 +03:00
Your Name 8293b3f91d Document Trim Video feature 2025-06-04 18:46:02 +03:00
Your Name 2bd11f9727 Check yt-dlp update on start 2025-06-04 18:45:40 +03:00
Your Name 062b145085 chore: Move Troubleshooting section after Usage 2025-05-22 19:03:03 +03:00
Your Name 63fa3d991e fix: handle yt-dlp path errors 2025-05-22 18:58:31 +03:00
Your Name 4b56e23a13 fix(gui): handle pre-executable errors in main_gui.py 2025-05-22 18:57:12 +03:00
Your Name 55feca69c6 docs: add Troubleshooting section to README 2025-05-22 18:55:53 +03:00
Muhamed e1a0f76298 Update README.md
Clarify yt-dlp update instructions in README
2025-05-01 10:03:00 +03:00
Muhamed cfc7e9891a Update screenshots 2025-04-29 15:10:14 +03:00
Muhamed 7e354a1938 Update README.md 2025-04-29 14:58:42 +03:00
Muhamed 030760eae8 Update Screenshot
Update the main interface screenshot
2025-03-10 15:44:07 +02:00