Skip to content

a modular twitch-integrated application with features like text to speech and profanity detection

License

Notifications You must be signed in to change notification settings

gravestench/chillcast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChillCast 😎

ChillCast is a Twitch integration application designed to bring your streaming experience to the next level. With ChillCast, interacting with your Twitch community has never been easier or more fun!

For now, we just provide text to speech and profanity checking.

Installation

To get ChillCast up and running on your machine, follow these steps:

git clone https://github.com/gravestench/chillcast
cd chillcast

go build ./cmd/chillcast

./chillcast

Services & Configuration

The chillcast config files will be inside of ~/.config/chillcast, where ~ is your home folder. On windows, you home folder would be something like C:\Users\JohnDoe. This means that chillcast will put config files in the directory C:\Users\JohnDoe\.config\chillcast

Profanity Detection Service

The profanity detection service can be used to configure words to censor.

~/.config/chillcast/profanity_detection.json
{
  "Profanity Detector": {
    "false-negatives (comma-delimited)": "",
    "false-positives (comma-delimited)": "",
    "profanities (comma-delimited)": ""
  }
}

Soundboard service

The soundboard service can be used to trigger a pool of audio files in a specified directory.

Each soundboard entry should be a copy of Example #1 below, but with a unique name instead of Example #1.

The "literals" below are for a comma-separated list of literal strings to match against. This works the same for message triggers and audio file names. Additionally, you can specify a regex pattern to match files in the specified directory.

although the full list of twitch events are given, almost all but the OnPrivateMessage event handling logic is actually implemented.

~/.config/chillcast/soundboard.json
{
  "Example #1": {
    "audio filename literals": "fart1.wav,fart2.mp3,fart3.mp3",
    "audio filename regex": "fart\\d.(wav|mp3)",
    "audio files directory": "C:\\path\\to\\audio\\files",
    "enabled": false,
    "spam count": 3,
    "spam interval": "30s",
    "trigger literals": "fart",
    "trigger regex": "(butt|fart)",
    "twitch event": "OnPrivateMessage"
  },
  "_help": {
    "twitch event list (these are the possible events you can use to trigger)": "OnPrivateMessage"
  }
}

Here's an example config that matches many audio files in my Downloads folder:

{
  "laugh": {
    "audio filename literals": "",
    "audio filename regex": ".*(laugh|lol).*\\.(wav|mp3)",
    "audio files directory": "/home/gravestench/Downloads",
    "enabled": true,
    "spam count": 5,
    "spam interval": "30s",
    "trigger literals": "",
    "trigger regex": "(laugh|lol)",
    "twitch event": "OnPrivateMessage"
  },
  "hello": {
    "audio filename literals": "",
    "audio filename regex": ".*[hH][eE][lL][lL][oO].*\\.(wav|mp3)",
    "audio files directory": "/home/gravestench/Downloads",
    "enabled": true,
    "spam count": 5,
    "spam interval": "30s",
    "trigger literals": "",
    "trigger regex": "(hello|hi|hey)",
    "twitch event": "OnPrivateMessage"
  },
  "wow": {
    "audio filename literals": "",
    "audio filename regex": ".*[wW][oO][wW].*\\.(wav|mp3)",
    "audio files directory": "/home/gravestench/Downloads",
    "enabled": true,
    "spam count": 10,
    "spam interval": "30s",
    "trigger literals": "wow",
    "trigger regex": "wow",
    "twitch event": "OnPrivateMessage"
  }
}

Text To Speech

The TTS service can be used to configure how the text is converted into audible speech.

~/.config/chillcast/text_to_speech.json
{
  "Text to speech": {
    "directory": "~/.config/chillcast/audio_files",
    "mplayer-handler": false
  }
}

Twitch-integrated TTS

The twitch-integrated TTS service links the TTS and the twitch integration together.

~/.config/chillcast/twitch_integrated_text_to_speech.json
{
  "Twitch-Integrated TTS": {
    "_help :: possible voices (language codes)": "en,en-UK,en-AU,ja,de,es,ru,ar,cs,da,nl,fi,el,hi,hu,id,km,la,it,no,pl,sk,sv,th,tr,uk,vi,af,bg,ca,cy,et,fr,gu,is,jv,kn,ko,lv,ml,mr,ms,ne,pt,ro,si,sr,su,ta,te,tl,ur,zh,sw,sq,my,mk,hy,hr,eo,bs",
    "announce user": true,
    "enable": true,
    "remove profanity": false,
    "system voice": "en-UK",
    "user voice": "en-AU"
  }
}

Twitch Integration

The twitch integration service is used by the other services. You need to get your oauth token from https://twitchapps.com/tmi/

You can enable/disable specific events, too.

~/.config/chillcast/twitch_integration.json
{
  "credentials": {
    "Oauth Key": "",
    "Username": ""
  },
  "handlers": {
    "OnClearChatMessage": true,
    "OnClearMessage": true,
    "OnConnect": true,
    "OnGlobalUserStateMessage": true,
    "OnNamesMessage": true,
    "OnNoticeMessage": true,
    "OnPingMessage": true,
    "OnPingSent": true,
    "OnPongMessage": true,
    "OnPrivateMessage": true,
    "OnReconnectMessage": true,
    "OnRoomStateMessage": true,
    "OnUnsetMessage": true,
    "OnUserJoinMessage": true,
    "OnUserNoticeMessage": true,
    "OnUserPartMessage": true,
    "OnUserStateMessage": true,
    "OnWhisperMessage": true
  }
}

Contributing

We welcome contributions! Please see our CONTRIBUTING.md file for details on how you can contribute to the ChillCast project.

License

ChillCast is released under the MIT License. Credits

Dylan Knuth

Support

For support with chillcast, please open an issue on this GitHub repository or contact the maintainers directly.

Roadmap

  • text to speech
  • profanity check
  • soundboard
  • automated soundboard downloads

About

a modular twitch-integrated application with features like text to speech and profanity detection

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages