Vocard is a simple music bot. It leads to a comfortable experience which is user-friendly, It supports Youtube, Soundcloud, Spotify, Twitch and more!
Vocard is a simple custom Disocrd Music Bot built with Python & discord.py
Demo: Discord Bot Demo, Dashboard Demo
Click on the image below to watch the tutorial on Youtube.
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
.env Example
to .env
and fill all the values
TOKEN = XXXXXXXXXXXXXXXXXXXXXXXX.XXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXX
CLIENT_ID = 123456789012345678
CLIENT_SECRET_ID = XXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXX
SERCET_KEY = DASHBOARD_SERCET_KEY
BUG_REPORT_CHANNEL_ID = 123456789012345678
SPOTIFY_CLIENT_ID = 0XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SPOTIFY_CLIENT_SECRET = 0XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
GENIUS_TOKEN = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
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) |
CLIENT_SECRET_ID | Your Discord bot client secret id (Discord Portal) (optional) |
SERCET_KEY | Secret key for dashboard (optional) |
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) |
GENIUS_TOKEN | Your genius api key (Genius Lyrics API) (optional) |
MONGODB_URL | Your Mongo datebase url (Mongodb) |
MONGODB_NAME | The datebase name that you created on Mongodb |
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": "?",
"activity":[
{"listen": "/help"}
],
"bot_access_user": [],
"embed_color":"0xb3b3b3",
"default_max_queue": 1000,
"lyrics_platform": "A_ZLyrics",
"ipc_server": {
"host": "127.0.0.1",
"port": 8000,
"enable": false
},
"sources_settings": {
"youtube": {
"emoji": "<:youtube:826661982760992778>",
"color": "0xFF0000"
},
"youtube music": {
"emoji": "<:youtube:826661982760992778>",
"color": "0xFF0000"
},
"spotify": {
"emoji": "<:spotify:826661996615172146>",
"color": "0x1DB954"
},
"soundcloud": {
"emoji": "<:soundcloud:852729280027033632>",
"color": "0xFF7700"
},
"twitch": {
"emoji": "<:twitch:852729278285086741>",
"color": "0x9B4AFF"
},
"bandcamp": {
"emoji": "<:bandcamp:864694003811221526>",
"color": "0x6F98A7"
},
"vimeo": {
"emoji": "<:vimeo:864694001919721473>",
"color": "0x1ABCEA"
},
"apple": {
"emoji": "<:applemusic:994844332374884413>",
"color": "0xE298C4"
},
"reddit": {
"emoji": "<:reddit:996007566863773717>",
"color": "0xFF5700"
},
"tiktok": {
"emoji": "<:tiktok:996007689798811698>",
"color": "0x74ECE9"
}
},
"default_controller": {
"embeds": {
"active": {
"description": "**Now Playing: ```[@@track_name@@]```\nLink: [Click Me](@@track_url@@) | Requester: @@requester@@ | DJ: @@dj@@**",
"footer": {
"text": "Queue Length: @@queue_length@@ | Duration: @@track_duration@@ | Volume: @@volume@@% {{loop_mode != 'Off' ?? | Repeat: @@loop_mode@@}}"
},
"image": "@@track_thumbnail@@",
"author": {
"name": "Music Controller | @@channel_name@@",
"icon_url": "@@bot_icon@@"
},
"color": "@@track_color@@"
},
"inactive": {
"header": {
"title": "There are no songs playing right now"
},
"description": "[Support](@@server_invite_link@@) | [Invite](@@invite_link@@) | [Questionnaire](https://forms.gle/Qm8vjBfg2kp13YGD7)",
"image": "https://i.imgur.com/dIFBwU7.png",
"color": "@@default_embed_color@@"
}
},
"default_buttons": [
["back", "resume", "skip", {"stop": "red"}, "add"],
["tracks"]
],
"disableButtonText": false
},
"cooldowns": {
"connect": [2, 30],
"playlist view": [1, 30]
},
"aliases": {
"connect": ["join"],
"leave": ["stop", "bye"],
"play": ["p"],
"view": ["v"]
}
}
nodes
you have to provide host, port, password and identifier of the Lavalink Server
prefix
you can set the prefix of the bot. (If you don't provide any prefix, the bot will disable the message command).activity
you can set the activity of the bot. Example Here
bot_access_user
you can pass the discord user id. Example: [123456789012345678]
embed_color
you must pass a Hexadecimal color code and add 0x
before the color code. Example: "0xb3b3b3"
default_max_queue
you can set a default maximum number of tracks that can be added to the queue.lyrics_platform
you can set lyrics search engine (e.g. A_ZLyrics
, Genius
, lyrist
)pip install lyricsgenius
)
ipc_server
you can set the host, password and enable of the ipc server.emoji_source_raw
you can change the source emoji of the track with discord emoji like <:EMOJI_NAME:EMOJI_ID>
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]
aliases
you can set custom aliases in the command. Example: "command_name": [alias1, alias2, ...]
default_controller
you can set custom embeds and buttons in controller, Example Here
Note: Make sure there are no personal files in the directory! Otherwise it will be deleted.
# Check the current version
python update.py -c
# Install the latest version
python update.py -l
# Install the specified version
python update.py -v VERSION
# Install the beta version
python update.py -b