Measuring Emotions in Twitch Livestreams
Welcome to FeelsGoodMan, a prototype providing real-time emotion analysis of Twitch chats to gain insights into viewer engagement.
Features
- Sentiment Analysis: Get an immediate sense of the audience's mood with our sentiment analysis, categorizing messages into 6 basic emotions.
- Engagement Metrics: Track chat activity over time to see when your audience is most engaged.
Usage
To view the chat and details of a specific stream append the channel name as a URL parameter, for example https://feelsmoodman.chat/?channel=<user_name>
. If no channel name is provided, the tool defaults to showing the top 20 most viewed streams in English. Click on the channel name to view the stream or enter the URL in the search bar at the top.
Model
We utilize the Emotion English DistilRoBERTa-base model to classify emotions in Twitch chat messages. This model predicts Ekman's 6 basic emotions, plus a neutral class:
- 😀 joy
- 🤬 anger
- 😭 sadness
- 😨 fear
- 🤢 disgust
- 😲 surprise
- 😐 neutral
This fine-tuned checkpoint of DistilRoBERTa-base has been trained on a diverse collection of text types from Twitter, Reddit, student self-reports, and TV dialogues. To further enhance our analysis, we replace Twitch emotes (an integral part of the sentiment) in messages before classification. For example, an emote like "4Head" would be replaced with "[laughing face with a wide grin]".
Architecture
Due to the large volume of chat messages, we opted for a client-side approach using Transformers.js to run the model directly in the browser. We implemented this prototype as a Next.js client-only Single Page Application (SPA). It integrates with Twitch chat using tmi.js for real-time IRC connection in the browser. Frontend components are predominantly sourced from shadcn/ui, and Recharts is used for data visualization.
Use Cases
For Streamers
- Understand Audience Engagement: Track when your audience is most active and what kind of messages they are sending.
- Improve Content: Use sentiment analysis to gauge reactions to different parts of your stream and adjust your content accordingly.
For Advertisers
- Targeted Advertising: Identify popular streams and understand audience sentiment to target ads effectively.
- Content Sponsorship: Analyze viewer engagement and sentiment to align sponsorships with popular streams.
Conclusion
FeelsMoodMan is a powerful tool for streamers and advertisers looking to gain deeper insights into Twitch streams and chat dynamics. Whether you're a streamer aiming to improve content or an advertiser seeking to target ads effectively, our tool provides the functionality and information you need.
Contributors
This prototype was developed by Jannik Wolf and Jan-Philipp Kiel for the 2024 COIN seminar at the University of Cologne.