All Projects → SimpleSandman → TwitchBot

SimpleSandman / TwitchBot

Licence: other
Custom C# chat bot for Twitch TV

Programming Languages

C#
18002 projects
TSQL
950 projects

Projects that are alternatives of or similar to TwitchBot

glitch
!NO MORE MAINTAINED! Reactive API Wrapper for Twitch in Kotlin/JVM
Stars: ✭ 12 (-63.64%)
Mutual labels:  twitch, twitchtv, twitch-tv, twitch-bot, twitch-api, twitch-chat
twitchtube
Twitch YouTube bot. Automatically make video compilations of the most viewed Twitch clips and upload them to YouTube using Python 3.
Stars: ✭ 398 (+1106.06%)
Mutual labels:  twitch, twitch-tv, twitch-bot, twitch-api
Firebot
A powerful all-in-one bot for Twitch streamers
Stars: ✭ 162 (+390.91%)
Mutual labels:  twitch, twitchtv, chatbot, twitch-bot
TwitchPy
This is a package you can use to connect with the Twitch API, manage a channel, create bots, etc
Stars: ✭ 22 (-33.33%)
Mutual labels:  twitch, irc-bot, twitch-bot, twitch-api
twitch2dcs
DCS World mod that allows twitch chat to be viewed inside the game
Stars: ✭ 24 (-27.27%)
Mutual labels:  twitch, twitchtv, twitch-irc, twitch-chat
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 (+48.48%)
Mutual labels:  twitch, twitch-bot, twitch-api
twitch-irc-rs
Twitch IRC library for the Rust programming language
Stars: ✭ 58 (+75.76%)
Mutual labels:  twitch, twitchtv, twitch-bot
pyTwitchAPI
A Python 3.7 implementation of the Twitch API, EventSub and PubSub
Stars: ✭ 132 (+300%)
Mutual labels:  twitch, twitch-tv, twitch-api
Harmonbot
Multi-Platform Factotum Bot
Stars: ✭ 30 (-9.09%)
Mutual labels:  twitch, twitch-bot, twitch-irc
twurple
Interact with Twitch's API, chat and subscribe to events via PubSub and EventSub.
Stars: ✭ 479 (+1351.52%)
Mutual labels:  twitch, twitch-api, twitch-chat
Twitch-View-Bot
First open-source really working view bot for Twitch
Stars: ✭ 63 (+90.91%)
Mutual labels:  twitch, twitch-bot, twitch-api
Lagertha
A UI/UX redesign of the popular Twitch-bot PhantomBot
Stars: ✭ 10 (-69.7%)
Mutual labels:  twitch, twitchtv, twitch-bot
PythonTwitchBotFramework
asynchronous twitchbot framework made in pure python
Stars: ✭ 78 (+136.36%)
Mutual labels:  twitch, twitch-bot, twitch-api
PhantomBotDE
PhantomBotDE ist ein aktiv Entwickelter interaktiver Open Source Twitch Bot mit einer lebendigen Community welche Unterhaltung und Moderation für deinen Kanal bietet, dieser erlaubt dir dich auf das was wirklich zählt zu Konzentrieren - dein Spiel und deine Zuschauer.
Stars: ✭ 24 (-27.27%)
Mutual labels:  twitch, twitch-bot
livestreamers
Python script for checking stream status for followed Twitch.tv channels
Stars: ✭ 22 (-33.33%)
Mutual labels:  twitchtv, twitch-api
twitch-bot-tutorial
Official repo of the "Building a Python Twitch bot (2020)" series.
Stars: ✭ 21 (-36.36%)
Mutual labels:  twitch, chatbot
Pocket-Plays-for-Twitch
Open source Twitch client for Android
Stars: ✭ 55 (+66.67%)
Mutual labels:  twitch, twitch-tv
twitch-vod-chat
No description or website provided.
Stars: ✭ 20 (-39.39%)
Mutual labels:  twitch, twitch-tv
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 (+406.06%)
Mutual labels:  twitch, twitch-bot
meme-box
Manage and trigger media in OBS as a browser source
Stars: ✭ 82 (+148.48%)
Mutual labels:  twitch, twitch-api

