# VideoArchiver Cog A Red-DiscordBot cog for automatically archiving videos from monitored Discord channels. Supports both traditional prefix commands and Discord slash commands. ## Features - Automatically detects and downloads videos from monitored channels - Supports multiple video hosting platforms through yt-dlp - Enhanced queue system with priority processing and performance metrics - Configurable video quality and format - Role-based access control - Automatic file cleanup - Hardware-accelerated video processing (when available) - Customizable notification messages - Queue persistence across bot restarts - Full slash command support for all commands ## File Structure The cog is organized into several modules for better maintainability: - `video_archiver.py`: Main cog class and entry point - `commands.py`: Discord command handlers - `config_manager.py`: Guild configuration management - `processor.py`: Video processing logic - `enhanced_queue.py`: Advanced queue management system - `update_checker.py`: yt-dlp update management - `utils.py`: Utility functions and classes - `ffmpeg_manager.py`: FFmpeg configuration and hardware acceleration - `exceptions.py`: Custom exception classes ## Installation 1. Install the cog using Red's cog manager: ```bash [p]repo add videoarchiver [p]cog install videoarchiver ``` 2. Load the cog: ```bash [p]load videoarchiver ``` ## Configuration Use the following commands to configure the cog. All commands support both prefix and slash command syntax: ### Channel Settings - Set the archive channel: ``` [p]va setchannel ``` or ``` /va setchannel ``` - Set the notification channel: ``` [p]va setnotification ``` or ``` /va setnotification ``` - Set the log channel: ``` [p]va setlogchannel ``` or ``` /va setlogchannel ``` - Add/remove a monitored channel: ``` [p]va addmonitor [p]va removemonitor ``` or ``` /va addmonitor /va removemonitor ``` ### Role Management - Add/remove allowed roles: ``` [p]va addrole [p]va removerole [p]va listroles ``` or ``` /va addrole /va removerole /va listroles ``` ### Video Settings - Set video format and quality: ``` [p]va setformat [p]va setquality [p]va setmaxsize [p]va setconcurrent ``` or ``` /va setformat /va setquality /va setmaxsize /va setconcurrent ``` ### Message Settings - Configure message handling: ``` [p]va setduration [p]va settemplate