# VideoArchiver Cog for Red-DiscordBot A powerful video archiving cog that automatically downloads and reposts videos from monitored channels. Features hardware-accelerated compression, multi-video processing, and support for multiple video platforms. ## Features - **Automatic Video Processing** - Monitors specified channels for videos - Supports multiple video platforms through yt-dlp - Hardware-accelerated compression (NVIDIA, AMD, Intel, ARM) - Configurable video quality and format - Automatic file size optimization for Discord limits - **Enhanced Queue System** - Priority-based processing - Queue persistence across bot restarts - Performance metrics tracking - Automatic cleanup and memory management - Real-time queue status monitoring - Detailed performance analytics - **Channel Management** - Flexible channel monitoring (specific channels or all) - Separate archive, notification, and log channels - Customizable message templates - Configurable message duration - **Access Control** - Role-based permissions - Site-specific enabling/disabling - Admin-only configuration commands ## Installation 1. Install the cog: ```bash [p]repo add Pac-cogs https://github.com/pacnpal/Pac-cogs [p]cog install Pac-cogs videoarchiver ``` 2. Load the cog: ```bash [p]load videoarchiver ``` ## Commands All commands support both prefix (`[p]videoarchiver` or `[p]va`) and slash command (`/videoarchiver`) syntax: ### Core Settings - **`setchannel `**: Set the archive channel - **`setnotification `**: Set the notification channel - **`setlogchannel `**: Set the log channel for errors - **`setformat `**: Set video format - **`setquality <144-4320>`**: Set maximum video quality (in pixels) - **`setmaxsize <1-100>`**: Set maximum file size (in MB) - **`setconcurrent <1-5>`**: Set number of concurrent downloads ### Channel Monitoring - **`addmonitor [channel]`**: Add channel to monitor (empty for all channels) - **`removemonitor `**: Remove channel from monitoring - **`toggledelete`**: Toggle deletion of local files after reposting ### Message Configuration - **`setduration <0-720>`**: Set message duration in hours (0 for permanent) - **`settemplate