RAGU2 is a music bot for Discord 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 controlling playback.
RAGU2 uses a plugin system that allows adding new features and capabilities to the bot. Currently, plugins for music platforms available are:
- 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 root of the project and add your Discord token:DISCORD_TOKEN=your_token DATABASE_URL=your_database_url
To run the bot, follow these steps:
-
Fill in the
.env
file# discord DISCORD_TOKEN=your_token # local postgresql database or (https://supabase.com/) DATABASE_URL="" DIRECT_URL="" # yandex_api YM_USER_ID="" # https://mail.yandex.ru/ YM_API_KEY="" # https://oauth.yandex.ru/authorize?response_type=token&client_id=23cabbbdc6cd418abb4b39c32c41195d
For yandex_api:
-
Install dependencies:
pnpm i
-
Generate Prisma:
pnpm prisma:generate
-
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./queue
- Show the current track queue./other
- Show other commands.
config/
- Bot configuration..env
- Environment variables.src/
- Bot source code.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.
Workflow:
- Add localization
- Add proxy
- Add API
- Add "wave" for continuous music playback
Plugins:
- Add plugin for Yandex Music
- Add plugin for YouTube
- Add plugin for SoundCloud
- Add plugin for Apple Music
- Add plugin for Deezer
- Add plugin for Spotify