2025-02-12 09:20:14 +01:00
2025-02-12 09:20:14 +01:00
2025-02-12 09:20:14 +01:00
2025-02-12 09:20:14 +01:00
2025-02-12 09:17:10 +01:00
2025-02-12 09:20:14 +01:00
2025-02-12 09:19:56 +01:00

🎥 Twitch Watchtime Bot

A Twitch Chat Bot that tracks viewers' watch time, awards points, and manages a blacklist! 🚀


🛠 Features

Track Watch Time - Logs viewer time while the stream is live.
Award Points - Gives points for every minute watched.
Blacklist Management - Prevents certain users from earning time/points.
Twitch API Integration - Checks if the stream is online.
MySQL Database - Stores watch time and blacklist data.


📦 Installation

1 Clone the Repository

git clone https://github.com/noahpombas-dev/twitch-watchtime-bot.git
cd twitch-watchtime-bot

2 Install Dependencies

npm install

3 Configure Environment Variables

Create a .env file and add your Twitch and MySQL credentials.

Example .env File:

# Twitch API Credentials
TWITCH_CLIENT_ID=your_client_id
TWITCH_CLIENT_SECRET=your_client_secret
TWITCH_OAUTH=oauth:your_oauth_token
TWITCH_ACCESS_TOKEN=your_access_token
TWITCH_USERNAME=your_twitch_username
TWITCH_CHANNEL=your_twitch_channel

# MySQL Database Credentials
DB_HOST=your_database_host
DB_USER=your_database_user
DB_NAME=your_database_name
DB_PASSWORD=your_database_password

🔗 Get your Twitch API keys here: Twitch Developer Console
🔑 Generate an OAuth Token here: Twitch Token Generator


🚀 Running the Bot

node index.js

If everything is set up correctly, the bot will connect to Twitch chat and begin tracking watch time! 🎉


🎮 Commands

Command Description
!watchtime Shows your total watch time.
!addblacklist <username> Adds a user to the blacklist. 🚫
!removeblacklist <username> Removes a user from the blacklist.
!listblacklist Lists all blacklisted users. 📜

🛢 Database Structure

This bot uses MySQL to store viewer watch times and blacklisted users. Run the following SQL script to create the required tables:

CREATE TABLE watch_time (
  id INT AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(255) UNIQUE NOT NULL,
  session_start TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  last_seen TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  total_watch_time INT DEFAULT 0,
  points INT DEFAULT 0
);

CREATE TABLE blacklist_users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(255) UNIQUE NOT NULL
);

🤝 Contributing

Want to improve the bot? Fork the repo and submit a pull request! 🚀


📜 License

This project is open-source and licensed under the MIT License. 📝

Description
A Twitch Chat Bot that tracks viewers' watch time, awards points, and manages a blacklist! 🚀
Readme MIT 33 KiB
Languages
JavaScript 100%