An open API service indexing awesome lists of open source software.

https://github.com/tim232/rapgod

🔊 Creating raps and playing them through Discord, Used wrussell1999's source.
https://github.com/tim232/rapgod

Last synced: 11 months ago
JSON representation

🔊 Creating raps and playing them through Discord, Used wrussell1999's source.

Awesome Lists containing this project

README

          

# Rap God

## Usage

Invite the bot to your server or just DM it.
Use `!help` to get help in Discord.

##### In servers

- `!rap ` make a rap with the given words and play it in a voice channel
- `!lyrics ` make a rap with the given words and just print it
- `!save` save the last rap played and upload it as an mp3

Server admin-only commands:
- `!voice_channel ` set which voice channel raps should be played in
- `!lyrics_channel ` set which text channel the `!lyrics` command is allowed to be used allowed in (to reduce spam)

##### In a DM chat with the bot
- `!rap ` make a rap with the given words and upload it as an mp3
- `!lyrics ` make a rap with the given words and just print it

## Setup Environment

Requires Python 3.6.7 or above.
```bash
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip3 install -r requirements.txt
```

Requires command line application `ffmpeg` or `avconv` to load the backing tracks.

Then following python needs to be run to get the natural language data sets:
```python
import nltk
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')
```

## Configuration

##### Google Cloud Platform credentials

Follow [this guide](https://cloud.google.com/text-to-speech/docs/quickstart-client-libraries#client-libraries-install-python) to get GCP text-to-speech working. Put the JSON file in the config folder and name it ```google_cloud_key.json```.

##### Discord credentials

Follow [this guide](https://github.com/reactiflux/discord-irc/wiki/Creating-a-discord-bot-&-getting-a-token) to get a Discord bot setup on your server.

`config/discord.json`

```json
{
"token": "",
"thread_count":4,
"command_prefix":"!"
}
```

`config/songs.json`

```json
{
"artist name":"song name or * for all songs"
}
```