Parker 382c422629
Overhaul \play\ command
- Split custom sources into helper functions
- Add proper logging and handling
- Fix LoadError embed messsage
2024-11-28 00:04:48 -06:00
2024-07-18 17:36:10 -05:00
2024-11-28 00:04:48 -06:00
2024-06-20 06:15:50 -05:00
2024-06-26 18:56:37 -05:00
2024-03-28 22:53:16 -05:00
2024-10-25 14:48:03 -05:00
2024-07-10 16:37:52 -05:00
2024-03-31 00:11:06 -05:00
2024-03-28 22:53:16 -05:00
2024-11-28 00:04:48 -06:00


Guava Image
Guava

Dead simple Discord music bot
Invite Guava

discord.py Code Style: Black

Overview

Guava is a Discord music bot with support for multiple different music and video streaming platforms. Guava is a part of >200 Discord servers and currently supports these services:

  • Apple Music
  • Spotify
  • SoundCloud
  • Bandcamp
  • Deezer
  • Twitch Streams
  • Vimeo

Getting started is easy, simply invite Guava to your server and run /help to see what all Guava has to offer.

Want to self-host?

Guava is built on Python and requires a Lavalink node running release v4 or higher with the LavaSrc and youtube-source plugins.

If you would like to run your own version of Guava, continue to read the information below.

NOTE: No matter which option you choose (Docker or bare metal) you will get a fatal error on first run due to missing the config.yaml file. A new config.yaml file will be created for you with the necessary fields for configuration. For information on each configuration field, see Configuration.

Docker

To run Guava in Docker, use the provided docker-compose.yaml file as a template for the container.

In addition to the Guava container, you must also create a Lavalink node however you choose (bare metal or docker)

Bare metal

To run Guava on bare metal, follow the steps below.

  1. Install Python 3 and Pip
  2. Clone this repository
  3. Install the requirements with pip install -r requirements.txt
  4. Run the code/bot.py file
  5. Input information into the newly created config.yaml file.
  6. Re-run the code/bot.py file.

Configuration

Field Description Requirement
TOKEN The token for your bot. Create a bot at discord.com/developers REQUIRED
BOT_COLOR HEX CODE: Color that will be used for the color of message embeds REQUIRED
BOT_INVITE_LINK URL: Discord Invite link for your bot (shown on the help command) OPTIONAL - Adds an "Invite Me" button to the /help message
FEEDBACK_CHANNEL_ID CHANNEL ID: Discord channel for feedback messages to be sent to OPTIONAL - Used for feedback messages
BUG_CHANNEL_ID CHANNEL ID: Discord channel for bug messages to be sent to OPTIONAL - Used for bug reporting
YOUTUBE_SUPPORT BOOLEAN: Whether or not YouTube links are supported OPTIONAL
SPOTIFY_CLIENT_ID CLIENT ID: ID from Spotify Developer account OPTIONAL - Used for Spotify support
SPOTIFY_CLIENT_SECRET CLIENT SECRET: Secret string from Spotify Developer account OPTIONAL - Used for Sporify support
GENIUS_CLIENT_ID CLIENT ID: ID from Genius API Dashboard OPTIONAL - Used for the /lyrics command
GENIUS_CLIENT_SECRET CLIENT SECRET: Secret string from Genius API Dashboard OPTIONAL - Used for the /lyrics command
OPENAI_API_KEY API Key from OpenAI for autoplay recommendations OPTIONAL - Used to support the /autoplay feature
HOST Host address for your Lavalink node REQUIRED
PORT Port for your Lavalink node REQUIRED
PASSWORD Password to authenticate into the Lavalink node REQUIRED

Lavalink

For instructions on setting up a Lavalink node on bare metal, look here. Refer to the plugin repositories for support on configuring them.

P.S. Only the Deezer/SoundCloud sources/search providers are needed in the LavaSrc plugin.

After setting up your Lavalink node, it is highly recommended to configure IPv6 rotation with at least a /64 or /48 block. IPv6 rotation helps to relieve issues from getting rate limited/blocked from YouTube and other sources. There are helpful guides for setting this up which are available on GitHub, however, this is the one that I have used .

An example of my personal application.yml configuration file can be found here.


If you have any questions, feel free to email at contact@pkrm.dev. Thank you for checking out Guava, and happy coding.

Description
Dead simple Discord music bot
Readme 924 KiB
Languages
Python 100%