Commit Graph

397 Commits

Author SHA1 Message Date
pacnpal
887547473c Added proper physical GPU detection on Linux/Windows/macOS
Separated physical GPU detection from FFmpeg encoder support
Only enable GPU encoding when both physical GPU and FFmpeg support exist
Added multiple detection methods for better reliability
2024-11-15 05:26:10 +00:00
pacnpal
8e581d660e Fixed NVENC preset compatibility
Added proper NVENC preset validation
Separated CPU and GPU presets
Added preset conversion logic for GPU encoding
2024-11-15 05:22:38 +00:00
pacnpal
f8fe409cdd Architecture Changes:
Moved FFmpeg manager to cog level instead of per-guild
Created single shared FFmpeg manager instance in VideoArchiver class
Passed shared FFmpeg manager to VideoProcessor and VideoDownloader
Removed redundant FFmpeg downloads for each guild
Component Management:

Updated VideoArchiver to initialize one FFmpeg manager
Modified guild components to remove FFmpeg manager
Updated component cleanup to handle shared resources
Improved resource initialization order
Resource Efficiency:

Eliminated duplicate FFmpeg binary downloads
Reduced disk space usage
Improved initialization time
Better resource sharing across guilds
Error Handling:

Added proper cleanup for shared resources
Improved error propagation
Enhanced initialization error handling
Better component lifecycle management
2024-11-15 05:17:21 +00:00
pacnpal
06fcf55d90 Encoding Parameters:
Added minimum video bitrate (500 Kbps) to prevent quality degradation
Fixed audio bitrate calculation with proper min/max per channel
Added standard audio sample rate (48 kHz)
Improved bitrate allocation between video and audio
2024-11-15 05:10:59 +00:00
pacnpal
5e8f3c8b98 fix urls 2024-11-15 05:03:24 +00:00
pacnpal
2d92a3dca0 FFmpeg Binary Management:
Fixed tar.xz extraction by separating decompression and extraction steps
Added proper error handling for archive operations
Improved binary verification process
Enhanced cleanup of temporary files
Exception Handling:

Added missing exceptions to utils/exceptions.py
Fixed exception imports in exceptions.py
Added proper error types for all operations
Improved error messages and context
URL Processing:

Added pre-filtering for URLs before yt-dlp checks
Added common video platform patterns
Reduced error logging noise
Improved URL validation efficiency
Code Organization:

Centralized exceptions in utils/exceptions.py
Proper re-exports in exceptions.py
Consistent error handling across components
Better file operation handling
2024-11-15 05:00:47 +00:00
pacnpal
4e8eb38ab7 Exception Hierarchy:
Added missing exceptions to utils/exceptions.py:
ResourceExhaustedError
ProcessingError
CleanupError
FileOperationError
Fixed exception imports in exceptions.py
Added proper re-exports of all exceptions
Maintained backward compatibility aliases
URL Processing:

Added pre-filtering for URLs before yt-dlp checks
Added common video platform patterns
Reduced error logging noise
Improved URL validation efficiency
Error Handling:

Added proper error types for all operations
Enhanced error messages with context
Added resource exhaustion checks
Improved error propagation
Code Organization:

Centralized exceptions in utils/exceptions.py
Proper re-exports in exceptions.py
Consistent error handling across components
Better error type hierarchy
2024-11-15 04:57:19 +00:00
pacnpal
074b6b246b Exception Handling:
Added DiscordAPIError to utils/exceptions.py
Fixed exception imports in config_manager.py
Ensured consistent exception hierarchy
Improved error messages and context
URL Processing:

Added pre-filtering for URLs before yt-dlp checks
Added common video platform patterns
Reduced error logging noise
Improved URL validation efficiency
FFmpeg Management:

Enhanced FFmpeg binary verification
Added robust subprocess handling
Improved cleanup of failed operations
Added detailed logging
Configuration:

Fixed ConfigurationError import
Improved error handling in config operations
Enhanced channel validation
Better error propagation
2024-11-15 04:54:35 +00:00
pacnpal
7e9e193178 URL Processing:
Added URL pre-filtering to avoid unnecessary yt-dlp checks
Added common video platform patterns for quick filtering
Reduced error logging noise from non-URL words
Improved URL validation efficiency
FFmpeg Management:

