Inspiration
One of the benefits I have as a developer and a streamer is I can make things I want to add to my stream, so it started with a simple demo project, showing a small output when an reward was redeemed. It has now grown into it's own product and in the hands of other streamers.
What it does
Allows users to bind various events to channel points rewards that appear through a provided URL. Currently public version allows users to bind sound effects, video alerts. For the hackathon a vote system. a logging tool and the concept of "Text to Beats", allowing users to play short jingles, intro tunes or a small lurk klaxon, it allows the viewer to highlight chat musically. The platform itself is now in a state where we can just add more items and the system will scale to support it.
How we built it
Using Node.js as a base and Passport to handle twitch login, utilising the incredible Twitch API wrapper library by d-fischer. Implemented socket.io sockets to handle messaging between the backend and the clients. It was built live on stream for some sessions, getting chat to break it, make suggestions and provide feedback, making it so much easier to craft the solutions.
Challenges we ran into
Ensuring the remote URL could be loaded without having to log into it, ensuring a user experience they would be familiar with. Originally had a version with TTS enabled, which is currently hidden for financial reasons. Handling users vote messages and then rendering the updates to the bar dynamically so the streamer could focus on the show, not on a tool on another screen.
Accomplishments that we're proud of
Making so a user only has to login once and it just works. Creating an interface for less musicly inclined chat users to get involved and make a tune.
What we learned
The fullstack experience, first project in Node, Websockets and mongoDB. Lots of musical theory and notation.
What's next for Channel Points Tool
More variety for reward bindings, similar to IFTTT, chat output on events
Where to find the code
I sent over an invite to the 'twitchdevelopers' github account, let us know if there is any issues!
Log in or sign up for Devpost to join the conversation.