mirror of
https://github.com/pacnpal/Pac-cogs.git
synced 2025-12-22 03:41:06 -05:00
- Add automatic yt-dlp version checking - Add updateytdlp command for bot owners to update yt-dlp - Add toggleupdates command to disable update notifications per guild - Add disable_update_check setting to guild config - Update README with new features and commands - Improve update-related documentation
188 lines
5.7 KiB
Markdown
188 lines
5.7 KiB
Markdown
# VideoArchiver Cog for Red-DiscordBot
|
|
|
|
A powerful video archiving cog that automatically downloads and reposts videos from monitored channels, with support for GPU-accelerated compression, multi-video processing, and role-based permissions.
|
|
|
|
## Features
|
|
|
|
- **Hardware-Accelerated Video Processing**:
|
|
- NVIDIA GPU support using NVENC
|
|
- AMD GPU support using AMF
|
|
- Intel GPU support using QuickSync
|
|
- ARM64/aarch64 support with V4L2 M2M encoder
|
|
- Multi-core CPU optimization
|
|
- **Smart Video Processing**:
|
|
- Intelligent quality preservation
|
|
- Only compresses when needed
|
|
- Concurrent video processing
|
|
- Default 8MB file size limit
|
|
- **Role-Based Access**:
|
|
- Restrict archiving to specific roles
|
|
- Default allows all users
|
|
- Per-guild role configuration
|
|
- **Wide Platform Support**:
|
|
- Support for multiple video platforms via [yt-dlp](https://github.com/yt-dlp/yt-dlp)
|
|
- Configurable site whitelist
|
|
- Automatic quality selection
|
|
- **Automatic Updates**:
|
|
- Automatic yt-dlp update checking
|
|
- Bot owner notifications for new versions
|
|
- Easy update command
|
|
- Configurable update notifications
|
|
|
|
## Installation
|
|
|
|
To install this cog, follow these steps:
|
|
|
|
1. Ensure you have Red-DiscordBot V3 installed.
|
|
2. Add the repository to your bot:
|
|
|
|
```
|
|
[p]repo add Pac-cogs https://github.com/pacnpal/Pac-cogs
|
|
```
|
|
|
|
3. Install the VideoArchiver cog:
|
|
|
|
```
|
|
[p]cog install Pac-cogs videoarchiver
|
|
```
|
|
|
|
4. Load the cog:
|
|
|
|
```
|
|
[p]load videoarchiver
|
|
```
|
|
|
|
Replace `[p]` with your bot's prefix.
|
|
|
|
The required dependencies (yt-dlp, ffmpeg-python, requests) will be installed automatically. You will also need FFmpeg installed on your system - the cog will attempt to download and manage FFmpeg automatically if it's not found.
|
|
|
|
### Important: Keeping yt-dlp Updated
|
|
|
|
The cog relies on [yt-dlp](https://github.com/yt-dlp/yt-dlp) for video downloading. Video platforms frequently update their sites, which may break video downloading if yt-dlp is outdated. The cog will automatically check for updates and notify the bot owner when a new version is available.
|
|
|
|
To update yt-dlp:
|
|
```bash
|
|
[p]videoarchiver updateytdlp
|
|
```
|
|
|
|
You can also disable update notifications per guild:
|
|
```bash
|
|
[p]videoarchiver toggleupdates
|
|
```
|
|
|
|
## Configuration
|
|
|
|
The cog supports both slash commands and traditional prefix commands. Use whichever style you prefer.
|
|
|
|
### Channel Setup
|
|
```
|
|
/videoarchiver setchannel #archive-channel # Set archive channel
|
|
/videoarchiver setnotification #notify-channel # Set notification channel
|
|
/videoarchiver setlogchannel #log-channel # Set log channel for errors/notifications
|
|
/videoarchiver addmonitor #videos-channel # Add channel to monitor
|
|
/videoarchiver removemonitor #channel # Remove monitored channel
|
|
|
|
# Legacy commands also supported:
|
|
[p]videoarchiver setchannel #channel
|
|
[p]videoarchiver setnotification #channel
|
|
etc.
|
|
```
|
|
|
|
### Role Management
|
|
```
|
|
/videoarchiver addrole @role # Add role that can trigger archiving
|
|
/videoarchiver removerole @role # Remove role from allowed list
|
|
/videoarchiver listroles # List all allowed roles (empty = all allowed)
|
|
```
|
|
|
|
### Video Settings
|
|
```
|
|
/videoarchiver setformat mp4 # Set video format
|
|
/videoarchiver setquality 1080 # Set max quality (pixels)
|
|
/videoarchiver setmaxsize 8 # Set max size (MB, default 8MB)
|
|
/videoarchiver toggledelete # Toggle file cleanup
|
|
```
|
|
|
|
### Message Settings
|
|
```
|
|
/videoarchiver setduration 24 # Set message duration (hours)
|
|
/videoarchiver settemplate "Archived video from {author}\nOriginal: {original_message}"
|
|
/videoarchiver enablesites # Configure allowed sites
|
|
```
|
|
|
|
### Update Settings
|
|
```
|
|
/videoarchiver updateytdlp # Update yt-dlp to latest version
|
|
/videoarchiver toggleupdates # Toggle update notifications
|
|
```
|
|
|
|
## Architecture Support
|
|
|
|
The cog supports multiple architectures:
|
|
- x86_64/amd64
|
|
- ARM64/aarch64
|
|
- ARMv7 (32-bit)
|
|
- Apple Silicon (M1/M2)
|
|
|
|
Hardware acceleration is automatically configured based on your system:
|
|
- x86_64: Full GPU support (NVIDIA, AMD, Intel)
|
|
- ARM64: V4L2 M2M hardware encoding when available
|
|
- All platforms: Multi-core CPU optimization
|
|
|
|
## Troubleshooting
|
|
|
|
1. **Permission Issues**:
|
|
- Bot needs "Manage Messages" permission
|
|
- Bot needs "Attach Files" permission
|
|
- Bot needs "Read Message History" permission
|
|
- Bot needs "Use Application Commands" for slash commands
|
|
|
|
2. **Video Processing Issues**:
|
|
- Ensure FFmpeg is properly installed
|
|
- Check GPU drivers are up to date
|
|
- Verify file permissions in the downloads directory
|
|
- Update yt-dlp if videos fail to download
|
|
|
|
3. **Role Issues**:
|
|
- Verify role hierarchy (bot's role must be higher than managed roles)
|
|
- Check if roles are properly configured
|
|
|
|
4. **Performance Issues**:
|
|
- Check available disk space
|
|
- Monitor system resource usage
|
|
|
|
## Support
|
|
|
|
For support:
|
|
1. First, check the [Troubleshooting](#troubleshooting) section above
|
|
2. Update yt-dlp to the latest version:
|
|
```bash
|
|
[p]videoarchiver updateytdlp
|
|
```
|
|
3. If the issue persists after updating yt-dlp:
|
|
- Join the Red-DiscordBot server and ask in the #support channel
|
|
- Open an issue on GitHub with:
|
|
- Your Red-Bot version
|
|
- The output of `[p]pipinstall list`
|
|
- Steps to reproduce the issue
|
|
- Any error messages
|
|
|
|
## Contributing
|
|
|
|
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
|
|
Before submitting an issue:
|
|
1. Update yt-dlp to the latest version first:
|
|
```bash
|
|
[p]videoarchiver updateytdlp
|
|
```
|
|
2. If the issue persists after updating yt-dlp, please include:
|
|
- Your Red-Bot version
|
|
- The output of `[p]pipinstall list`
|
|
- Steps to reproduce the issue
|
|
- Any error messages
|
|
|
|
## License
|
|
|
|
This cog is licensed under the MIT License - see the [LICENSE](../LICENSE) file for details.
|