Enhanced FFmpeg binary verification
Added robust error handling for subprocess calls
Improved cleanup of failed operations
Added detailed logging for binary operations
Error Handling:

Fixed exception hierarchy in utils/exceptions.py
Added proper error types for different failure scenarios
Enhanced error messages with more context
Improved error propagation through the system
Process Flow:

Added proper timeout handling for subprocess calls
Enhanced environment variable handling
Better cleanup after failures
Added retry mechanisms for failed operations
2024-11-15 04:51:17 +00:00
pacnpal
9dc3ef247c Exception Hierarchy:
Created proper exception hierarchy in utils/exceptions.py
Fixed circular imports in utils/init.py
Ensured consistent exception imports across all files
Properly aliased FFmpeg exceptions to avoid naming conflicts
Import Fixes:

Updated processor.py to use VerificationError from ffmpeg.exceptions
Fixed video_downloader.py to use correct exception imports
Created root exceptions.py for better organization
Ensured consistent exception usage across the codebase
Error Handling:

Improved error propagation through the system
Better error messages for different failure types
Enhanced cleanup on errors
More detailed logging of error conditions
FFmpeg Integration:

Fixed FFmpeg binary verification
Better error handling for FFmpeg operations
Improved cleanup of failed operations
Enhanced logging of FFmpeg-related errors
2024-11-15 04:39:58 +00:00
pacnpal
e4429a9d9e Fixed Exception Structure:
Added FileCleanupError to utils/exceptions.py
Created root exceptions.py for better organization
Fixed circular imports in utils/init.py
Updated imports in video_archiver.py and update_checker.py
Fixed FFmpeg Management:

Updated extraction logic for BtbN's new archive structure
Added fallback for backward compatibility
Better binary verification and permissions handling
Improved Error Handling:

Proper exception hierarchy
Better error propagation
More detailed error messages
Enhanced cleanup on errors
2024-11-15 04:34:35 +00:00
pacnpal
767f1140d1 Fixed FFmpeg Management:
Updated extraction logic to handle BtbN's new archive structure with binaries in bin directory
Added fallback to old structure for backward compatibility
Improved binary verification and permissions handling
Enhanced error handling during extraction and verification
Fixed Exception Handling:

Added missing FileCleanupError exception
Updated file operations to use proper exceptions
Improved error propagation and logging
Better cleanup error handling
Improved Resource Management:

Better cleanup of failed downloads
Proper handling of temporary files
Enhanced queue management
Improved file deletion with retries
Enhanced Error Reporting:

More detailed error messages
Better logging of cleanup operations
Proper error propagation through the system
Improved user feedback
The system now:

Properly handles FFmpeg's new archive structure
Better manages file operations and cleanup
Provides more detailed error messages
Cleans up resources properly
Shows appropriate error messages for different failure types
2024-11-15 04:30:03 +00:00
pacnpal
9824469984 FFmpeg Management:
Updated extraction logic to handle BtbN's new archive structure with binaries in the bin directory
Added fallback to old structure for backward compatibility
Improved binary verification and permissions handling
Enhanced error handling during extraction and verification
Error Handling:

Added specific exception types for different errors
Better error propagation through the system
Improved error logging and user feedback
Enhanced cleanup on errors
Resource Management:

Better cleanup of failed downloads
Proper handling of temporary files
Enhanced queue management
Improved file deletion with retries
Verification:

FFmpeg binary verification with version checks
Video file integrity verification
Compression result verification
Archive structure verification
The system now:

Properly handles FFmpeg's new archive structure
Better manages binary downloads and verification
Provides more detailed error messages
Cleans up resources properly
Shows appropriate reactions for different error types
2024-11-15 04:20:17 +00:00
pacnpal
c144fb35ba The video downloading issues have been resolved by implementing comprehensive error handling and resource management:
FFmpeg is now properly managed:

Binaries are downloaded and verified on startup
Permissions are properly set
Hardware acceleration is detected and used when available
Resources are cleaned up properly
Error handling has been improved:

Specific exception types for different errors
Better error messages and logging
Appropriate reaction indicators
Enhanced component error handling
Resource management has been enhanced:

Failed downloads are tracked and cleaned up
Temporary files are handled properly
Queue management is more robust
Concurrent downloads are better managed
Verification has been strengthened:

