evebot v1.1.8
E.V.E Bot
E.V.E is a voice enabled all in one discord bot. Feel free to host your own instance!
If you are a developer and wish to contribute / customize E.V.E, check out the wiki!
Table of Contents
Features
- Play music!
- Start a custom radio!
- Clip or recite voice channel activity!
- Say anything you want with the bot!
- And much more!
Usage
- Add the bot to your Discord Server
- Once the bot has been started (see here), add it through the Discord Developer Portal
- Use the
?help
command to see the various command groups- Use the
?help
command with a command name or group to see the command details (e.g?help play
)
- Use the
- Say one of the provided hotwords to start a voice command (Alexa, Hey Siri, and OK Google)
- Wait for the chime to start saying your command
- Don't worry about other people interrupting you
Installation
The installation process for E.V.E is quite long due to all the different services it requires.
These steps are if you wish to run the bot on your local machine (i.e. PC, laptop). E.V.E runs on macOS and Linux (Windows has not been tested).
Pre Installation
- Retrieve all the required / desired tokens
- Install the following external dependencies
- ffmpeg
- lame (pre-installed on macOS)
- node / npm (
node >=12.0.0
)
- Set up the environment variables and api tokens
- Set up a
json
file with the key value pairs - An example can be found in
example_keys.json
- Environment variables can be used instead of a
json
file
- Set up a
Installation from NPM
- Install the package (
npm install -g evebot
) - Start the bot using
evebot <path to keys.json>
(e.gevebot ~/Documents/keys.json
)
Installation From Source
- Clone / Download the git repository (
git clone git@github.com:henrymxu/evebot.git
) - Copy the
json
file you created above into theevebot
directory- Rename this file to be
keys.json
- Rename this file to be
- Inside a terminal, navigate to the newly cloned
evebot
directory - Install TypeScript (
npm install -g typescript
) and ts-node (npm install -g ts-node
) - Install the dependencies using
npm install
- Start the bot using
npm start
Local Installation with Docker
// TODO
Heroku Deployment
// TODO
Environment Variables
Name | Environment Variable | Description | Required |
---|---|---|---|
Bot Environment | bot_environment | Informs the bot to use either 'development' or 'production' settings. Defaults to development. | ✗ |
Youtube Cookie | youtube_cookie | Required for the bot to bypass Youtube 429 Errors (Too many requests). | ✗ |
General API Tokens
Name | Environment Variable | Description | Required |
---|---|---|---|
Discord Bot Token | discord_token | Required for the bot to login and communicate with discord. | ✓ |
Youtube Search API Token | youtube_api_token | Required for the bot to search for song URLs (Hopefully this will be converted to a scraper). | ✓ |
Genius API Token | genius_token | Required for the bot to find lyrics of songs. | ✗ |
Spotify API Tokens | spotify_id | Required for the bot to create radio playlists, search albums and playlists. | ✗ |
spotify_secret | ✗ |
Platform API Tokens
Details on how to authenticate and configure each provider can be found in each of their individual sections.
Summary
Name | Speech-to-Text | Text-to-Speech | Cloud Storage |
---|---|---|---|
IBM Watson | ✓ | ✓ | ✗ |
Microsoft Azure | ✓ | ✓ | ✗ |
Google Cloud | ✓ | ✓ | ✗ |
Amazon Web Services | ✗ | ✗ | ✓ |
IBM Watson
Environment Variable | Description |
---|---|
watson_token | API Key |
watson_url | URL |
Microsoft Azure
Environment Variable | Description |
---|---|
microsoft_token | KEY |
microsoft_location | LOCATION (e.g eastus) |
Google Cloud
Environment Variable | Description |
---|---|
google_keyFileCred | Contents of the Google Cloud JSON Credentials File |
Amazon Web Services
Environment Variable | Description |
---|---|
AWS_REGION | AWS Region |
AWS_ENDPOINT | Endpoint |
AWS_ACCESS_KEY_ID | Access Key ID |
AWS_SECRET_ACCESS_KEY | Secret Access Key |
Configurations
Troubleshooting
The bot doesn't seem to recognize your voice commands
- Wait until you hear the chime from the bot after saying the hotword to begin your voice command
- Make sure the voice command doesn't get cut off by the ending chime
The bot seems to be unresponsive or not listening to any hotwords
Try using the
rejoin
command
- The bot is unable to find any songs to play
- Try adding / updating the
youtube_cookie
to the bot
- Try adding / updating the
Support
- Feel free to create an issue on GitHub if there are any problems installing or using E.V.E!
License
This repository is licensed under Apache 2.0. You may host an instance of this bot for non-commercial and personal use free of charge.