Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aquelemiguel/parrot
🦜 A hassle-free, highly performant, self-hosted Discord music bot with YouTube and Spotify support. Powered by yt-dlp.
https://github.com/aquelemiguel/parrot
discord hacktoberfest music-bot rust serenity-rs songbird-rs youtube-dl yt-dlp
Last synced: about 1 month ago
JSON representation
🦜 A hassle-free, highly performant, self-hosted Discord music bot with YouTube and Spotify support. Powered by yt-dlp.
- Host: GitHub
- URL: https://github.com/aquelemiguel/parrot
- Owner: aquelemiguel
- License: mit
- Created: 2021-09-16T00:25:09.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-07-12T10:56:59.000Z (5 months ago)
- Last Synced: 2024-08-01T22:00:30.708Z (5 months ago)
- Topics: discord, hacktoberfest, music-bot, rust, serenity-rs, songbird-rs, youtube-dl, yt-dlp
- Language: Rust
- Homepage:
- Size: 346 KB
- Stars: 133
- Watchers: 10
- Forks: 42
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- starred - aquelemiguel/parrot - 🦜 A hassle-free, highly performant, self-hosted Discord music bot with YouTube and Spotify support. Powered by yt-dlp. (Rust)
README
A hassle-free, highly performant, host-it-yourself Discord music bot## Deployment
### Usage
Just [create a bot account](https://github.com/aquelemiguel/parrot/wiki/Create-Your-Discord-Bot), and copy its **token** and **application id** to a `.env` with the `DISCORD_TOKEN` and `DISCORD_APP_ID` environment variables respectively. Optionally, you may also define `SPOTIFY_CLIENT_ID` and `SPOTIFY_CLIENT_SECRET`. We recommend using our [.env.example](https://github.com/aquelemiguel/parrot/blob/main/.env.example) as a starting point.
### Docker
```shell
docker run -d --env-file .env --restart unless-stopped --name parrot ghcr.io/aquelemiguel/parrot:latest
```## Development
Make sure you've installed Rust. You can install Rust and its package manager, `cargo` by following the instructions on https://rustup.rs/.
After installing the requirements below, simply run `cargo run`.### Linux/MacOS
The commands below install a C compiler, GNU autotools and FFmpeg, as well as [yt-dlp](https://github.com/yt-dlp/yt-dlp) through Python's package manager, pip.
#### Linux
```shell
apt install build-essential autoconf automake libtool ffmpeg
pip install -U yt-dlp
```#### MacOS
```shell
brew install autoconf automake libtool ffmpeg
pip install -U yt-dlp
```### Windows
If you are using the MSVC toolchain, a prebuilt DLL for Opus is already provided for you.
You will only need to download [FFmpeg](https://ffmpeg.org/download.html), and install [yt-dlp](https://github.com/yt-dlp/yt-dlp) which can be done through Python's package manager, pip.```shell
pip install -U yt-dlp
```If you are using Windows Subsystem for Linux (WSL), you should follow the [Linux/MacOS](#linuxmacos) guide, and, in addition to the other required packages, install pkg-config, which you may do by running:
```shell
apt install pkg-config
```## Testing
Tests are available inside the `src/tests` folder. They can be run via `cargo test`. It's recommended that you run the tests before submitting your Pull Request.
Increasing the test coverage is also welcome.### Docker
Within the project folder, simply run the following:
```shell
docker build -t parrot .
docker run -d --env-file .env parrot
```