Commit Graph
100 Commits
Author SHA1 Message Date
oop7 3ea5fedfa3 Remove Qt DLLs from PySide6 and suppress errors
Add -ErrorAction SilentlyContinue to Get-ChildItem calls and add a check for a lib\PySide6 folder to remove matching Qt DLLs there as well. This prevents failures when no files match the patterns and ensures duplicate Qt DLLs packaged under PySide6 are cleaned up. Applied to both DLL-cleanup sections of the Windows build workflow.
2026-02-03 15:20:09 +02:00
oop7 dab35a1a3a Prune PySide6 files in Windows build workflow
Refactor Windows build cleanup to use a dedicated $libDir and more aggressively prune unused PySide6/Qt files. Replaces direct $distDir references with $libDir for lib content and removes screenshots, PDBs, translations, many plugin folders, specific image/icon plugins (qpdf/qsvg/qsvgicon), platform input contexts, and common bulky Qt DLL patterns. Also removes several build tools/unused Python modules (setuptools, wheel, pkg_resources, _distutils_hack, curses, _pyrepl). Applied the same changes to both YTSage and YTSage-FFmpeg packaging steps to reduce bundle size and noise, and improved log messages for removed items.
2026-02-03 15:04:30 +02:00
oop7 cc3a00e1e0 Enhance Linux build packaging and cleanup
Adjust build-linux CI to produce smaller, self-contained AppImages: enable silent build output, add zip_include_packages so key libs (PySide6, shiboken6, requests, PIL, packaging) are packaged, and add extra excludes (pydoc, doctest, email). Use python -OO for optimized bytecode. Expand post-build trimming to remove screenshots, Qt translations, unused PySide6 plugins and other Qt artifacts (Qt6Web*, Qt6Pdf*) with informative logging. These changes reduce package size and avoid shipping unnecessary runtime components.
2026-02-03 14:46:37 +02:00
oop7 bf9e11d08f macOS build: trim .app bundle and packaging tweaks
Improve macOS CI packaging by trimming unnecessary files from the built .app and adjusting build options. Changes include:

- Enable cx_Freeze silent build and run Python with -OO for bdist_mac.
- Add zip_include_packages to ensure key packages are bundled inside zip distributions.
- Exclude additional stdlib modules (pydoc, doctest, email) to reduce size.
- New workflow step to locate the generated .app and remove screenshots, Qt translations, unused PySide6 plugins and other Qt artifacts (Qt6Web*, Qt6Pdf*), with safer path detection and logging.
- Remove noisy post-build directory listings and simplify DMG handling/log messages; make .app and .dmg discovery more robust.

