Git Product home page Git Product logo

vocard's Introduction

Discord

Vocard (Discord Music Bot)

Vocard is a simple custom Disocrd Music Bot built with Python & discord.py
Demo: Discord Bot Demo, Dashboard Demo

Host for you?

Patreon

Tutorial

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

Discord Music Bot

Screenshot

Discord Bot

Dashboard

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
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
  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": "?",
    "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
    },
    "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>"
    },
    "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: @@duration@@ | Volume: @@volume@@% {{loop_mode!=Off ?? | Repeat: @@loop_mode@@}}"
                },
                "image": "@@track_thumbnail@@",
                "author": {
                    "name": "Music Controller | @@channel_name@@",
                    "icon_url": "@@bot_icon@@"
                },
                "color": "@@default_embed_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"]
        ]
    },
    "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 activity you can set the activity of the bot. Example Here
  • For bot_access_user you can pass the discord user id. Example: [123456789012345678]
  • For embed_color 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 lyrics_platform you can set lyrics search engine (e.g. A_ZLyrics, Genius)
    NOTE: If you are using Genius as your lyrics search engine, you must install the lyricsgenius module (pip install lyricsgenius)
  • For ipc_server you can set the host, password and enable of the ipc server.
  • 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, ...]
  • For default_controller you can set custom embeds and buttons in controller, Example Here

How to update? (For Windows and Linux)

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

vocard's People

Contributors

chocomeow avatar lqwxx avatar asherlam avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.