Simple Bot Build status FOSSA Status

Custom chat bot for Twitch TV

This is an open-source console application with a .NET Core Web API that will benefit anyone who wants to have a foundation of making their own Twitch bot. This is primarly written in C#/SQL Server using an Azure SQL database from Microsoft. Currently, this bot is not end-user friendly because I'm concentrating on the logic of the bot first.

For developers, please read further down for details on manually setting a dev configuration so the information is always saved.

Check out the wiki for the full list of commands by clicking here!

The bot itself is an account on Twitch that I have made in order to have a custom bot name.

For a development environment (testing), create an AppConfigSecrets.config in the same folder as App.config. If you have any issues setting up this bot, please look further below for possible solutions.

Twitch Chat OAuth Password Generator

The chat bot needs access to the IRC chat in order to communicate with the broadcaster and their viewers.

While you're signed into the chat bot account on Twitch, connect to the Twitch Chat OAuth Password Generator site and grab the oauth:XXXXXXXXXXXXXX string for the twitchOAuth config variable.

Twitch OAuth Implicit Access Token

In order for the chat bot to run correctly, we need a few permissions:

  • channel:manage:broadcast
  • channel:read:subscriptions
  • moderation:read
  • user:read:email

For more information on the permissions above, please refer to the scope documentation here.

NOTE: You'll need to add your own Client-ID since this will be based on a proxy Twitch account for the chat bot. Also, we will be utilizing http://localhost for development purposes.

This is the "complete" request URL you'll paste into your browser and allow the chat bot access to your channel.

https://id.twitch.tv/oauth2/authorize?client_id=<client id goes here>&redirect_uri=http://localhost&response_type=token&scope=user:read:email+channel:read:subscriptions+channel:manage:broadcast+moderation:read+user:read:subscriptions

This is the "complete" response URL you'll see in your browser once you authenticate implicitly. Copy the access token from the response URL and paste it into the twitchAccessToken config variable.

http://localhost/#access_token=<copy access token from here>&scope=<scopes assigned from above>&token_type=bearer

For further documentation on "OAuth Implicit Code Flow", please refer to this link here.

AppConfigSecrets.config

<TwitchBotConfiguration 
    botName="" 
    broadcaster="" 
    currencyType=""
    discordServerName=""
    discordToken=""
    enableDisplaySong="false"
    enableTweets="false" 
    libVLCAudioOutputDevice=""
    regularFollowerHours="30"
    spotifyClientId=""
    spotifyRedirectUri=""
    streamLatency="10" 
    twitchBotApiLink=""
    twitchOAuth="" 
    twitchClientId=""
    twitchAccessToken="" 
    twitterConsumerKey="" 
    twitterConsumerSecret=""
    twitterAccessToken="" 
    twitterAccessSecret="" 
    youTubeClientId="" 
    youTubeClientSecret=""
    youTubeBroadcasterPlaylistId=""
    youTubeBroadcasterPlaylistName="" />

Set file to copy-if-newer so it's included in the compilation. For production, this file is not needed and the bot will ask for configuration on first run

Spotify Example Setup

Go to the Spotify Developer Dashboard and create a new app with these settings below:

  • Website:
    • http://localhost:5000
  • Redirect URL:
    • http://localhost:5000/callback

Of course if you're using your own web server, replace localhost with your domain. Here we're using HTTP for local reasons. Always use HTTPS outside of a local environment.

Possible Setup Issues:

  • IIS HTTP Error 404.11 - Not Found The request filtering module is configured to deny a request that contains a double escape sequence

Host Self-Contained ASP.NET Core Web API on Windows with IIS

Scaffold Commands

In case if you need to scaffold anything, here are some commands that may be useful

Models and DbContext

This is a single-line command using the "Package Manager Console" in Visual Studio that allows you to generate ALL of the models and the DbContext class.

Scaffold-DbContext 'Data Source=;Initial Catalog=;User ID=;Password=;' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -ContextDir Context

If you only need the model and context of a SINGLE table, here's the single-line command for that.

Scaffold-DbContext 'Data Source=;Initial Catalog=;User ID=;Password=;' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -ContextDir Context -T <TABLE_NAME_HERE>
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].