Skip to content

MeridianGH/Kalliope

Repository files navigation

logo

Dashboard Discord License

Kalliope.

A Discord music bot that still supports most platforms.


Table of Contents

Disclaimer

The bot is still in development, so expect some bugs or features that might not work 100% yet. Please report any bugs you encounter by opening an issue.

Features

  • Kalliope still offers full support for almost every platform you can imagine:

    • YouTube, Spotify, Twitch and many others!
    • It also supports playlists, livestreams and HTTP sources.
    • Spotify queries will be resolved on YouTube.
  • High quality

    • Kalliope is using the well established Lavalink library.
    • It allows for high quality playback by hosting its own audio server and streaming directly to Discord.
  • YouTube Search

    • Search up to five songs from YouTube and play one directly from Discord, without ever opening a browser!
    • Playing music in your channel was never this easy.
  • Dashboard

    • Use the web dashboard to control your bot without having to type out commands ever again.
    • You can even use your keyboard's built-in music buttons to skip songs and pause or resume playback.
  • Genius Lyrics

    • Kalliope supports Genius Lyrics!
    • Quite literally actually, because they are directly accessible in Discord itself via a command.

Commands

Kalliope uses slash commands to integrate itself into the server. You can easily access the commands directly by typing / in your chat window.

Show all commands
Command Description
/clear Clears the queue.
/filter Sets filter modes for the player.
/lyrics Shows the lyrics of the currently playing song.
/nowplaying Shows the currently playing song.
/pause Pauses playback.
/play Searches and plays a song or playlist from YouTube or Spotify.
/previous Plays the previous track.
/queue Displays the queue.
/remove Removes the specified track from the queue.
/repeat Sets the current repeat mode.
/resume Resumes playback.
/search Searches five songs from YouTube and lets you select one to play.
/seek Skips to the specified point in the current track.
/shuffle Shuffles the queue.
/skip Skips the current track or to a specified point in the queue.
/stop Stops playback.
/volume Sets the volume of the music player.

Installation

Prerequisites

Install the latest version available.


Getting started

Download and install the latest version of Kalliope using git:

git clone https://github.com/MeridianGH/kalliope.git
cd kalliope
npm install

Alternatively use GitHub Desktop or download as .zip.


Configuration

Rename or copy .env.example to .env and replace the placeholders inside with your info:

  • A Discord Bot Token (Guide)
  • Your Application ID found in the General Information tab in your Discord application.
  • Create a Genius API application here, generate an access token and paste it in the config.

Run npm run deploy once to synchronize the commands with Discord.
You only need to run this during the initial setup or when you install a new update that changes some commands.


Advanced: Guild Commands

If only want to deploy the commands as guild commands (i.e. to test command changes), run this command instead:

npm run deploy -- guild [guildId]

Use the following command to clear all global commands or only guild commands, if you provide a guild ID:

npm run deploy -- clear [guildId]


Optional: Lavalink

Install the latest version of Java available.

Make sure Java is installed properly by running java --version in your terminal. If it displays the correct version, you are good to go!

Download the latest version of Lavalink and place the file directly inside the lavalink folder.

If you are experiencing issues with age- or region-restricted videos, get your YouTube keys like described in this Guide.
Once acquired, set these tokens to YOUTUBE_PAPISID and YOUTUBE_PSID in your .env.

Uncomment the localhost node in lavalink.ts to make sure your bot actually connects to your Lavalink instance.
You can use the hosted lavalink in parallel to your local instance as a redundant fallback.



Run

Start the bot using:

node .

Advanced: systemd unit file

When running Kalliope on a Linux server, chances are that you want to run it 24/7.
If so, you'll find a sample systemd unit file in this repository.

This unit file assumes that you created a user kalliope and placed this repository under ~/Kalliope/

Copy this unit file to /etc/systemd/user/ using following command:

sudo cp kalliope.service /etc/systemd/system/

Use the following commands to reload systemd and enable the service:

sudo systemctl daemon-reload
sudo systemctl enable kalliope

Use systemctl start kalliope to start the service and systemctl status kalliope to check its status. To view the logs use journalctl -u kalliope.



Stats

Code

Repo size Version
Top language CodeFactor
Libraries.io discord.js

GitHub

GitHub issues GitHub pull requests
GitHub last commit GitHub commit activity
GitHub Repo stars GitHub watchers


Licensing

Make sure to disclose the source when redistributing any part of the source code in this repository.
For more information, please refer to the license.

License


About

A Discord music bot that still supports most platforms.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published