These changes aim to produce smaller, cleaner artifacts and more reliable CI packaging for macOS builds.
2026-02-03 14:41:19 +02:00
oop7 6c98d729ea Optimize Windows builds and trim dist files
Add build/time optimizations and post-build trimming for Windows CI. Enables silent cxfreeze output and adds zip_include_packages (PySide6, shiboken6, requests, PIL, packaging) so selected packages are included in the zip; excludes additional stdlib modules (pydoc, doctest, email) to reduce bundle size. Switches build invocation to python -OO for extra optimization and adds dedicated PowerShell steps (for both standard and FFmpeg builds) that remove screenshots, PDB debug files, unused Qt translations/plugins and extra Qt DLLs (Qt6Web*/Qt6Pdf*) to shrink artifacts and remove unnecessary files before packaging.
2026-02-03 14:17:46 +02:00
oop7 2935eb01c1 Add smooth tab widget with fade transitions
Introduce SmoothTabWidget and a FadingStackedWidget to provide cross-fade transitions between tabs. Added ytsage/gui/ytsage_smooth_tab_widget.py which implements a QTabBar + FadingStackedWidget (default 300ms fade) and overlay-based fade logic. Updated ytsage/gui/ytsage_gui_dialogs/ytsage_dialogs_custom.py to use SmoothTabWidget instead of QTabWidget and adjusted the stylesheet selector to target the new content frame (#tabContent) so existing styles continue to apply.
2026-02-01 14:30:54 +02:00
oop7 79a85cf707 Run dialogs with blurred screenshot overlay
Add a safe blurred-overlay flow for modal dialogs by implementing run_dialog_with_blur and _apply_blur_to_pixmap on YTSageApp. The new flow captures a window screenshot, generates a blurred/dimmed pixmap via a QGraphicsScene + QGraphicsBlurEffect, shows it in an overlay QLabel with a fade-in, runs the dialog, and then removes the overlay.

Replace many direct dialog.exec() calls with run_dialog_with_blur(...) across the main GUI (download settings, about, history, playlist selection, custom options, cookie login, ffmpeg check, time range, setup success dialogs, etc.). Also add imports required for pixmap/graphics handling.

Make animate_widget_fade_in usage safer by checking for the method before calling it and falling back to setVisible(True) for format table and thumbnails to avoid QPainter/graphics-effect conflicts. Small comment/cleanup in fade-in/out methods.
2026-02-01 14:23:32 +02:00
oop7 7890a94702 Add pressed padding to QPushButton styles
Update ytsage/gui/ytsage_stylesheet.py to add explicit padding for various QPushButton:pressed rules (and QPushButton:checked:pressed) across multiple style blocks. These changes unify the visual spacing and touch feedback when buttons are pressed, ensuring consistent pressed-state layout and appearance.
2026-02-01 12:51:36 +02:00
oop7 36eff02b18 Add widget shake animation for invalid input
Introduce a shake animation to visually indicate invalid inputs and wire it into validation/error flows. Changes: import QPoint; add animate_widget_shake(QWidget) implementation that uses QPropertyAnimation on widget.pos with keyframes; call the animation when URL/path/format validations fail and replace some direct status_label updates with set_status_message_animated. Updated files: ytsage/gui/ytsage_gui_main.py and ytsage/gui/ytsage_gui_analysis.py.
2026-02-01 12:36:00 +02:00
oop7 091c6c68c1 Fade in video thumbnail on load
Hide the thumbnail QLabel before assigning the pixmap and trigger animate_widget_fade_in to smoothly fade the thumbnail into view. Keeps existing exception logging for thumbnail processing.
2026-02-01 12:27:07 +02:00
oop7 f9a9dc4879 Animate widget visibility and fix fades
Use animated show/hide for playlist widgets and harden fade animations. Replace direct setVisible signal handlers with lambdas that call set_widget_visible_animated, and add set_widget_visible_animated to route to fade-in/out. Fade methods now stop opposing animations, reuse existing QGraphicsOpacityEffect when present, preserve current opacity as start values, and set effect opacity when creating a new effect. Also catch possible RuntimeError when stopping animations and keep animation references on widgets to avoid premature GC.
2026-02-01 12:26:57 +02:00
oop7 621d47d701 Hide and fade-in format table on build
Make the format table invisible while it's populated and filtered to avoid visual artifacts, then animate its appearance with animate_widget_fade_in after initial filtering. This ensures a smoother UI when the table is first built.
2026-02-01 12:26:47 +02:00
oop7 2d42be1a0c Add animated fade for status and controls
Introduce smooth UI transitions by adding opacity-based animations. Import QGraphicsOpacityEffect and add animate_widget_fade_in, animate_widget_fade_out, and set_status_message_animated to cross-fade status text and fade buttons in/out. Update signal handlers and download flow to use the new animated status setter and fade methods instead of direct setText/setVisible calls. Keep animation references on widgets to avoid premature GC and remove effects after fade-out.
2026-02-01 12:21:41 +02:00
oop7 ffe64acbeb Capture yt-dlp errors and show better messages
Initialize an error buffer and collect yt-dlp "ERROR:" output lines during direct command runs. When the process exits non‑zero, emit a more informative error using the last two captured error lines (falling back to the generic return-code message if none were captured). Also ensure the buffer is present before appending and keep the existing delay/cleanup flow.
2026-02-01 11:40:00 +02:00
oop7 7bc4488635 Include PySide6.QtNetwork in build workflows
Moved PySide6.QtNetwork from the excludes to the includes list in build workflows for Linux, macOS, and Windows. This ensures the QtNetwork module is bundled during packaging.
2026-01-25 15:53:17 +02:00
oop7 387621cb24 Update icon path in build scripts
Changed the icon installation path from assets/branding/icons/icon.png to branding/icons/icon.png in Linux packaging steps to reflect updated directory structure.
2026-01-25 14:54:00 +02:00
oop7 38f08543d9 Fix build config for Linux workflow
Corrected script path to 'ytsage_entry.py', updated icon path, and fixed configuration for including system libraries and binary excludes in the build-linux.yml workflow.
2026-01-25 14:45:54 +02:00
oop7 2e42d26f44 Bump version to 5.0.0b2
Update the __version__ string in ytsage/__init__.py to 5.0.0b2 to reflect the latest changes.
2026-01-25 14:29:01 +02:00
oop7 c8ff4849fe Add module docstring to utils package
Introduced a descriptive docstring in ytsage/utils/__init__.py to clarify the purpose of the utilities package and its contents.
2026-01-25 14:22:58 +02:00
oop7 c15d615b06 Add MANIFEST.in to include project files in package
Adds a MANIFEST.in file to ensure README.md, LICENSE, pyproject.toml, and all files in ytsage/assets and ytsage/languages are included in the package distribution.
2026-01-25 14:20:01 +02:00
oop7 9a1fb33996 Update macOS artifact naming in CI/CD docs
Clarified the naming convention for macOS build artifacts by specifying 'arm64' in the filenames for the zipped app bundle and disk image installer.
2026-01-25 14:11:11 +02:00
oop7 96dadd7e5b Refactor GUI package structure and update imports
Moved all files from src/gui/ to ytsage/gui/ and updated import statements to use relative imports within the new package structure. This improves modularity and prepares the codebase for distribution as a proper Python package.
2026-01-25 14:07:51 +02:00
oop7 4fb9815ac6 Rename package directory from src to ytsage
Moved __init__.py from src/ to ytsage/ to reflect the new package structure. This change helps clarify the package namespace.
2026-01-25 14:07:29 +02:00
oop7 fa3dc0236f Refactor core module imports and update paths
Renamed 'src/core' to 'ytsage/core' and updated all internal imports to use relative paths. This improves package structure and ensures correct module resolution after the directory move.
2026-01-25 14:07:03 +02:00
oop7 ca6b53715e Refactor utils module structure and update imports
Moved utility modules from src/utils/ to ytsage/utils/ and updated all relative imports accordingly. Adjusted docstring usage examples and fixed a path reference in LocalizationManager to reflect the new directory structure.
2026-01-25 14:06:41 +02:00
oop7 ad5f304d4e Move main.py to ytsage/ and update imports
Renamed main.py to ytsage/main.py and updated relative imports to reflect the new module structure.
2026-01-25 14:05:55 +02:00
oop7 7efcfaa85b Update Windows build workflow for pyproject and asset paths
Switch pip cache and install to use pyproject.toml instead of requirements.txt. Update cx_Freeze setup to use a new entry point, adjust included packages and asset paths to reflect new project structure, and update icon path.
2026-01-25 14:05:44 +02:00
oop7 de7d7965f2 Update macOS build workflow for pyproject and new structure
Switches dependency installation from requirements.txt to pyproject.toml and updates pip cache key accordingly. Refactors cx_Freeze setup to use a new entry point, adjusts included files and paths to match the updated project structure, and updates icon file references.
2026-01-25 14:05:38 +02:00
oop7 a0df6b273f Update Linux build workflow for PEP 517 and cx_Freeze
Switch pip install to use PEP 517 (pyproject.toml) instead of requirements.txt and update cache key accordingly. Refactor cx_Freeze setup to use new asset paths, add entry point script, and adjust include_files for correct packaging structure.
2026-01-25 14:05:34 +02:00
oop7 2e5e40cbf5 Update README for new directory structure and usage
Updated image paths and installation instructions to reflect the new project structure. The documentation now references the 'branding' directory instead of 'assets/branding', and installation uses 'pip install .' with module execution via 'python -m ytsage.main'. The project tree was revised to match the reorganized source and asset directories.
2026-01-25 14:05:05 +02:00
oop7 32b2b544f4 Add build_release.py for automated release process
Introduces a script to automate the production build process, including backing up and modifying the README for PyPI, cleaning previous build artifacts, building the wheel, and restoring the original README. This streamlines and standardizes the release workflow.
2026-01-25 14:04:39 +02:00
oop7 2aac706ef7 Migrate dependencies to pyproject.toml
Replaced requirements.txt with pyproject.toml to modernize project configuration and dependency management using PEP 621 standards. This change improves compatibility with modern Python packaging tools.
2026-01-25 14:04:31 +02:00
oop7 f9eace71e0 Reorganize asset and branding file structure
Moved icons, screenshots, SVGs, and sound files to new locations under 'branding' and 'ytsage/assets' directories for improved project organization.
2026-01-25 14:04:08 +02:00
oop7 acda70150f Move language files to ytsage/languages directory
Renamed and relocated all language JSON files from the root 'languages' directory to 'ytsage/languages' for improved project organization.
2026-01-25 14:03:01 +02:00
oop7 99d3b6ae17 Update CI/CD README with Flatpak and macOS details
Added Flatpak bundle to the list of Linux artifacts and clarified that the macOS zipped application bundle is for arm64 architecture.
2026-01-25 14:02:08 +02:00
oop7 065c5c9c36 Add FFmpeg and yt-dlp setup translations
Extended it.json, ja.json, pl.json, pt.json, ru.json, and tr.json with new translation keys for FFmpeg installation and yt-dlp setup dialogs, error messages, and status updates. Also added new UI strings for cookies, proxy, download, and history features to improve localization coverage.
2026-01-24 19:51:00 +02:00
oop7 0dffa8fbbd Add FFmpeg and yt-dlp setup translations
Added new translation keys for FFmpeg installation and yt-dlp setup dialogs in French, Hindi, Indonesian, and Chinese. Also updated and expanded several UI strings related to cookies, proxy, download, and history management for improved localization coverage.
2026-01-24 19:50:49 +02:00
oop7 d985980e88 Localize current version label in auto-update dialog
Replaced hardcoded current version label with a localized string using the translation function in the AutoUpdateSettingsDialog.
2026-01-24 19:50:41 +02:00
oop7 07765a7a19 Replace hardcoded strings with translatable keys
Updated status and error messages in HistoryDialog to use translation keys instead of hardcoded English strings, improving internationalization support.
2026-01-24 19:50:36 +02:00
oop7 2d343dfacf Refactor UI strings to use translation function
Replaced hardcoded UI strings and tooltips with calls to the translation function (_) throughout ytsage_gui_main.py. This improves localization support and ensures all user-facing messages are translatable.
2026-01-24 19:50:31 +02:00
oop7 3fbddff279 Localize yt-dlp setup dialog strings
Replaced hardcoded English strings in the YtdlpSetupDialog with calls to the localization function _. This improves internationalization support by allowing all user-facing text in the setup dialog to be translated.
2026-01-24 19:50:26 +02:00
oop7 5eda759152 Add localization to FFmpeg installation dialog
Replaced hardcoded strings in the FFmpeg installation dialog with localized strings using the `_` function. This improves internationalization support and prepares the dialog for translation.
2026-01-24 19:50:22 +02:00
oop7 dd6918eefc Refactor dialog strings for i18n support
Replaces hardcoded status and log messages in CustomOptionsDialog with calls to the translation function (_), enabling internationalization of cookie, proxy, and custom command messages.
2026-01-24 19:50:17 +02:00
oop7 1102f7fd4e Localize log window title in LogWindow dialog
Replaced the hardcoded log window title with a localized string using the translation function. This improves internationalization support for the dialog.
2026-01-24 19:50:13 +02:00
oop7 53049fc046 Add and update Spanish translations for new features
Expanded the es.json file with new and updated translations for features related to yt-dlp setup, FFmpeg installation, proxy configuration, download settings, and history management. These changes support new UI elements and error messages, improving localization coverage for recent and upcoming features.
2026-01-24 19:50:08 +02:00
oop7 d2dd73d34d Add new localization strings for setup and status dialogs
Introduces additional English localization keys for yt-dlp log, cookie and proxy status, custom command errors, download settings, FFmpeg installation, yt-dlp setup, and improved download history messages. These changes support new UI dialogs and error handling features.
2026-01-24 19:50:03 +02:00
oop7 180f9e77a4 Update and expand German translations
Added and updated multiple German translation strings for features including yt-dlp log, cookie and proxy management, custom command errors, download settings, FFmpeg installation, and yt-dlp setup dialogs. This improves localization coverage and user guidance for new and existing features.
2026-01-24 19:49:57 +02:00
oop7 7fbef73531 Update Arabic translations for new features
Added and updated Arabic localization strings for new features and UI improvements, including FFmpeg and yt-dlp setup dialogs, proxy and cookie status messages, download settings, and error handling. This enhances support for recent application updates and improves user experience for Arabic-speaking users.
2026-01-24 19:49:52 +02:00
oop7 f0b05d74f4 Add localized error messages for yt-dlp download failures
Introduces new error message keys for download failures with specific return codes and direct command errors in all supported languages. Updates ytsage_downloader.py to use these localized messages and adds the corresponding entries to the localization manager.
2026-01-24 18:48:36 +02:00
oop7 0c03e3b4ba Add smooth animation to progress bar updates
Introduces a QPropertyAnimation for the progress bar to provide a smooth transition effect when updating its value. The animation is triggered for significant changes in progress, improving the user experience with more visually appealing feedback.
2026-01-24 17:34:12 +02:00
oop7 1dba5b629a Increase progress bar precision to 0.01%
Changed the progress bar range from 0-100 to 0-10000 for finer granularity (0.01% steps). Updated all progress bar value assignments and scaling logic to match the new range, and set the display format to show percentage.
2026-01-24 17:32:02 +02:00
oop7 e43b1bbb2e Optimize format table filtering and rebuilding
Refactors the format table logic to build the table once and use row visibility for fast filtering between video and audio formats. Adds internal flags to track table state and format types per row, improving performance and responsiveness when toggling format filters. Also streamlines table population and color-coding logic.
2026-01-24 17:21:24 +02:00
oop7 66870d062b Centralize file extension constants in ytsage_constants
Moved video, audio, and subtitle file extension lists to ytsage_constants.py as centralized frozenset constants. Updated all usages in downloader and GUI modules to reference these constants, reducing duplication and improving maintainability.
2026-01-24 17:01:45 +02:00
oop7 6c9a62f6b8 Improve update check with parallel network requests
Refactored UpdateCheckThread to use ThreadPoolExecutor for parallel requests to PyPI and GitHub, reducing total wait time. Added error handling and timeouts for faster failure detection, and improved changelog fetching with a fallback message.
2026-01-24 16:58:17 +02:00
oop7 b9b0285e95 Refactor config handling to use ConfigManager
Replaced direct usage of load_config and save_config with ConfigManager in ytsage_utils.py and ytsage_dialogs_update.py. Removed legacy config functions from ytsage_utils.py to centralize configuration management and improve maintainability.
2026-01-24 16:54:08 +02:00
oop7 02ede913d2 Refactor analysis to use QThread for thread safety
Replaces the use of Python's threading with a dedicated QThread-based AnalysisThread for URL analysis, ensuring all UI updates are performed via Qt signals for thread safety. Adds cancellation support for analysis, improves error handling, and updates the main window's close event to properly terminate the analysis thread if running. This refactor enhances stability and responsiveness of the GUI during analysis operations.
2026-01-24 16:50:24 +02:00
oop7 217c03379e Add ytsage_stylesheet.py to project structure in README
Updated the README to include the new ytsage_stylesheet.py file under the YTSage GUI directory, reflecting the addition of stylesheet definitions to the project.
2026-01-24 16:30:15 +02:00
oop7 3ae18678e8 Remove pyglet from dependencies list in README
The pyglet library has been removed from the dependencies table in the README, indicating it is no longer used for audio playback in the project.
2026-01-24 16:28:25 +02:00
oop7 64560fabb2 Replace pyglet with QtMultimedia for audio playback
Removed pyglet dependency and migrated notification sound playback to use PySide6.QtMultimedia's QMediaPlayer and QAudioOutput. Updated workflow and requirements files to remove pyglet and ensure PySide6.QtMultimedia is included in build steps.
2026-01-24 16:25:52 +02:00
oop7 d5d7a0186d Refactor analysis logic into AnalysisMixin
Moved all analysis-related methods from YTSageApp in ytsage_gui_main.py to a new AnalysisMixin in ytsage_gui_analysis.py. This improves code organization and separation of concerns by isolating analysis logic from the main application class.
2026-01-24 14:00:13 +02:00
oop7 370836b814 Refactor GUI styles to use centralized StyleSheet class
Moved all inline widget style definitions in ytsage_gui_main.py to named constants in the StyleSheet class in ytsage_stylesheet.py. This centralizes and simplifies style management, improves maintainability, and ensures consistent theming across the application.
2026-01-24 13:46:16 +02:00
oop7 9759fa565f Refactor UI startup and stylesheet handling
Moved the main application stylesheet to a new src/gui/ytsage_stylesheet.py module and applied it via StyleSheet.MAIN. Deferred blocking startup checks (FFmpeg, yt-dlp, Deno, updates) until after the UI is shown to improve responsiveness. Improved subtitle file deletion logic and added destination filename capture in downloader. Added custom style for auto-update checkbox in updater dialog.
2026-01-24 13:35:02 +02:00
oop7 4d4d9e10b9 Refactor updater checks to use QThread for async operations
Replaces manual threading for FFmpeg and Deno version checks with dedicated QThread subclasses (FFmpegCheckThread and DenoCheckThread). This improves integration with the Qt event loop, enables use of signals and slots for UI updates, and enhances error handling.
2026-01-24 12:57:37 +02:00
oop7 a871ded15f Move update check to background thread
Refactored the update checking logic into a QThread subclass to prevent blocking the UI during network requests. The update check now runs asynchronously, and the dialog is shown via a signal when an update is available.
2026-01-24 12:52:48 +02:00
oop7 e2c4dfea4e Increase menu button area in history delegate
Expanded the clickable area for the menu button in HistoryDelegate to 60x50px and adjusted text width accordingly. This improves usability and addresses issues with the left side of the button not responding to clicks.
2026-01-21 18:10:34 +02:00
oop7 7c2e461141 Refactor HistoryManager to use persistent DB connection
Replaces per-operation SQLite connections with a persistent connection for improved efficiency and thread safety. Adds additional indexes for faster search on title, channel, and URL. Refactors all database access methods to use the persistent connection and simplifies transaction handling.
2026-01-21 18:05:17 +02:00
oop7 5f17fabc50 Refactor history dialog to use virtualized list and SQLite
Replaces the history dialog's widget-per-entry approach with a virtualized QListView using a custom model and delegate for improved performance. Switches the HistoryManager backend from JSON file storage to SQLite, including automatic migration of legacy data. Adds support for efficient search, thumbnail caching, and context menu actions in the new UI.
2026-01-21 17:56:56 +02:00
oop7 29f713cf17 Refine HistoryEntryWidget layout and sizing
Adjusted padding, margin, and spacing for a more compact layout. Standardized the thumbnail size to 240x135 (16:9 ratio) and reduced the menu button size for better visual balance.
2026-01-21 17:19:49 +02:00
oop7 ea54f469ac Improve history loading and thumbnail caching UX
Refactors the history loading process to emit entries as soon as they are loaded, allowing the UI to display immediately. Thumbnail downloads are now handled in the background, with widgets updated via a new signal when thumbnails are cached. This prevents UI freezes and improves responsiveness by showing placeholders until thumbnails are available.
2026-01-21 17:16:48 +02:00
oop7 a92ffd3b01 Download video thumbnails asynchronously in GUI
Refactored thumbnail downloading to use a QThread for asynchronous operation, preventing UI blocking. Added ThumbnailDownloadThread class and updated VideoInfoMixin to handle threaded download and error reporting.
2026-01-21 17:16:35 +02:00
oop7 0d1eb35ba2 Add debug log for yt-dlp command execution
Inserted a debug log statement to output the full yt-dlp command before execution. This will help diagnose issues related to command construction and subprocess invocation.
2026-01-21 15:15:14 +02:00
oop7 9a81c4b564 Update badge labels in README
Changed the 'pypi downloads' and 'github downloads' badge labels to 'downloads' for consistency and improved readability.
2026-01-17 22:16:35 +02:00
oop7 ca7ac168fe Update badges in README with download stats
Replaces the generic downloads badge with separate PyPI and GitHub downloads badges for improved clarity. Enhances visibility of project statistics in the README.
2026-01-17 22:13:08 +02:00
oop7 6a4264eeab Add contents write permission to release workflow
Updated the release-all GitHub Actions workflow to include 'contents: write' permission, enabling the workflow to perform actions that require write access to repository contents.
2026-01-17 22:04:23 +02:00
oop7 5ed67cb32f Bump version to 5.0.0b
Update the __version__ string to 5.0.0b to reflect the next major beta release.
2026-01-17 21:58:50 +02:00
oop7 d087c306f2 Add 'analyzing_fetching_first_video' translation key
Introduced the 'analyzing_fetching_first_video' string to all supported language files for consistent UI messaging during the analysis process.
2026-01-17 21:48:45 +02:00
oop7 67fdb508f4 Optimize playlist extraction with yt-dlp flat-playlist
Switches to using yt-dlp's --flat-playlist and --dump-single-json for faster initial playlist info extraction. Now fetches minimal info for all videos quickly, then retrieves full details for the first video only to populate format information, improving performance and reducing unnecessary data processing.
2026-01-17 21:43:08 +02:00
oop7 ffb938b181 Add playlist filter and show video durations in selection dialog
Introduces a filter input to the PlaylistSelectionDialog for searching videos by title and displays video durations next to each entry. Updates English translations to support the new filter placeholder and analysis status message.
2026-01-17 21:43:01 +02:00
oop7 2b7cce1333 Add threaded loading and spinner to history dialog
Introduces a HistoryLoaderThread to load history entries and pre-fetch thumbnails in the background, preventing UI freezes. Adds a loading spinner and disables the 'Clear All' button while loading, improving user experience during history retrieval.
2026-01-17 21:26:26 +02:00
oop7 fd192455f5 Handle Path objects in config JSON serialization
Added a custom converter to serialize Path objects as strings when saving the application configuration to JSON. This prevents serialization errors if Path objects are present in the config.
2026-01-17 21:21:06 +02:00
oop7 f8f2910f06 Fix f-string backslash SyntaxError in AboutDialog
Refactored AboutDialog to avoid backslashes in f-string expressions by assigning HTML links to variables before formatting. This resolves a SyntaxError encountered when running YTSage with Python 3.11.
2026-01-17 21:10:01 +02:00
oop7 c16e84105e Increase subprocess timeout to 300 seconds
Extended the timeout for the subprocess running yt-dlp from 60 to 300 seconds to accommodate longer-running download or processing tasks.
2026-01-17 21:01:52 +02:00
oop7 26d063327c Fix indentation for zip extraction block
Corrected the indentation so that the extraction of the executable occurs within the context of the open zip file. This ensures the file is extracted while the zip is accessible, preventing potential errors.
2026-01-07 18:45:51 +02:00
oop7 a4df946169 Fix extraction path for Deno executable
Changed the extraction target directory for the Deno executable to use the parent of DENO_APP_BIN_PATH instead of APP_BIN_DIR, ensuring the executable is placed in the correct location.
2026-01-07 18:32:20 +02:00
oop7 c7751edd91 Add DENO_APP_BIN_PATH env override and Flatpak support
Introduces support for overriding DENO_APP_BIN_PATH via environment variable, enabling compatibility with Flatpak packaging. Updates the build workflow to set the DENO_APP_BIN_PATH environment variable and ensures parent directories for custom binary paths are created if needed.
2026-01-07 18:11:06 +02:00
oop7 67d0919237 Add Flatpak-specific desktop file to build workflow
Introduces creation of a dedicated desktop file for Flatpak packaging in the build-linux workflow. Ensures the Exec and Icon fields conform to Flatpak requirements and updates the install step to use the new desktop file.
2026-01-07 17:40:07 +02:00
oop7 2574ed0467 Add Flatpak badge to Linux install options
Included a Flathub badge in the Linux installation table to indicate Flatpak bundle availability.
2026-01-06 17:23:31 +02:00
oop7 f7cf752fb2 Bump version to 4.9.8b
Update the __version__ string in src/__init__.py to 4.9.8b to reflect the latest changes.
2026-01-06 17:22:14 +02:00
oop7 c9691c6a56 Update Flatpak runtime to version 6.10 in CI
Changed the Flatpak runtime and SDK version from 6.6 to 6.10 in the build-linux GitHub Actions workflow to ensure compatibility with the latest KDE platform.
2026-01-06 16:50:46 +02:00
oop7 f1d1a68d32 Merge branch 'beta' 2026-01-06 16:14:15 +02:00
oop7 0b5b5b3189 Add Flatpak build support and env override for yt-dlp path
Introduces a Flatpak packaging step to the Linux CI workflow and updates ytsage_constants.py to support overriding the yt-dlp binary path via the YTDLP_APP_BIN_PATH environment variable, which is critical for Flatpak compatibility. Also ensures the custom yt-dlp directory is created if the environment variable is set.
2026-01-06 16:13:21 +02:00
oop7 462252b452 Fix formatting in workflows section of README
Corrected indentation and line formatting for the workflows section in the README to improve readability and consistency.
2026-01-06 16:04:59 +02:00
oop7 0edc64a5e9 Add release-all.yml to CI workflow list in README
Documented the master release workflow (release-all.yml) in the CI/CD section of the README for better visibility of available workflows.
2026-01-06 16:02:59 +02:00
oop7 45ce4ba69c Update CI/CD README for manual workflow triggers
Revamps the CI/CD documentation to reflect the new manual workflow dispatch system, replacing tag-based triggers. Adds detailed instructions for running full or platform-specific builds, clarifies artifact naming, and updates configuration and process notes to match the current GitHub Actions setup.
2026-01-06 16:02:11 +02:00
oop7 16e61c5d6f Refactor release workflows and add release-all trigger
Refactored build workflows for Linux, macOS, and Windows to use workflow_dispatch and workflow_call with explicit version input, replacing tag-based triggers. Updated release steps to use the provided version input for tagging and naming. Added a new release-all workflow to trigger all platform builds with a single version input.
2026-01-06 15:52:58 +02:00
oop7 192841a836 Bump version to 4.9.7
Update the __version__ string in src/__init__.py from 4.9.7b to 4.9.7, indicating a release from beta to stable.
2025-12-26 23:39:28 +02:00
oop7 4aa0a7b70e Update macOS ARM64 descriptions in README
Changed the descriptions for macOS ARM64 APP and DMG formats from 'for ARM64' to 'for Apple Silicon' for improved clarity in the README.
2025-12-11 13:29:31 +02:00
oop7 d8c754382f Set macOS build to run only on macos-latest
Removed the matrix strategy for multiple macOS runners and set the workflow to use only macos-latest. Simplifies the build process and reduces resource usage.
2025-12-11 13:24:37 +02:00
oop7 ba8011ce44 Update macOS build matrix to use macos-14-large
Replaces macos-15-large with macos-14-large in the GitHub Actions build matrix for improved compatibility or resource availability.
2025-12-11 12:18:20 +02:00
oop7 35c58bfcfa Update macOS build matrix to use macos-15-large
Replaces 'macos-15' with 'macos-15-large' in the GitHub Actions build matrix to utilize the larger runner for macOS 15 builds.
2025-12-11 12:15:30 +02:00