FFmpeg binaries are verified
Video files are validated
Compression results are checked
Component initialization is verified
2024-11-15 04:18:57 +00:00
pacnpal
02966f1a66 Fixed FFmpeg/FFprobe Integration:
Added proper ffprobe binary download alongside FFmpeg
Added proper path handling for both binaries
Added verification of both binaries
Fixed FFmpeg compression by using subprocess directly instead of ffmpeg-python
Improved URL Detection:

Switched from regex patterns to yt-dlp simulation for URL detection
Added better error handling for URL checking
Added detailed logging of URL detection results
Reduced Logging Noise:

Only log when a message contains a video URL
Only log URL check errors for actual URLs (containing http://, https://, or www.)
Removed unnecessary debug logging
2024-11-15 03:54:42 +00:00
pacnpal
46af1a31b7 Enhanced FFmpeg Integration:
Added robust error handling and logging
Improved binary verification and initialization
Added proper GPU detection and hardware acceleration
Optimized encoding parameters for different content types
Improved File Operations:

Added retry mechanisms for file operations
Enhanced temporary directory management
Improved cleanup of failed downloads
Added proper permission handling
Enhanced Queue Management:

Fixed queue manager initialization
Added better error recovery
Improved status tracking and logging
Enhanced cleanup of failed items
Better Error Handling:

Added comprehensive exception hierarchy
Improved error logging and reporting
Added fallback mechanisms for failures
Enhanced error recovery strategies
2024-11-15 03:48:56 +00:00
pacnpal
3e50faec75 Switching from regex patterns to yt-dlp simulation for URL detection:
Removed the regex-based URL detection
Added proper yt-dlp simulation to check if URLs are supported
Added better error handling for URL checking
Added detailed logging of URL detection results
Improving FFmpeg integration:

Added proper ffprobe binary download alongside FFmpeg
Added better verification of both binaries
Added retry mechanisms for binary downloads
Added proper cleanup of failed downloads
Enhancing error handling and logging:

Added detailed logging throughout the system
Added better error recovery mechanisms
Added proper cleanup of temporary files
Added better tracking of failed operations
2024-11-15 03:40:53 +00:00
pacnpal
8503fc6fdd Enhanced FFmpeg Integration:
Added robust error handling and logging
Improved binary verification and initialization
Added proper GPU detection and hardware acceleration
Optimized encoding parameters for different content types
Improved File Operations:

Added retry mechanisms for file operations
Enhanced temporary directory management
Improved cleanup of failed downloads
Added proper permission handling
Enhanced Queue Management:

Fixed queue manager initialization
Added better error recovery
Improved status tracking and logging
Enhanced cleanup of failed items
Better Error Handling:

Added comprehensive exception hierarchy
Improved error logging and reporting
Added fallback mechanisms for failures
Enhanced error recovery strategies
2024-11-15 03:21:25 +00:00
pacnpal
a04c576e0a logging 2024-11-15 02:59:16 +00:00
pacnpal
5a356f4824 logging 2024-11-15 02:54:09 +00:00
pacnpal
f943503f54 logging 2024-11-15 02:51:20 +00:00
pacnpal
8fcdec7550 lol 2024-11-15 02:48:05 +00:00
pacnpal
6f0f31944f enhanced 2024-11-15 02:38:22 +00:00
pacnpal
49c844a422 changes config settings for defaults 2024-11-15 02:26:51 +00:00
pacnpal
a72e4118e3 l 2024-11-15 02:22:29 +00:00
pacnpal
403b208abd what 2024-11-15 02:18:49 +00:00
pacnpal
a16b1ea7a4 fix: Change URL extraction in processor to use regex
- Replaced extractor.suitable() with direct regex pattern matching
- Added check for _VALID_URL attribute
- Improved error handling in URL extraction
- Maintains compatibility with video_downloader.py changes
2024-11-15 02:13:37 +00:00
pacnpal
1b64991041 fix: Change URL extraction in processor to use regex
- Replaced extractor.suitable() with direct regex pattern matching
- Added check for _VALID_URL attribute
- Improved error handling in URL extraction
- Maintains compatibility with video_downloader.py changes
2024-11-15 02:03:23 +00:00
pacnpal
0a46cee479 fix: Change URL validation to use regex patterns
- Replaced extractor.suitable() with direct regex pattern matching
- Store both pattern and site name for better debugging
- Added debug logging for URL matching
- Improved error handling
2024-11-15 01:59:03 +00:00
pacnpal
63664e3c94 fix: URL extraction error in is_supported_url method
- Fixed 'str' object has no attribute 'suitable' error
- Now properly instantiating extractors before calling suitable()
- Improved error handling in URL validation
2024-11-15 01:50:19 +00:00
pacnpal
7e4b33dd55 refactor: Convert commands to unique hybrid commands
- Reorganized commands into logical groups with unique prefixes:
  - va_: Core video archiver commands
  - vaq_: Queue management commands
  - vac_: Channel configuration commands
  - var_: Role management commands
  - vas_: Site management commands
- Updated all commands to be hybrid commands
- Updated README to reflect new command structure
- Maintained all existing functionality and parameters
2024-11-15 01:47:57 +00:00
pacnpal
8822c85b6f Add context menu command for birthday role assignment. Users with allowed roles can now give birthday roles via right-click menu. 2024-11-15 01:36:19 +00:00
pacnpal
826f5e1b3e Improved FFmpeg downloader error handling and permissions 2024-11-15 01:31:37 +00:00
pacnpal
dccd16e776 Update READMEs 2024-11-15 01:28:06 +00:00
pacnpal
190e689919 Changed FFmpeg binary download location from /tmp/ffmpeg to videoarchiver/bin for better organization and persistence 2024-11-15 01:26:58 +00:00
pacnpal
9be8842b36 Add context menu command for birthday role assignment. Users with allowed roles can now give birthday roles via right-click menu. 2024-11-15 01:22:10 +00:00
pacnpal
e133fc6366 refactor: Convert all cogs to use hybrid commands - Update birthday cog to use hybrid commands - Update overseerr cog to use hybrid commands - Update videoarchiver to use hybrid command group 2024-11-15 01:19:03 +00:00
pacnpal
f5a76bbd11 refactor: Break out commands in all cogs - Convert birthday cog to use separate slash commands - Convert overseerr cog to use separate slash commands - Update interaction handling 2024-11-15 01:15:58 +00:00
pacnpal
0f4fa8472e refactor: Break out commands into separate slash commands - Remove videoarchiver command group - Convert all commands to top-level slash commands - Update interaction handling 2024-11-15 01:13:33 +00:00
pacnpal
ebae02b83b fix: Add missing checks import from redbot.core 2024-11-15 01:08:39 +00:00
pacnpal
8013be2a66 fix: Add error handling to all cogs' initialization - Add proper logging - Add teardown functions - Add cleanup on failure 2024-11-15 01:04:53 +00:00
pacnpal
484b0c0cb8 fix: Add robust error handling for cog loading - Add initialization timeout - Add proper cleanup on failure - Add teardown function - Add proper logging - Add proper cog removal order 2024-11-15 01:04:25 +00:00
pacnpal
888ed27d17 fix: Improve cog loading order - Load main cog first - Wait for initialization - Load commands after successful init 2024-11-15 01:03:53 +00:00
pacnpal
0df5c879bb fix: Improve VideoArchiver cog structure - Remove command registration (handled by commands.py) - Ensure data directories exist - Add better initialization and cleanup - Improve error handling 2024-11-15 01:03:30 +00:00
pacnpal
c2f5a6b461 fix: Improve cog initialization and cleanup - Ensure proper component initialization - Add better error handling - Improve cleanup process 2024-11-15 01:01:48 +00:00
pacnpal
28e5736495 fix: Improve hybrid command implementation - Add consistent app_commands.guild_only() - Add proper parameter descriptions - Use app_commands.Range for numeric inputs 2024-11-15 01:00:25 +00:00
pacnpal
533afd61ed fix: Simplify cog initialization - Let Red handle command syncing - Remove manual sync operations - Clean up __init__.py files 2024-11-15 00:59:00 +00:00
pacnpal
3b563c45b5 fix: Add proper command registration and cleanup to all cogs - Add command syncing after cog load - Add teardown functions - Add error handling for sync operations 2024-11-15 00:58:05 +00:00
pacnpal
770e74d63c fix: Improve command registration and cleanup - Add proper command syncing - Add teardown function - Add error handling for sync operations 2024-11-15 00:57:24 +00:00
pacnpal
13be8d75de fix: Ensure data directory exists for queue persistence 2024-11-15 00:56:56 +00:00