Skip to main content

Twitch noisemaker

Project description

DJALLIN2

A mildly configurable twitch noisemaker capable of responding to chat and point redemptions.

Available through pip (djallin2) or as a standalone executable for macOS and Windows.

Note for Windows users, your antivirus will probably think it's a trojan. It's not, but it kinda looks like one to your antivirus. If you get the option to report a false positive, please do so.

Quickstart

Want !sound to just work?

  • Download the latest build from the releases tab
  • Download the quick config file, rename it to config.txt
  • Place your sounds in a folder called sounds, next to the app and config
  • Run it, your browser will open to handle the initial Twitch connection
    • This will happen every ~3 months as necessary

Configuration

config.txt holds your token and configures chat and point responders.

Take a look at the example configuration for examples, and a detailed explanation for all settings.

The following block defines a basic chat listener:

[chat.sound]
    badges = ['moderator', 'broadcaster', 'vip']
    target = './sounds/'
    command = '!sound '

Mods, VIPs, and the broadcaster can use !sound xxx to play ./sounds/xxx.mp3

If badge and name filters are not supplied, anyone can use the command. The random setting enables random playback. A value of 2 selects a random file from the directory.

[chat.wisdom]
    target = './wisdom/'
    command = '!wisdom'
    random = 2

Points rewards are similarly configured. Set the name to the name configured in your twitch rewards. A random value of 1 enables the random command where a random file will be selected if a user enters random.

[points.sound]
    name = 'play a sound'
    target = './sounds/'
    random = 1

Alternatively, you can duplicate configurations using links. Setting applied in the block with a link statement override settings in the linked responder.

[points.sound]
    link = 'chat.sound'
    random = 1

command_mode can be used to define different match modes for the command. contains allows you to play a single file or randomly select from a directory when a message contains the command phrase. Chat listeners are checked in alphabetical order and when one plays a sound, checks stop.

[chat.z_cowboy]
    command = 'cowboy'
    command_mode = 'contains'
    target = './sound/yeehaw.mp3'

Both point and chat blocks support custom code actions, check the example configuration for details.

Playback statistics can be recorded to a sqlite3 database of your choice. Simply add stats = true to your configuration block.

[chat.sound]
    target = './sounds/'
    command = '!sound '
    stats = true

The name of the database can be changed by setting stats_db = 'database.sqlite' at the top of your configuration file.

Known issues

If a red screen shows when registering your twitch token, there may be a problem with your connection. Close the soundbot and try again.

TODO:

  1. This
  2. Let exit on fire be a configurable option?
  3. HTTP command receiver (lioran?)
  4. custom hook code - lioran example? obs websocket?
  5. Bits?
  6. Does linux support audio these days?
  7. https://inloop.github.io/sqlite-viewer/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

djallin2-0.7.0.tar.gz (75.2 kB view hashes)

Uploaded Source

Built Distribution

djallin2-0.7.0-py3-none-any.whl (21.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page