MichaelJolley / io

Licence: MIT license
A Node.js based system for managing a stream, including a chat bot, overlays, stream note generation and more.

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language
Dockerfile
14818 projects
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to io

kbot
Twitch chat bot aiming to improve chat experience.
Stars: ✭ 27 (+22.73%)
Mutual labels:  twitch, chat-bot
twurple
Interact with Twitch's API, chat and subscribe to events via PubSub and EventSub.
Stars: ✭ 479 (+2077.27%)
Mutual labels:  twitch, chat-bot
supibot
Multiplatform, utility & novelty chat bot.
Stars: ✭ 77 (+250%)
Mutual labels:  twitch, chat-bot
music-id
🚀 Music ID for Twitch (TwitchMusicID) is a Chatbot which automatically identifies music in the background of Twitch Streams, VODs, and Clips.
Stars: ✭ 49 (+122.73%)
Mutual labels:  twitch, chat-bot
live-broadcast-bundle
Live broadcasting planner and scheduler
Stars: ✭ 38 (+72.73%)
Mutual labels:  twitch
SAM-BAR
SAM Boot Assistant Reloaded - Combo USB CDC+MSD Bootloader for Atmel/Microchip SAMD21 microcontroller
Stars: ✭ 29 (+31.82%)
Mutual labels:  deprecated
wallet-lib
DEPRECATED A pure and extensible JavaScript Wallet Library for Dash
Stars: ✭ 13 (-40.91%)
Mutual labels:  deprecated
oembed
PHP OEmbed wrapper for well-known video platforms and services
Stars: ✭ 26 (+18.18%)
Mutual labels:  twitch
arduino-client
[deprecated] [Arduino (compatible)] Arduino c++ client library to connect to the AllThingsTalk platform
Stars: ✭ 19 (-13.64%)
Mutual labels:  deprecated
vscode-twitch-themer
A Visual Studio Code extension that listens to Twitch chat and allows viewers to change the streamers VS Code theme.
Stars: ✭ 35 (+59.09%)
Mutual labels:  twitch
nginx-obs-automatic-low-bitrate-switching
Simple app to automatically switch scenes in OBS based on the current bitrate fetched from the NGINX stats page.
Stars: ✭ 167 (+659.09%)
Mutual labels:  twitch
Pocket-Plays-for-Twitch
Open source Twitch client for Android
Stars: ✭ 55 (+150%)
Mutual labels:  twitch
atom-perfectionist
Beautify CSS and SCSS
Stars: ✭ 19 (-13.64%)
Mutual labels:  deprecated
prestans
A WSGI compliant REST micro-framework.
Stars: ✭ 14 (-36.36%)
Mutual labels:  deprecated
glitch
!NO MORE MAINTAINED! Reactive API Wrapper for Twitch in Kotlin/JVM
Stars: ✭ 12 (-45.45%)
Mutual labels:  twitch
NetteAdapterForSymfonyBundles
[DEPRECATED due to only 20 downloads per 2 years] Read an article about this idea
Stars: ✭ 15 (-31.82%)
Mutual labels:  deprecated
twitch-vod-chat
No description or website provided.
Stars: ✭ 20 (-9.09%)
Mutual labels:  twitch
meme-box
Manage and trigger media in OBS as a browser source
Stars: ✭ 82 (+272.73%)
Mutual labels:  twitch
MyOwnChallenge-RnTwitch
React-Native app using the twitch api
Stars: ✭ 36 (+63.64%)
Mutual labels:  twitch
humhub-oauth
Social OAuths built for the Social Platform HumHub
Stars: ✭ 16 (-27.27%)
Mutual labels:  twitch

This repository has been deprecated and superseded by https://github.com/MichaelJolley/vulcan.

All Contributors

IO is a Twitch chat-bot, overlay & stream note micro-service application.

Services

All services use Node.js & TypeScript unless otherwise noted.

