Table of Contents
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.
-
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.
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. |
Install the latest version available.
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.
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.
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
.
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.