/Vocard

Vocard is a simple music bot. It leads to a comfortable experience which is user-friendly, It supports Youtube, Soundcloud, Spotify, Twitch and more!

Primary LanguagePythonMIT LicenseMIT

Discord

Vocard (Discord Music Bot)

Vocard is a simple custom Disocrd Music Bot built with Python & discord.py

Tutorial

Click on the image below to watch the tutorial on Youtube.

Discord Music Bot

Screenshot

Run the Projects

Run on Repl.it

Requirements

Quick Start

git clone https://github.com/ChocoMeow/Vocard.git  #Clone the repository
cd Vocard                                          #Go to the directory
python -m pip install -r requirements.txt          #Install required packages

After installing all packages, you must configure the bot before to start! How To Configure
Start your bot with python main.py

Configuration

  1. Rename .env Example to .env and fill all the values
TOKEN = XXXXXXXXXXXXXXXXXXXXXXXX.XXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXX
CLIENT_ID = 123456789012345678
BUG_REPORT_CHANNEL_ID = 123456789012345678

SPOTIFY_CLIENT_ID = 0XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SPOTIFY_CLIENT_SECRET = 0XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

YOUTUBE_API_KEY = AXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

MONGODB_URL = mongodb+srv://user:password@clusterURL
MONGODB_NAME = Vocard
Values Description
TOKEN Your Discord bot token (Discord Portal)
CLIENT_ID Your Discord bot client id (Discord Portal)
BUG_REPORT_CHANNEL_ID All the error messages will send to this text channel (optional)
SPOTIFY_CLIENT_ID Your Spoity client id (Spotify Portal) (optional)
SPOTIFY_CLIENT_SECRET Your Spoity client sercret id (Spotify Portal) (optional)
YOUTUBE_API_KEY Your youtube api key (Google API) (optional)
MONGODB_URL Your Mongo datebase url (Mongodb)
MONGODB_NAME The datebase name that you created on Mongodb
  1. Rename settings Example.json to settings.json and customize your settings (Note: Do not change any keys from settings.json)
{
    "nodes": {
        "DEFAULT": {
            "host": "127.0.0.1",
            "port": 2333,
            "password": "password",
            "secure": false,
            "identifier": "DEFAULT"
        }   
    },
    "prefix": "?",
    "bot_access_user": [],
    "color_code":"0xb3b3b3",
    "default_max_queue": 1000,
    "emoji_source_raw": {
        "youtube": "<:youtube:826661982760992778>",
        "youtube music": "<:youtube:826661982760992778>",
        "spotify": "<:spotify:826661996615172146>",
        "soundcloud": "<:soundcloud:852729280027033632>",
        "twitch": "<:twitch:852729278285086741>",
        "bandcamp": "<:bandcamp:864694003811221526>",
        "vimeo": "<:vimeo:864694001919721473>",
        "apple": "<:applemusic:994844332374884413>",
        "reddit": "<:reddit:996007566863773717>",
        "tiktok": "<:tiktok:996007689798811698>"
    },
    "cooldowns": {
        "connect": [2, 30],
        "playlist view": [1, 30]
    },
    "aliases": {
        "connect": ["join"],
        "leave": ["stop", "bye"],
        "play": ["p"],
        "view": ["v"]
    }
}
  • For nodes you have to provide host, port, password and identifier of the Lavalink Server
  • For prefix you can set the prefix of the bot. (If you don't provide any prefix, the bot will disable the message command).
  • For bot_access_user you can pass the discord user id. Example: [123456789012345678]
  • For color_code you must pass a Hexadecimal color code and add 0x before the color code. Example: "0xb3b3b3"
  • For default_max_queue you can set a default maximum number of tracks that can be added to the queue.
  • For emoji_source_raw you can change the source emoji of the track with discord emoji like <:EMOJI_NAME:EMOJI_ID>
  • For cooldowns you can set a custom cooldown in the command. Example: "command_name": [The total number of tokens available, The length of the cooldown period in seconds]
  • For aliases you can set custom aliases in the command. Example: "command_name": [alias1, alias2, ...]

How to update?

  1. Run python update.py --check to check if your bot is up to date
  2. Run python update.py --start to start update your bot
    Note: Make sure there are no personal files in the directory! Otherwise it will be deleted.