RAGU2 is a Discord music bot that allows users to play, pause, and manage music tracks in voice channels. The bot supports integration with Yandex Music and provides various commands for playback control.
RAGU2 uses a plugin system that allows adding new features and capabilities to the bot. Currently, the following music platform plugins are available:
- Yandex Music
-
Clone the repository:
git clone https://github.com/dirold2/ragu2.git cd ragu2
-
Install dependencies:
npm install
-
Create a
.env
file in the project root and add your Discord token:# discord_token DISCORD_TOKEN="" #https://discord.com/developers/applications # bot locale BOT_LOCALE="" # default en # ffprobe path FFPROBE_PATH="" # yandex_api YM_USER_ID="" # https://mail.yandex.ru/ YM_API_KEY="" # https://oauth.yandex.ru/authorize?response_type=token&client_id=23cabbbdc6cd418abb4b39c32c41195d
To launch the bot, follow these steps:
-
Build the project:
pnpm build
-
Start the bot:
pnpm start
For development:
pnpm dev
The bot supports the following commands:
/play <track_name>
- Play a track./pause
- Pause playback./skip
- Skip the current track./volume <level>
- Set the volume level./shuffle
- Shuffle the queue./wave
- Enable "My Wave" based on the last track./queue
- Show the current track queue./other
- Show other commands.
.env
- Environment variables.src/
- Bot source code.src/config/
- Bot configuration.src/commands/
- Bot commands.src/services/
- Services for managing bot logic.src/utils/
- Utilities and helper functions.src/locales/
- Localization files for multilingual support.src/types/
- Data types.src/interfaces/
- Interfaces.
Work in progress:
- Add localization
- Add "wave" for continuous music playback
- Replacing node-cache with lru-cache
- Solving the bug with an empty track on the side of the Yandex Music plugin
- Fix memory (Max 270MB)
Plugins:
- Add Yandex Music plugin
- Add YouTube plugin
- Add SoundCloud plugin
- Add Apple Music plugin
- Add Deezer plugin
- Add Spotify plugin