

Chartjs would take the data and show a graph, describing the EWMA value of the chat’s activity in realtime. Additionally I wanted to save my data in a SQLite database which would save data with JPA/Hibernate and which would communicate with my Chartjs visualization tool on my website through a REST API. This should be integrated into my IntelliJ IDE via Gradle, or tested out through Eclipse via Maven.

The original plan was to turn my Bot into a scheduled task as a service in my very own Wildfly application server. Throughout my research for a appropriate and comfortable interface between the database to implement and the visualization tool, I came by countless options. This added reliable analysis of my received data, so finally all that was left to do was setting a threshold deviation value and giving my bot access to set a marker command in the chat as soon as this threshold was exceeded. The EWMA allows the detection of exceptional deviation by comparing a value to a history, but adding more weight on recent instead of old values through adding exponentially decreasing weights. Research suggested using the exponentially weighted moving average (EWMA), allowing my bot to rule out the occasional nonstarter. I had to find a way to reliably detect surges in chat activity, without counting and marking isolated cases. The next issue I had was to determine the way I detected highlights in my chat. Soon I was able to receive messages I had in my chat and relay them to my console. I took a look at different Twitch Bots to help me start things and created a simple connection to my Twitch Channel through the Java Twitch API, integrated into my project by Gradle. I decided to implement the Bot first, worrying about everything that comes after later. Also it would be nice to be able to actively track the collected data in a way, which makes it easy and intuitive to understand. Since a streamer marking a highlight in the chat himself while playing a game is highly improbable and not every streamer has a chat moderator to take that responsibility into his or her hands, there is mostly only the possibility of looking through hours of video footage, to find a few highlights to cut out.īecause of this issue, I had the idea of creating a Twitch Chat Bot, which analyzes and evaluates the chat of a Twitch channel, taking message frequency, length and emotes into account, which is able to detect sudden surges in chat activity and sets a highlight marker accordingly. These highlights are made by streamers creating short clips of their favourite moments either by looking through all of their footage, or marking the time of a potential highlight by using the chat command /mark. Viewers are able to communicate with other viewers and streamers through the chat, or watch their previous streams or highlights. Video game streaming has taken over a big part of the commercial video game scene with Twitch being its biggest platform.
