Commit Graph

327 Commits

Author SHA1 Message Date
oop7 e8482ce180 Add icons to video info labels in translations
Updated the 'views', 'likes', 'upload_date', and 'duration' fields in the video_info section across all language files to include relevant icons for improved visual clarity and consistency in the UI.
2025-12-06 21:40:40 +02:00
oop7 83d37676ae Suppress output when killing process tree on Windows
Replaces capture_output with stdout and stderr redirected to DEVNULL in subprocess.run for taskkill, preventing codec issues and suppressing command output.
2025-11-29 14:44:39 +02:00
oop7 bcbfd6f605 Remove yt-dlp mention from extracting info message
Updated the 'analyzing_extracting_ytdlp' translation string in all language files to remove the explicit mention of 'yt-dlp', making the message more generic and consistent across supported languages.
2025-11-29 14:11:28 +02:00
oop7 478daf4771 Improve process termination and file cleanup logic
Enhanced cross-platform process tree termination for downloads, using process groups on Unix and taskkill on Windows. Improved file deletion reliability by increasing retries, adding garbage collection, and adjusting backoff logic. Refactored process startup to support process group management and ensured proper resource cleanup after cancellation.
2025-11-29 14:09:05 +02:00
oop7 9d1f886305 Update subprocess to use encoding and error handling
Replaces 'text' and 'universal_newlines' parameters with 'encoding="utf-8"' and 'errors="replace"' in subprocess.Popen for improved output handling.
2025-11-29 13:58:16 +02:00
oop7 62298dabf3 Enable analyze button only when URL is entered
Added logic to disable the analyze button until a non-empty URL is entered. Updated button styling for the disabled state and ensured consistent enabling/disabling of the analyze button based on input and control state.
2025-11-29 13:47:10 +02:00
oop7 b8804210dc Remove ffplay.exe from Windows build workflow
Updated the build-windows.yml workflow to exclude ffplay.exe from verification and distribution steps, as only ffmpeg.exe and ffprobe.exe are required by the application.
2025-11-29 13:41:06 +02:00
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 7a6aaa6704 Bump version to 4.9.6b
Updated the __version__ string in src/__init__.py to 4.9.6b for the next development release.
2025-11-28 17:44:23 +02:00
oop7 c99b9b76ac Update CI/CD README for v4.9.5 release
Changed example version numbers in CI/CD documentation from v4.9.2 to v4.9.5 to reflect the latest release process.
2025-11-27 18:42:49 +02:00
oop7 0a66202f1d Update cx_Freeze base to 'gui' in Windows build
Changed the cx_Freeze Executable base from 'Win32GUI' to 'gui' in the Windows build workflow to align with updated cx_Freeze conventions.
2025-11-27 18:40:06 +02:00
oop7 c2a8cbd679 Update version to 4.9.5 in __init__.py
Removed the beta suffix from the version string, indicating a stable release.
2025-11-27 18:15:32 +02:00
oop7 91a0f3e4d7 Update CI workflows: actions versions and dependencies
Bump actions/checkout to v6 and softprops/action-gh-release to v2 in all build workflows. Remove yt-dlp from pip install steps for Linux, macOS, and Windows workflows to streamline dependency installation.
2025-11-27 17:41:39 +02:00
Mohamed 35e2a7f4e9 Update package versions in requirements.txt
Bumped versions for PySide6, pillow, markdown, and pyglet to ensure compatibility with the latest releases and security updates.
2025-11-27 17:30:25 +02:00
oop7 dfc59a6aa0 Add instructions for collecting log files in bug report template
Updated the bug report issue template to include step-by-step instructions for users to collect and attach log files from the appropriate directory on Windows, macOS, and Linux. This will help streamline the debugging process by ensuring relevant logs are provided.
2025-11-19 21:25:16 +02:00
oop7 f03ab5093f Update README screenshots and asset list
Added references to new screenshots (Custom-Option.png, Download-Settings.png) and adjusted the order of listed files in the documentation assets section for clarity.
2025-11-17 17:24:49 +02:00
oop7 6ae92c937e Update screenshots and labels in README
Replaced images and updated corresponding labels in the screenshots table to reflect new interface sections and options.
2025-11-17 17:01:57 +02:00
oop7 dfb1943e54 Update and add branding screenshots
Added new screenshots for Custom Option and Download Settings. Updated audio_format, main, and playlist screenshots. Removed obsolete subtitle_options screenshot.
2025-11-17 16:59:00 +02:00
oop7 a6f375abac Update README with new features and UI changes
Added details about audio format conversion and video format settings. Clarified UI options for saving download path and output format. Updated feature table to reflect new and improved functionalities.
2025-11-17 15:42:45 +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 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