{"id":20048322,"url":"https://github.com/meridiangh/kalliope","last_synced_at":"2025-10-13T00:48:57.215Z","repository":{"id":212435914,"uuid":"556876246","full_name":"MeridianGH/kalliope","owner":"MeridianGH","description":"A Discord music bot that still supports most platforms.","archived":false,"fork":false,"pushed_at":"2025-02-11T23:53:01.000Z","size":116538,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-05T10:40:46.774Z","etag":null,"topics":["discord","discord-bot","discordjs","music-bot"],"latest_commit_sha":null,"homepage":"https://kalliope.cc","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MeridianGH.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-10-24T17:25:14.000Z","updated_at":"2025-02-11T23:55:09.000Z","dependencies_parsed_at":"2024-04-15T07:12:25.458Z","dependency_job_id":null,"html_url":"https://github.com/MeridianGH/kalliope","commit_stats":null,"previous_names":["meridiangh/kalliope"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/MeridianGH/kalliope","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeridianGH%2Fkalliope","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeridianGH%2Fkalliope/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeridianGH%2Fkalliope/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeridianGH%2Fkalliope/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MeridianGH","download_url":"https://codeload.github.com/MeridianGH/kalliope/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeridianGH%2Fkalliope/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279013643,"owners_count":26085298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["discord","discord-bot","discordjs","music-bot"],"created_at":"2024-11-13T11:42:52.348Z","updated_at":"2025-10-13T00:48:57.170Z","avatar_url":"https://github.com/MeridianGH.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--suppress HtmlDeprecatedAttribute --\u003e\n\n![logo](https://repository-images.githubusercontent.com/556876246/21bb7e66-4998-42b0-9d6f-651727daffda)\n\n\u003cdiv align=\"center\"\u003e\n\n[![Dashboard](https://img.shields.io/static/v1?style=for-the-badge\u0026logo=google%20chrome\u0026label=Dashboard\u0026message=kalliope.cc\u0026color=121212)](https://kalliope.cc)\n[![Discord](https://shields.io/discord/610498937874546699?style=for-the-badge\u0026logo=discord\u0026label=discord)](https://discord.gg/qX2CBrrUpf)\n[![License](https://img.shields.io/github/license/MeridianGH/Kalliope?logo=gnu\u0026style=for-the-badge)](https://github.com/MeridianGH/Kalliope/blob/main/LICENSE.md)\n\n# Kalliope.\n\n\u003cb\u003eA Discord music bot that still supports most platforms.\u003c/b\u003e\n\n\u003c/div\u003e\n\u003cbr\u003e\n\n\u003cdetails\u003e\n\u003csummary style=\"cursor: pointer\"\u003e\u003cb\u003eTable of Contents\u003c/b\u003e\u003c/summary\u003e\n\n- [Features](#features)\n- [Commands](#commands)\n- [Installation](#installation)\n  - [Prerequisites](#prerequisites)\n  - [Getting started](#getting-started)\n  - [Configuration](#configuration)\n  - [Run](#run)\n- [Stats](#stats)\n  - [Code](#code)\n  - [GitHub](#github)\n- [Licensing](#licensing)\n\n\u003c/details\u003e\n\n---\n\n## Disclaimer\n\u003e 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.\n\n\n## Features\n- Kalliope still offers full support for almost every platform you can imagine:\n  - YouTube, Spotify, Twitch and many others!\n  - It also supports playlists, livestreams and HTTP sources.\n  - Spotify queries will be resolved on YouTube.\n\n- High quality\n  - Kalliope is using the well established **[Lavalink](https://github.com/freyacodes/Lavalink)** library.\n  - It allows for high quality playback by hosting its own audio server and streaming directly to Discord.\n\n\n- YouTube Search\n  - Search up to five songs from YouTube and play one directly from Discord, without ever opening a browser!\n  - Playing music in your channel was never this easy.\n\n\n- Dashboard\n  - Use the web dashboard to control your bot without having to type out commands ever again.\n  - You can even use your keyboard's built-in music buttons to skip songs and pause or resume playback.\n\n\n- Genius Lyrics\n  - Kalliope supports Genius Lyrics!\n  - Quite literally actually, because they are directly accessible in Discord itself via a command.\n\n\n## Commands\nKalliope uses slash commands to integrate itself into the server. You can easily access the commands directly by typing `/` in your chat window.\n\n\u003cdetails\u003e\n\u003csummary style=\"cursor: pointer\"\u003e\u003cb\u003eShow all commands\u003c/b\u003e\u003c/summary\u003e\n\n| Command     | Description                                                       |\n|-------------|-------------------------------------------------------------------|\n| /clear      | Clears the queue.                                                 |\n| /filter     | Sets filter modes for the player.                                 |\n| /lyrics     | Shows the lyrics of the currently playing song.                   |\n| /nowplaying | Shows the currently playing song.                                 |\n| /pause      | Pauses playback.                                                  |\n| /play       | Searches and plays a song or playlist from YouTube or Spotify.    |\n| /previous   | Plays the previous track.                                         |\n| /queue      | Displays the queue.                                               |\n| /remove     | Removes the specified track from the queue.                       |\n| /repeat     | Sets the current repeat mode.                                     |\n| /resume     | Resumes playback.                                                 |\n| /search     | Searches five songs from YouTube and lets you select one to play. |\n| /seek       | Skips to the specified point in the current track.                |\n| /shuffle    | Shuffles the queue.                                               |\n| /skip       | Skips the current track or to a specified point in the queue.     |\n| /stop       | Stops playback.                                                   |\n| /volume     | Sets the volume of the music player.                              |\n\u003c/details\u003e\n\n## Installation\n\n### Prerequisites\n- **[Node.js](https://nodejs.org/en/download/)**\n\nInstall the latest version available.\n\n\u003cbr\u003e\n\n### Getting started\n\nDownload and install the latest version of Kalliope using git:\n```shell\ngit clone https://github.com/MeridianGH/kalliope.git\ncd kalliope\nnpm install\n```\n\nAlternatively use **[GitHub Desktop](https://desktop.github.com/)** or download as **[.zip](https://github.com/MeridianGH/Kalliope/archive/refs/heads/main.zip)**.\n\n\u003cbr\u003e\n\n### Configuration\nRename or copy `.env.example` to `.env` and replace the placeholders inside with your info:\n- A Discord Bot Token (**[Guide](https://discordjs.guide/preparations/setting-up-a-bot-application.html#creating-your-bot)**)\n- Your Application ID found in the `General Information` tab in your Discord application.\n- Create a Genius API application **[here](https://docs.genius.com/)**, generate an access token and paste it in the config.\n\nRun `npm run deploy` _**once**_ to synchronize the commands with Discord.\\\nYou only need to run this during the initial setup or when you install a new update that changes some commands.\n\n\u003cbr\u003e\n\n\u003cdetails\u003e\n\u003csummary style=\"cursor: pointer\"\u003e\u003cb\u003eAdvanced: Guild Commands\u003c/b\u003e\u003c/summary\u003e\n\nIf only want to deploy the commands as guild commands (i.e. to test command changes), run this command instead:\n```\nnpm run deploy -- guild [guildId]\n```\n\nUse the following command to clear all global commands or only guild commands, if you provide a guild ID:\n```\nnpm run deploy -- clear [guildId]\n```\n\n---\n\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n\u003cdetails\u003e\n\u003csummary style=\"cursor: pointer\"\u003e\u003cb\u003eOptional: Lavalink\u003c/b\u003e\u003c/summary\u003e\n\nInstall the latest version of **[Java](https://www.oracle.com/java/technologies/downloads/)** available.\n\nMake sure Java is installed properly by running `java --version` in your terminal. If it displays the correct version, you are good to go!\n\nDownload the latest version of **[Lavalink](https://github.com/lavalink-devs/Lavalink/releases)** and place the file directly inside the `lavalink` folder.\n\nIf you are experiencing issues with age- or region-restricted videos, get your YouTube keys like described in this **[Guide](https://github.com/Walkyst/lavaplayer-fork/issues/18)**.\\\nOnce acquired, set these tokens to `YOUTUBE_PAPISID` and `YOUTUBE_PSID` in your `.env`.\n\nUncomment the `localhost` node in `lavalink.ts` to make sure your bot actually connects to your Lavalink instance.\\\nYou can use the hosted lavalink in parallel to your local instance as a redundant fallback.\n\n---\n\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n### Run\nStart the bot using:\n```shell\nnode .\n```\n\n\u003cbr\u003e\n\n\u003cdetails\u003e\n\u003csummary style=\"cursor: pointer\"\u003e\u003cb\u003eAdvanced: systemd unit file\u003c/b\u003e\u003c/summary\u003e\n\nWhen running Kalliope on a Linux server, chances are that you want to run it 24/7.\\\nIf so, you'll find a sample systemd unit file in this repository.\n\nThis unit file assumes that you created a user `kalliope` and placed this repository under `~/Kalliope/`\n\nCopy this unit file to `/etc/systemd/user/` using following command:\n```shell\nsudo cp kalliope.service /etc/systemd/system/\n```\n\nUse the following commands to reload systemd and enable the service:\n```shell\nsudo systemctl daemon-reload\n```\n```shell\nsudo systemctl enable kalliope\n```\n\nUse `systemctl start kalliope` to start the service and `systemctl status kalliope` to check its status.\nTo view the logs use `journalctl -u kalliope`.\n\n---\n\n\u003c/details\u003e\n\n---\n\n## Stats\n\n### Code\n![Repo size](https://img.shields.io/github/repo-size/MeridianGH/Kalliope?style=for-the-badge)\n[![Version](https://img.shields.io/github/package-json/v/MeridianGH/Kalliope?style=for-the-badge)](https://github.com/MeridianGH/Kalliope/blob/main/package.json#L2)\n\\\n[![Top language](https://img.shields.io/github/languages/top/MeridianGH/Kalliope?style=for-the-badge)](https://github.com/MeridianGH/Kalliope/search?l=javascript)\n[![CodeFactor](https://img.shields.io/codefactor/grade/github/MeridianGH/Kalliope?style=for-the-badge)](https://www.codefactor.io/repository/github/meridiangh/kalliope)\n\\\n[![Libraries.io](https://img.shields.io/librariesio/github/MeridianGH/Kalliope?style=for-the-badge)](https://libraries.io/github/MeridianGH/Kalliope)\n[![discord.js](https://img.shields.io/github/package-json/dependency-version/MeridianGH/Kalliope/discord.js?color=44b868\u0026logo=npm\u0026style=for-the-badge)](https://www.npmjs.com/package/discord.js)\n\n### GitHub\n[![GitHub issues](https://img.shields.io/github/issues/MeridianGH/Kalliope?style=for-the-badge)](https://github.com/MeridianGH/Kalliope/issues)\n[![GitHub pull requests](https://img.shields.io/github/issues-pr/MeridianGH/Kalliope?style=for-the-badge)](https://github.com/MeridianGH/Kalliope/pulls)\n\\\n[![GitHub last commit](https://img.shields.io/github/last-commit/MeridianGH/Kalliope?style=for-the-badge)](https://github.com/MeridianGH/Kalliope/commits)\n[![GitHub commit activity](https://img.shields.io/github/commit-activity/m/MeridianGH/Kalliope?style=for-the-badge)](https://github.com/MeridianGH/Kalliope/graphs/commit-activity)\n\\\n[![GitHub Repo stars](https://img.shields.io/github/stars/MeridianGH/Kalliope?style=for-the-badge)](https://github.com/MeridianGH/Kalliope/stargazers)\n[![GitHub watchers](https://img.shields.io/github/watchers/MeridianGH/Kalliope?style=for-the-badge)](https://github.com/MeridianGH/Kalliope/watchers)\n\n---\n\n## Licensing\nMake sure to disclose the source when redistributing any part of the source code in this repository.\\\nFor more information, please refer to the license.\n\n[![License](https://img.shields.io/github/license/MeridianGH/Kalliope?logo=gnu\u0026style=for-the-badge)](https://github.com/MeridianGH/Kalliope/blob/main/LICENSE.md)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n[Back to top 🡅](#kalliope)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeridiangh%2Fkalliope","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeridiangh%2Fkalliope","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeridiangh%2Fkalliope/lists"}