Service Description
admin Web portal for administering entire system. (Under construction)
api Express API used as a proxy between third-party API's and the IO system
chat Connects to Twitch chat via IRC and emits various events to the io-hub service
chron Executes various functions at timed intervals to update other services
hub A Socket.io hub that listens and emits events for the application
logger Listens to events emitted from the io-hub and logs to a MongoDB
overlay Web pages served by Express that listen to events from the io-hub and render UIs to be displayed on stream
shared Contains interfaces, classes and data access logic used by other services
streamnotes Listens for certain events emitted from the io-hub to generate stream notes for a completed stream and push to GitHub
user Express web app that acts as a stateful service for all user (viewer) data used by the application
webhooks Express web app that listens for calls from third-parties and relays events to the io-hub

Environment Variables

When running locally, environment variables can be added to each service via a .env file in the services root directory. An example (.env-example) lives in the root of the repository. Below is a description of all environment variables and their use.

Variable Purpose
GITHUB_USERNAME Username to use in building the GitHub repo url.
GITHUB_EMAIL_ADDRESS Email address associated with the commit to git.
GITHUB_NAME Name of the user associated with the commit to git.
GITHUB_AUTH_TOKEN Personal access token from GitHub. Used to authenticate when generating stream notes.
GITHUB_REPO GitHub repository name to commit stream notes to.
MONGO_DB_CONN_STRING Connection string for MongoDB that will store stream, user & vote data
MONGO_DB_USER Username for MongoDB connection
MONGO_DB_PASSWORD Password for MongoDB connection
MONGO_DB_DATABASE Database that contains the stream, user & vote data
NGROK_AUTH_TOKEN Used by webhooks service when running the application locally.
TWITCH_CLIENT_ID Client Id assigned to an application by Twitch at https://dev.twitch.tv
TWITCH_CLIENT_TOKEN Auth token for the streamer's Twitch account
TWITCH_CLIENT_USERNAME Twitch login for the streamer
TWITCH_CLIENT_USER_ID Twitch user id of the streamer
TWITCH_BOT_USERNAME Twitch login for the bot. Can be the same as TWITCH_CLIENT_USERNAME.
TWITCH_BOT_TOKEN Twitch Auth token for the bot account. Can be same as TWITCH_CLIENT_TOKEN

Custom Comic Chat Avatars

One of the fun capabilities of IO is a reproduction of Microsoft Comic Chat from the late 90's. We welcome anyone to submit a pull request with a custom avatar for their Twitch account.

The requirements for an avatar are pretty specific. You need two images: head-{twitchHandle}.png & body-{twitchHandle}.png. Both should be transparent PNGs.

We've created a place to test your images at codesandbox. You can reach it at https://codesandbox.io/s/quizzical-mendeleev-0gwnq. Follow the instructions there to get your body & head images just right and then submit a pull request adding them to the /assets/images/characters/{your twitch handle} path.

Release Notes

See CHANGELOG.md

Contributors

Thanks goes to these wonderful people:


Anthony Conrad

🤔 💻 🚇

Sushinateur

🤔

Martin Raymond

🤔 💻 🚇

David Poindexter

🚇 🤔

Michael Jolley

🤔 💻 🚇 📖

Andrés Amarís

💻

Chris Jones

🤔 💻

Flyken

🤔

Davin Davies

🤔

CodemanCodes

🤔 📓 💻

John Tsombakos

⚠️

Chance Murray

💻

ElectricHavoc

💻

Jonathan Delfraisse

⚠️

bravecobra

🤔

Ancient Coder

🤔

deathpax

🤔

R.James Solenberg

🤔 🖋

Brian Clark

🖋

Mike Holloway

🤔 💻

Chris Gargotta

💻 🤔

Hugo Dahl

🤔

Timmy Kokke

🖋

Adam Culp

🤔

Simon Brookes

🤔

This project follows the all-contributors specification. Contributions of any kind welcome!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].