ChatBuzz is a simple OBS Plugin that displays repeated messages from a Twitch chat.
I've configured ChatBuzz so that its width and height are the same as the OBS Browser Source's default, 800x600. Because of this, it's as simple as putting in the URL and clicking "OK".
Your OBS Browser Source URL should look like "https://chatbuzz.app/?channel=CHANNEL", with CHANNEL being replaced by your Twitch channel's username (case insensitive). In addition, you can also add how ever many arguments to the end as you need, in any order, in the form '&PARAMETER=ARGUMENT'. For example, you may have "https://chatbuzz.app/?channel=xqc¬ts&min=5&dur=10.5&color=red".
Parameter | Definition | Data Type | Constraints | Default Value |
---|---|---|---|---|
channel | Channel username | string | - | - |
color | Repeat font color | string | pink | red | orange | yellow | green | blue | purple | yellow |
fontsize | Repeat font size | float | > 0.0 | 30.0 |
emotescale | Emote scale when compared to font size | float | > 0.0 | 1.3 |
min | Minimum number of identical messages required to display it. Text-To-Speech also activates when the repeat count is a multiple of this number | int | >= 2 | 3 |
dur | Duration (in seconds) until a repeat expires without new identical messages | float | > 0.0 | 7.0 |
width | Window width | int | > 0 | 800 |
height | Window height | int | > 0 | 600 |
vol | Text-To-Speech volume | float | >= 0.0 | 0.5 |
rate | Text-To-Speech rate | float | > 0.0 | 0.8 |
pitch | Text-To-Speech pitch | float | - | 2.0 |
notts | No Text-To-Speech | bool* | - | false |
norepeat | No Text-To-Speech repeating messages after the initial displaying | bool* | - | false |
topdown | Top-down instead of bottom-up | bool* | - | false |
rightside | Right-side instead of left-side | bool* | - | false |
nobttv | Exclude BetterTTV emotes | bool* | - | false |
noffz | Exclude FrankerFaceZ emotes | bool* | - | false |
no7tv | Exclude 7TV emotes | bool* | - | false |
debug | Debug mode | bool* | - | false |
* the bool paremeters, notts–7tv, may be false on default, but I've made it so you don't need to provide "true" for it to be true. Simply include it as an argument e.g. "&topdown¬ts" rather than "&topdown=true¬ts=true".
The voice synthesis used by most web browsers, SpeechSynthesis, has issues with OBS as seen here. Because of this, you have to uncheck the browser source property box "Control audio via OBS" to hear the audio, and unfortunately the audio might play when you're in other scenes. The current workaround is to temporarily add the notts parameter or to delete the ChatBuzz browser source when needed. In the future, I may explore different TTS processes such as an API or a local program.
ChatBuzz is the first personal project that I can be genuinely be proud of. The need to create it came about when I wanted to personally use an OBS Plugin with a certain functionality while streaming on Twitch, but I couldn't find any that fit my needs. Specifically, the Twitch streamer Charborg has a similar program that was developed by Cagelight, seen here. I took it upon myself to make a free, open-source, public version.
(There exists a similar, widespread OBS Plugin concept of the "Combo" which is the number of consecutive identical messages. This is differentiated as a "Repeat", and uses a time duration which ignores whether or not messages are consecutive.)
I appreciate any and all feedback! Have you encountered any issues? Do you want new features e.g. emote-only mode, different font options? Any recommendations? Etc. Thanks for reading!
- TypeScript (& JavaScript)
- HTML
- CSS
- APIs (tmi.js, teklynk_api_public)
- Webpack
- Node.js
- General Web Development e.g. domain, hosting, favicon
- Git
- Unix shell
- VS Code
- UX (User Experience)
- Project Management
- Documentation
- Markdown e.g. this (
README.md
)
- Markdown e.g. this (
- Making a demo video (Setup & Demo (click))
- Published to obsproject.com here