The all-in-one Discord bot for AMV editors and content creators.
Download footage, process media, discover assets, and manage your editing community.
Features · Commands · Setup · Architecture · Install
Ryujin is a purpose-built Discord bot for the AMV community: download source material from YouTube/TikTok/Instagram, process audio and video, discover anime sources and fonts, remove backgrounds, chat with an AI editing assistant, and manage your server.
Built with a clean, modular architecture: command cogs, event listeners, and standalone services — easy to modify, extend, and deploy.
Note
Compatibility: Python 3.10+ • nextcord 2.6+ • MySQL • FFmpeg required on host.
| Feature | What it does |
|---|---|
| Media Downloaders | YouTube video (up to 1080p) and audio, TikTok, Instagram — just paste a link. |
| Media Processing | Nightcore, Sped Up, Slowed effects, audio cutting, format conversion, file compression, video resizing. |
| Asset Discovery | Reverse anime search (trace.moe), song identification (Shazam), font recognition (WhatFontIs). |
| Remove Background | One-image background removal via self-hosted API. |
| Ryujin AI | AI editing assistant powered by Groq (Llama 3.3 70B). |
| Resource Library | After Effects presets, project files, scripts, extensions, overlays, SFX, edit audios. |
| Social Tools | Trending feed, hashtag generator, AFK status. |
| Moderation | Purge, slowmode, lock, timeout, kick, ban, softban, warn system. |
| One-Click Setup | /setup — select features, bot creates all channels and configures everything. |
📦 Resources
| Command | Description |
|---|---|
/overlay |
Random edit overlay |
/edit_audio <style> |
Random edit audio per category |
/audios_categories |
List audio categories |
/sfx <category> |
Random SFX |
/sfx_categories |
List SFX categories |
/random_edit |
Random edit link |
/compress_file <file> |
Compress video/image/audio/PDF/archive |
/resize_video <video> <w> <h> |
Resize video with aspect ratio padding |
🎬 After Effects
| Command | Description |
|---|---|
/preset <category> |
Random .ffx preset |
/presets_categories |
List preset categories |
/projects_list |
List project files |
/project_file <number> |
Download AEP + preview |
/scripts_list |
List scripts |
/script <number> |
Download script |
/extensions_list |
List extensions |
/extension <number> |
Download extension |
🎵 Media Processing
| Command | Description |
|---|---|
/nightcore <song> |
Pitch +2 semitones |
/spedup <song> |
Pitch +1 semitone |
/slowed <song> |
Pitch −1 semitone |
/convert <from> <to> <file> |
Convert between 13 formats |
/cut_audio <audio> <start> <end> |
Trim audio |
👥 Social
| Command | Description |
|---|---|
/trending |
Trending anime and songs |
/generatetags |
Hashtag generator modal |
/afk [reason] |
Set AFK status |
/afk_list |
List AFK users |
🛡️ Moderation
| Command | Description |
|---|---|
/purge <count> |
Bulk delete messages |
/slowmode <seconds> / /remove_slowmode |
Channel slowmode |
/lock / /unlock |
Restrict channel |
/timeout <user> <duration> / /remove_timeout <user> |
Timeout user |
/kick <user> <reason> |
Kick with DM |
/ban <user> [duration] [reason] / /unban <user_id> |
Ban/unban |
/softban <user> [reason] |
Ban + instant unban |
/warn <user> <reason> / /warns <user> / /remove_warn <id> <user> |
Warning system |
/managesystem <system> <action> |
Individual system channel config |
ℹ️ Meta
| Command | Description |
|---|---|
/info |
Bot information, bug report link, donation link |
/help |
Full command guide |
/ping / /pong / /latency |
Latency and system stats |
/resources |
Resource counts |
/bot_stats |
Detailed bot statistics |
🔧 Admin (owner/server-owner only)
| Command | Description |
|---|---|
/setup |
One-click multi-feature channel creation |
/disableads |
Toggle promotional messages |
/blacklist |
Global user blacklist |
/apikey |
Manage remove.bg API keys |
/show_guilds |
List all bot guilds |
/add_trending_anime / /add_trending_song / /remove_trending |
Manage trending feed |
One command, no manual channel creation.
| Step | Action |
|---|---|
| 1 | Invite the bot with Manage Channels permission. |
| 2 | Run /setup in any channel. |
| 3 | Select features from the dropdown. |
| 4 | Bot creates a Ryujin category with configured channels. |
Individual channels can be changed or removed later via /managesystem.
System channels (user pastes content, bot processes automatically):
| Channel | What to post |
|---|---|
#youtube-video-dl |
YouTube video links |
#youtube-audio-dl |
YouTube links (audio only) |
#tiktok-dl |
TikTok links |
#instagram-dl |
Instagram post links |
#remove-background |
Images (background removed automatically) |
#anime-search |
Anime screenshots (source identification) |
#song-search |
Audio files or YT/TikTok links (Shazam) |
#font-search |
Font screenshots (font identification) |
#ryujin-ai |
Any message (AI assistant responds) |
Ryujin/
├── ryujin.py # Entry point (~90 lines)
├── cogs/
│ ├── commands/ # 49 command cogs, all extend RyujinCog
│ │ ├── admin/ # Owner-gated management
│ │ ├── mediatools/ # Overlay, audio, SFX, compress, resize
│ │ ├── meta/ # Info, help, ping, bot stats
│ │ ├── moderation/ # Purge, ban, kick, warn, lock, setup
│ │ ├── processing/ # Nightcore, spedup, slowed, convert, cut
│ │ ├── resources/ # AE presets, projects, scripts, extensions
│ │ └── social/ # Trending, hashtags, AFK
│ ├── events/ # 5 on_message listeners
│ │ ├── background.py # Status rotation, guild join/leave
│ │ ├── downloaders.py # YT, TikTok, Instagram handlers
│ │ ├── search.py # Anime, song, font search handlers
│ │ ├── removebg.py # Background removal handler
│ │ └── ai.py # Groq AI chat handler
│ └── utils/ # Shared: base, config, db, embeds, helpers, constants
├── services/ # Standalone, no Discord dependency
│ ├── youtube.py # YT video + audio download
│ ├── tiktok.py # TikTok download
│ ├── instagram.py # Instagram download
│ ├── ai.py # Groq LLM chat completion
│ ├── search.py # trace.moe, Shazam, WhatFontIs
│ ├── remove_bg.py # Background removal API
│ └── media.py # FFmpeg/Pillow: pitch shift, convert, cut, compress, resize
└── data/ # Runtime JSON (auto-initialized)
1. Clone and install dependencies
git clone https://github.com/AniScripts/Ryujin.git
cd Ryujin
pip install -r requirements.txt2. Configure environment
cp .env.example .envFill in your values:
| Variable | Required | Description |
|---|---|---|
RYUJIN_TOKEN |
Yes | Discord bot token |
GROQ_API_KEY |
Yes | Groq API key (for Ryujin AI) |
DB_HOST / DB_USER / DB_PASSWORD / DB_NAME |
Yes | MySQL credentials |
WELCOME_LEAVE_CHANNEL_ID |
No | Channel for join/leave logs |
WHATFONTIS_API_KEY |
No | WhatFontIs API key (for font search) |
REMOVEBG_API_URL |
No | Custom remove-bg API endpoint |
3. Run
python ryujin.pyWarning
Requires FFmpeg installed and available on PATH. Media processing, downloads, and song search depend on it. Optional: Ghostscript for PDF compression, 7-Zip for archive compression.