Twitch livestream bot that can control colors for overlays from Stream Elements, play sound effects, handle custom rewards (like text-to-speech) and more!
This chatbot was built with π live on stream with the programming community. Come and hang out with us over on Twitch!
-
Clone with:
git clone git@github.com:clarkio/ttv-chat-bot.git
-
Goto project:
cd ttv-chat-bot
-
Install node dependencies:
npm install
-
If on:
-
Login on https://twitch.tv
-
Go to https://twitchapps.com/tmi/
- Click "Connect with Twitch"
- Click "Authorize"
- Copy the token value (starts with "oauth:")
-
Rename the file
.env-example
to.env
-
Update
TTV_CLIENT_TOKEN
with the token value you copied before in step 4.c -
Update
TTV_CLIENT_USERNAME
to your client username (defaults to "clarkio") -
For each overlay in streamelements (a.k.a. scenes) copy the URL to the scene and add it to the
.env
file as a new environment variable for each one.Example: mainScene=https://streamelements.com/overlay/abc/123
-
Get Streamelements JWT from your account and update
STREAMELEMENTS_JWT
in your.env
file.
Please make sure you've completed all steps in the "Getting Started" section before attempting to run the app.
- (@roberttables) Set OBS_SOCKETS_SERVER=host.docker.internal:
- (@parithon) Note This dns name (host.docker.internal) only appears to work on Docker Desktop for Mac/Windows and not production environments nor other linux environments (Ubuntu)
- (@roberttables) In that case then you can use the override through docker0 bridge which exists in linux environments
-
Change to the directory of the project
ttv-chat-bot
if you have not already done so. -
Run
npm start
-
Open your browser and go to http://localhost:1337/scenes?sceneName=<your-scene-name-from-.env>
-
Go to the debugger view and confirm the debugger is set to "Server Start"
-
Press the "Start Debugging" button (the green play button)
-
Open your browser and go to http://localhost:1337/scenes?sceneName=<your-scene-name-from-.env>
Please make sure you've completed all steps in the "Getting Started" and "Run the Application" sections before attempting to try out the app.
-
Open up a new browser tab or window and navigate to the chat for the Twitch channel you want to use (defaults to "clarkio" in the
.env
file underTTV_CHANNELS
)Example: https://www.twitch.tv/popout/clarkio/chat
If you'd like to have the client connect to another channel you can add it to the
TTV_CHANNELS
environment variable. The variable is comma-delimited so you can have it as clarkio,"your channel name" to connect to multiple channels -
Enter the following chat message "!bulb go green" and you should see your overlay change color in your other tab/window which loaded http://localhost:1337/scenes?sceneName=mainScene
WARNING: the implementation is currently based off of an overlay being blue by default and will alter the hue from that. If your overlay default color is different it will not exactly change to the color you may be intending. We are working on making this better to support different default overlay colors.
Want to contribute? Check out our Code of Conduct and Contributing docs. This project follows the all-contributors specification. Contributions of any kind welcome!
Thanks goes to these wonderful people (emoji key):
- sockelo
- frenck
- tallpants
- wwsean08
- l2ival
- ikoakmaindehoas
- codephobia
- styler
- TheMartesLive
- eeevans
- TheMichaelJolley
- @jaredpsimpson
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!