{"id":18780573,"url":"https://github.com/codelinered/twitch-chatbot","last_synced_at":"2026-02-26T01:38:02.871Z","repository":{"id":54520069,"uuid":"241167996","full_name":"CodelineRed/twitch-chatbot","owner":"CodelineRed","description":"Twitch Chatbot made with Vue Skeleton","archived":false,"fork":false,"pushed_at":"2024-04-14T11:10:51.000Z","size":87407,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T02:51:20.740Z","etag":null,"topics":["bootstrap","fontawesome","jquery","node","twitch","twitch-api","vue","vuejs","web-gui","websocket"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CodelineRed.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-17T17:30:36.000Z","updated_at":"2023-11-06T20:49:57.000Z","dependencies_parsed_at":"2023-01-28T13:03:34.099Z","dependency_job_id":"f59fe7e9-0e2d-49ee-88a1-e67fb6e8c91c","html_url":"https://github.com/CodelineRed/twitch-chatbot","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodelineRed%2Ftwitch-chatbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodelineRed%2Ftwitch-chatbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodelineRed%2Ftwitch-chatbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodelineRed%2Ftwitch-chatbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodelineRed","download_url":"https://codeload.github.com/CodelineRed/twitch-chatbot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248705551,"owners_count":21148550,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap","fontawesome","jquery","node","twitch","twitch-api","vue","vuejs","web-gui","websocket"],"created_at":"2024-11-07T20:27:11.896Z","updated_at":"2026-02-26T01:38:02.843Z","avatar_url":"https://github.com/CodelineRed.png","language":"JavaScript","readme":"# Twitch Chatbot - CodelineRed\n\nVisit [screenshots](https://github.com/CodelineRed/twitch-chatbot/tree/main/screenshots) for an inside look.\n\nThis application based on [Vue Skeleton](https://github.com/CodelineRed/vue-skeleton/tree/1.x) (1.x).\n\n**_This software is meant to be installed on your local machine. If you want to install on a public web server, please secure `public` folder by `.htpasswd` or something similar._**\n\n## Table of contents\n- [Included Third Party Code](#included)\n- Install Guides\n    - [Install Production Build (Recommended)](#install-production-build-recommended)\n    - [Install Main/ Develop Build](#install-main-develop-build)\n    - [Install with Docker (optional)](#install-with-docker-optional)\n- [`chatbot.js`](#chatbotjs-options)\n- [Project Commands](#project-commands)\n- [Ports](#ports)\n- [`chatbot.json`](#chatbotjson)\n- [`gulpfile.json`](#gulpfilejson)\n- [Chatbot Commands](#chatbot-commands)\n    - [Chatbot Commands for Streamer and Moderators](#chatbot-commands-for-streamer-and-moderators)\n    - [Custom Command Options for Streamer and Moderators](#custom-command-options-for-streamer-and-moderators)\n    - [Bot List Options for Streamer and Moderators](#bot-list-options-for-streamer-and-moderators)\n- [Web UI Features](#web-ui-features)\n    - [Chat](#chat)\n    - [Commands](#commands)\n    - [Custom Commands](#custom-commands)\n    - [Counter](#counter)\n    - [Playlist](#playlist)\n    - [Poll](#poll)\n    - [Raffle](#raffle)\n    - [Bots](#bots)\n    - [Statistics](#statistics)\n- [`import-videos-folder.js`](#import-videos-folderjs-options)\n- [`migration.js`](#migrationjs-options)\n- [Localization](#localization)\n- [Links](#links)\n- [Audio Files](#audio-files)\n- [Known Issues](#known-issues)\n\n## Included\n- [jQuery 3](http://jquery.com)\n- [Bootstrap 4](https://getbootstrap.com)\n- [Font Awesome 5](https://fontawesome.com)\n- [LazyLoad 17](https://www.andreaverlicchi.eu/vanilla-lazyload/)\n- [CSS User Agent 2](https://www.npmjs.com/package/cssuseragent)\n- [Moment 2](https://momentjs.com/docs/)\n- [Datatables 1](https://datatables.net)\n- [Sqlite3 5](https://www.npmjs.com/package/sqlite3)\n- [Vue 2](https://vuejs.org/)\n- [Vue Router 3](https://router.vuejs.org/)\n- [Vue i18n 8](https://kazupon.github.io/vue-i18n/)\n- [Vue Datetime Picker 2](https://github.com/chronotruck/vue-ctk-date-time-picker)\n- [Vue SFC 1](https://github.com/nfplee/gulp-vue-single-file-component)\n\n## Install Production Build (Recommended)\n### Required\n- [Node.js](http://nodejs.org/en/download/) \u003e= 12.20\n- [npm](http://www.npmjs.com/get-npm) `npm i npm@latest -g`\n\nOpen console on your OS and navigate to the place where you want to install the project.\n\n### With Composer\n````shell\nphp composer create-project --ignore-platform-reqs --no-dev codelinered/twitch-chatbot twitch-chatbot \"dev-production\"\ncd twitch-chatbot\nnpm i --only=prod\n````\n\nAdd username, tmiToken, your channel and other channels to `src/app/chatbot.json`\n\n````shell\nnode migration.js\nnode chatbot.js\n````\n\n### With GIT\n````shell\ngit clone https://github.com/CodelineRed/twitch-chatbot.git\ncd twitch-chatbot\ngit checkout production\nnpm i --only=prod\n````\n\nAdd username, tmiToken, your channel and other channels to `src/app/chatbot.json`\n\n````shell\nnode migration.js\nnode chatbot.js\n````\n\n### With ZIP\n\nUnix\n\n````shell\nwget -O tcb-prod.zip https://github.com/CodelineRed/twitch-chatbot/archive/production.zip\nunzip tcb-prod.zip\n````\n\nWindows 10+\n\n````shell\ncurl -L -o tcb-prod.zip https://github.com/CodelineRed/twitch-chatbot/archive/production.zip\ntar -xf tcb-prod.zip\n````\n\nAll OS\n\n````shell\ncd twitch-chatbot-production\nnpm i --only=prod\n````\n\nAdd username, tmiToken, your channel and other channels to `src/app/chatbot.json`\n\n````shell\nnode migration.js\nnode chatbot.js\n````\n\n[Generate tmiToken](https://twitchapps.com/tmi/) and click on \"Connect\".\u003cbr\u003e\nIf you need PHP, you have to go to [Install with Docker](#install-with-docker-optional).\n\n## Install Main/ Develop Build\n### Required\n- [Node.js](http://nodejs.org/en/download/) \u003e= 12.20\n- [npm](http://www.npmjs.com/get-npm) `npm i npm@latest -g`\n- [gulp-cli](https://www.npmjs.com/package/gulp-cli) `npm i gulp-cli@latest -g`\n\nOpen 2 consoles on your OS and navigate to the place where you want to install the project.\n\n### With Composer\n````shell\nphp composer create-project --ignore-platform-reqs codelinered/twitch-chatbot twitch-chatbot\ncd twitch-chatbot\nnpm i\ngulp build\n````\n\nAdd username, tmiToken, your channel and other channels to `src/app/chatbot.json`\n\n````shell\nnode migration.js\nnode chatbot.js\n````\n\nin 2nd console\n\n````shell\ngulp\n````\n\n### With GIT\n````shell\ngit clone https://github.com/CodelineRed/twitch-chatbot.git\ncd twitch-chatbot\ngit checkout main\nnpm i\ngulp build\n````\n\nAdd username, tmiToken, your channel and other channels to `src/app/chatbot.json`\n\n````shell\nnode migration.js\nnode chatbot.js\n````\n\nin 2nd console\n\n````shell\ngulp\n````\n\n### With ZIP\n\nUnix\n\n````shell\nwget -O tcb-main.zip https://github.com/CodelineRed/twitch-chatbot/archive/main.zip\nunzip tcb-main.zip\n````\n\nWindows 10+\n\n````shell\ncurl -L -o tcb-main.zip https://github.com/CodelineRed/twitch-chatbot/archive/main.zip\ntar -xf tcb-main.zip\n````\n\nAll OS\n\n````shell\ncd twitch-chatbot-main\nnpm i\ngulp build\n````\n\nAdd username, tmiToken, your channel and other channels to `src/app/chatbot.json`\n\n````shell\nnode migration.js\nnode chatbot.js\n````\n\nin 2nd console\n\n````shell\ngulp\n````\n[Generate tmiToken](https://twitchapps.com/tmi/) and click on \"Connect\".\u003cbr\u003e\nOpen [localhost:3000](http://localhost:3000) for Web UI.\n\n## Install with Docker (optional)\n### Required\n- [Docker](https://www.docker.com/)\n- [Node.js](http://nodejs.org/en/download/) \u003e= 12.20\n- [npm](http://www.npmjs.com/get-npm) `npm i npm@latest -g`\n\nOpen console on your OS and navigate to the unzipped or cloned app folder.\n\nUnix\n\n````shell\nsystemctl docker start\ndocker-compose up -d\ndocker run --rm --interactive --tty --volume $PWD:/app composer install --no-dev\ndocker exec -ti twitch-chatbot php /var/www/vendor/vrana/adminer/compile.php\n-- Ignore error messages --\nmv adminer-4.6.2.php ./adminer\n````\n\nWindows 10+\n\n````shell\n\"c:\\path\\to\\Docker Desktop.exe\"\ndocker-compose up -d\ndocker run --rm --interactive --tty --volume %cd%:/app composer install --no-dev\ndocker exec -ti twitch-chatbot php /var/www/vendor/vrana/adminer/compile.php\n-- Ignore error messages --\nmove adminer-4.6.2.php ./adminer\n````\n\nAll OS\n\n````shell\n$ npm i\n$ gulp build\n$ node migration.js\n$ node chatbot.js\n````\n\n| Login    | [Web UI](http://localhost:3050) | [Adminer](http://localhost:3050/adminer.php) |\n|----------|---------------------------------|----------------------------------------------|\n| Server   | localhost:3050                  | 127.0.0.1                                    |\n| Username | -                               | -                                            |\n| Password | -                               | -                                            |\n| Database | -                               | ../data/chatbot.sqlite3                      |\n\n## [`chatbot.js`](https://github.com/CodelineRed/twitch-chatbot/blob/main/chatbot.js) Options\n| Option              | Description                                      |\n|---------------------|--------------------------------------------------|\n| --help, -h          | Shows list of options                            |\n| --version           | Show version number                              |\n| --recordchat, --rc  | Record chat messages in database (default: true) |\n| --showversion, --sv | Display version text in console (default: true)  |\n| --intro, -i         | Display intro in console (default: true)         |\n\n## Project Commands\n|                     | Description                                                                                                                    |\n|---------------------|--------------------------------------------------------------------------------------------------------------------------------|\n| gulp                | watch files and start [BrowserSync](https://www.npmjs.com/package/browser-sync)                                                |\n| gulp build          | executes following tasks: cleanUp, scss, scssLint, js, jsLint, jsRequire, json, img, font, svg, vue, vueLint, vueJs, vueJsLint |\n| gulp lintAll        | executes following tasks: scssLint, jsLint, vueJsLint, vueLint, chatbotLint                                                    |\n| gulp cleanUp        | clean up public folder                                                                                                         |\n| gulp font           | copy font files                                                                                                                |\n| gulp img            | copy and compress images                                                                                                       |\n| gulp js             | uglify, minify and concat js files                                                                                             |\n| gulp jsLint         | checks js follows [lint rules](https://github.com/CodelineRed/twitch-chatbot/blob/main/src/app/js-lint.json)                   | \n| gulp jsRequire      | copy, uglify and rename files for requirejs                                                                                    |\n| gulp json           | copy and minify json files                                                                                                     |\n| gulp scss           | compile, minify and concat scss files                                                                                          |\n| gulp scssLint       | checks scss follows [lint rules](https://github.com/CodelineRed/twitch-chatbot/blob/main/src/app/scss-lint.json)               |\n| gulp svg            | copy and compress svg files                                                                                                    |\n| gulp vue            | transpile vue files                                                                                                            |\n| gulp vueLint        | checks vue follows [lint rules](https://github.com/CodelineRed/twitch-chatbot/blob/main/src/app/vue-lint.json)                 |\n| gulp vueJs          | transpile vue js files                                                                                                         |\n| gulp vueJsLint      | checks vue js follows [lint rules](https://github.com/CodelineRed/twitch-chatbot/blob/main/src/app/import-lint.json)           |\n| gulp chatbotLint    | checks chatbot js follows [lint rules](https://github.com/CodelineRed/twitch-chatbot/blob/main/src/app/import-lint.json)       |\n| gulp watch          | watch scss, js, json, vue, chatbot, img, font and svg files                                                                    |\n\n## Ports\n|                     | Description                                                                                                                                          |\n|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|\n| 3000                | Web UI with HTML ([BrowserSync](https://www.npmjs.com/package/browser-sync))                                                                         |\n| 3001                | [BrowserSync UI](https://www.npmjs.com/package/browser-sync)                                                                                         |\n| 3050                | Web UI with PHP/ [twitch-chatbot](https://github.com/CodelineRed/twitch-chatbot/blob/main/docker-compose.yml) (Docker Container)                     |\n| 3060                | Host for [twitch-chatbot-videos-folder](https://github.com/CodelineRed/twitch-chatbot/blob/main/docker-compose.videos-folder.yml) (Docker Container) |\n| 3100                | Main Window (Skateboard Socket for Web UI)                                                                                                           |\n| 3110                | Chat Window (Skateboard Socket for Web UI)                                                                                                           |\n| 3120                | Player Window (Skateboard Socket for Web UI)                                                                                                         |\n| 3130                | Raffle Window (Skateboard Socket for Web UI)                                                                                                         |\n| 3140                | Poll Window (Skateboard Socket for Web UI)                                                                                                           |\n| 3150                | Counter Window (Skateboard Socket for Web UI)                                                                                                        |\n\n## [`chatbot.json`](https://github.com/CodelineRed/twitch-chatbot/blob/main/src/app/chatbot.dist.json)\n|                     | Description                                                                |\n|---------------------|----------------------------------------------------------------------------|\n| username            | Required - Twitch User Name                                                |\n| tmiToken            | Required - [Twitch TMI Token](https://twitchapps.com/tmi/)                 |\n| clientIdToken       | Optional - [Twitch Client ID Token](https://dev.twitch.tv/) (is presetted) |\n| youtubeToken        | Optional - [YouTube API Token](https://console.developers.google.com)      |\n| videosFolder        | Optional - Absolute path to videos folder with trailing slash              |\n| backup              | Optional - Daily backup yes or no                                          |\n| performance         | Optional - 0 = low / 1 = high                                              |\n| locale              | Required - German (de) and English (en) are presetted                      |\n| channels            | Required - List of Channels to connect                                     |\n\n## [`gulpfile.json`](https://github.com/CodelineRed/twitch-chatbot/blob/main/src/app/gulpfile.dist.json)\n|                     | Description                                                                                                                     |\n|---------------------|---------------------------------------------------------------------------------------------------------------------------------|\n| browserSyncConfig   | Required - Defines which config is used for [BrowserSync](https://www.npmjs.com/package/browser-sync) (default: browserSyncDev) |\n| sourcePath          | Required - Path to raw files (default: src/)                                                                                    |\n| publicPath          | Required - Path to transpiled files (default: public/)                                                                          |\n| env                 | Required - Environment dev, test or prod (default: dev)                                                                         |\n\n## Chatbot Commands\n| Name                | Command                                                                                                                  |\n|---------------------|--------------------------------------------------------------------------------------------------------------------------|\n| about               | !about, !chatbot, !cb, !bug, !bugs, !help                                                                                |\n| commands            | !commands, !cc                                                                                                           |\n| counter             | counter increased if users counts from 1 - X without interruption                                                        |\n| diceDuel            | !dd6 @User or !dd56w6 @User - first digit can be from 1 - 99 and second from 1 - 9 (automatically removed after 120 sec) |\n| diceDuelAccept      | !dda - accepting a dice duel request                                                                                     |\n| playlistInfo        | !plan, !program, !playlist, !video                                                                                       |\n| poll                | !vote 1 - X                                                                                                              |\n| raffle              | custom keyword (default: !raffle)                                                                                        |\n| rollDice            | !d6 or !d56w6 - first digit can be from 1 - 99 and second from 1 - 9                                                     |\n| customCommand       | wrapper for all custom commands                                                                                          |\n| Mention User        | (NEW) !yourcommand @UserName                                                                                             |\n\n## Chatbot Commands for Streamer and Moderators\n| Name                    | Command                                                                                |\n|-------------------------|----------------------------------------------------------------------------------------|\n| Custom Command          | (NEW) !yourcommand [Hello World!] [OPTIONS]                                            |\n| Bot List                | (NEW) !bots [BotName] [OPTIONS]                                                        |\n| ~~addBot~~              | (Deprecated) !addbot BotName                                                           |\n| ~~removeBot~~           | (Deprecated) !rmbot BotName                                                            |\n| ~~addCustomCommand~~    | (Deprecated) !addcc !command[@cooldown] lorem ipsum e.g. !addcc !hw@10 hello world     |\n| ~~removeCustomCommand~~ | (Deprecated) !rmcc !command                                                            |\n| ~~toggleCustomCommand~~ | (Deprecated) !tglcc !command                                                           |\n| ~~updateCustomCommand~~ | (Deprecated) !updcc !command[@cooldown] lorem ipsum dolor e.g. !updcc !hw Hello World! |\n\n## Custom Command Options for Streamer and Moderators\n| Option              | Description                                                                                  |\n|---------------------|----------------------------------------------------------------------------------------------|\n| --on                | Enable command for all users (default: true, if is a new command)                            |\n| --off               | Disable command for all users, but not streamer and mods (default: false)                    |\n| --cd 30             | Cooldown for all users, but not streamer and mods (default: 30 seconds, if is a new command) |\n| --st                | Show command status in chat (default: false)                                                 |\n| --rm                | Remove command (default: false)                                                                                                  |\n\n## Bot List Options for Streamer and Moderators\n| Option              | Description                            |\n|---------------------|----------------------------------------|\n| --tc                | Show bot list to chat (default: false) |\n| --rm                | Remove bot (default: false)            |\n\n## Web UI Features\n### Chat\n- Timestamp\n- Badges\n- Custom User Color\n- \"/me\" Messages in full color and italic style\n- Cheers\n- Subs, Resubs, Sub Gifts (random and specific), Gift Upgrades\n- Bans, Timeouts, Deletes\n- Now Hosting, Hosted By, Raided By, Unhost\n- Clickable Links\n- Twitch Emotes\n- BetterTTV Emotes\n- FrankerFaceZ Emotes\n- Popout URL `/channel/[channel]/chat` to use browser source in OBS (No pixel recommendation)\n\n### Commands\n- Cooldown\n- Active State\n- Last Execution Time\n\n### Custom Commands\n- Add Command (only in chat)\n- Remove Command\n- Toggle Command\n- Update Command (only in chat)\n\n### Counter\n- Popout URL `/channel/[channel]/counter` to use browser source in OBS (Pixel recommendation: 400x400px)\n\n### Playlist\n- Play Local MP4 files with `localhost:3060` domain. (See [`docker-compose.videos-folder.yml`](https://github.com/CodelineRed/twitch-chatbot/blob/main/docker-compose.videos-folder.yml))\n- Play Twitch Clips and Videos (past broadcasts, highlights and video uploads)\n- Play YouTube Videos\n- Add Video\n- Edit Video\n- Skip Videos\n- Move Videos\n- Remove Video\n- Remove Played Videos\n- Remove Skipped Videos\n- Add Playlist\n- All Playlists\n- Edit Playlist\n- Switch Playlist\n- Merge Playlists\n- Remove Playlist\n- Reset Playlist\n- Clear Playlist\n- playlistInfo Command\n- Popout URL `/channel/[channel]/player` to use browser source in OBS (Pixel recommendation: 1920x1080px)\n- Video name overlay in player\n- Autofill video name, sub name and duration (Depence on `videosFolder`, `youtubeToken` and `clientIdToken` settings)\n- Change stream title and / or game dynamic (If at least one Twitch account is connected to \"Insanity Meets - Chatbot\" App on Twitch)\n\n### Autofill\n| Player        | Name                               | Sub Name                | Duration |\n|---------------|------------------------------------|-------------------------|----------|\n| Local         | Yes\u003csup\u003e1\u003c/sup\u003e (Parsed File Name) | Yes (Modification Date) | Yes      |\n| Twitch Clip   | Yes (Clip Title)                   | Yes (Game/ Category)    | Yes      |\n| Twitch Video  | Yes (Video Title)                  | Yes (Game/ Category)    | Yes      |\n| YouTube Video | Yes (Video Title)                  | Yes (First Video Tag)   | Yes      |\n\n\u003csup\u003e1\u003c/sup\u003e `example_video-2020.mp4` parsed to `Example Video - 2020`\n\n### Poll\n- Start Poll\n- Close Poll\n- Remove Poll\n- Copy Poll to Form\n- All Polls Modal\n- Announce Poll to Chat Button\n- Result to Chat Button\n- Animate Winner (If multiple options are equal than a random winner will be picked)\n- Play Audio for Winner (Audio is only played in popout window)\n- Play Audio loop for Poll (Audio is only played in popout window)\n- Announce Winner to Chat\n- Multiple Choice Yes/No\n- Combine Poll with Raffle\n- Start Datetime\n- End Datetime\n- Datime Picker\n- Popout URL `/channel/[channel]/poll` to use browser source in OBS (Pixel recommendation: 1000x563px by max. 6 options)\n\n### Raffle\n- Start Raffle\n- Close Raffle\n- Remove Raffle\n- Copy Raffle to Form\n- All Raffles Modal\n- Announce Raffle to Chat Button\n- Result to Chat Button\n- Animate Winner\n- Play Audio for Winner (Audio is only played in popout window)\n- Play Audio loop for Poll (Audio is only played in popout window)\n- Announce Winner to Chat\n- Custom Keyword\n- Multiplicators\n- Start Datetime\n- End Datetime\n- Datime Picker\n- Popout URL `/channel/[channel]/raffle` to use browser source in OBS (Pixel recommendation: 1000x563px)\n\n### Bots\n- Own [badge](https://fontawesome.com/icons/robot?style=solid) in Chat\n- Preset of 5 Bots (Mod4YouBot, Moobot, Nightbot, StreamElements, Streamlabs)\n- Bot autofilling with BetterTTV API\n\n### Statistics\n- Display Viewer Count as Chart\n- Top 15 Emotes All\n- Top 15 Twitch Emotes\n- Top 15 BTTV Emotes\n- Top 15 FFZ Emotes\n- Top 15 Chatters\n- Top 15 Hashtags\n- Top 15 Commands\n- Amount of Subs\n- Amount of New Subs\n- Amount of New Paid Subs\n- Amount of New Prime Subs\n- Amount of Gifted Directly Subs\n- Amount of Gifted Random Subs\n- Amount of Resubs\n- Amount of Paid Resubs\n- Amount of Prime Resubs\n- Amount of Purges\n- Amount of Deleted Messages\n- Amount of Timeout Meassages\n- Amount of Timeout Users\n- Amount of Banned Users\n- Amount of New Users\n- Amount of All Users\n- Amount of Chat Messages\n- Amount of Used Emotes\n- Amount of Cheers\n- Amount of Bits\n- Viewer Minimum\n- Viewer Maximum\n- Viewer Average\n\n## [`import-videos-folder.js`](https://github.com/CodelineRed/twitch-chatbot/blob/main/import-videos-folder.js) Options\n| Option              | Description                                                                |\n|---------------------|----------------------------------------------------------------------------|\n| --help, -h          | Shows list of options                                                      |\n| --version           | Show version number                                                        |\n| --backup, -b        | Optional - Create an additional backup (default: false)                    |\n| --channel, -c       | Required - Channel name which owns the videos                              |\n| --identity, -i      | Optional - Channel id / Room id. (required if channel is not in database)  |\n| --locale, -l        | Optional - Locale to use in date generation and log messages (default: en) |\n| --log               | Optional - Show logs in CLI (default: true)                                |\n| --subname, --sn     | Optional - Add date as sub name (default: true)                            |\n\nExample execution: `node import-videos-folder.js -c CodelineRed`\n\n### Import Requirements:\n- `videosFolder` in [`chatbot.json`](https://github.com/CodelineRed/twitch-chatbot/blob/main/src/app/chatbot.dist.json) points to existing folder\n- each folder under `videosFolder` corresponds to a playlist\n- only MP4 files are allowed\n\nThe Script only imports videos which are not in the database.\n\n## [`migration.js`](https://github.com/CodelineRed/twitch-chatbot/blob/main/migration.js) Options\n| Option              | Description                                                             |\n|---------------------|-------------------------------------------------------------------------|\n| --help, -h          | Shows list of options                                                   |\n| --version           | Show version number                                                     |\n| --direction, -d     | Optional - Migration direction (default: up)                            |\n| --file, -f          | Optional - Execute one specific migration file (e.g.: -f version-1.0.0) |\n| --locale, -l        | Optional - Locale for log messages (default: en)                        |\n| --log               | Optional - Show logs in CLI (default: true)                             |\n\nExample execution: `node migration.js -d up`\n\n## Localization\n- Web UI: [`i18n-locales.js`](https://github.com/CodelineRed/twitch-chatbot/blob/main/src/js/vue/app/i18n-locales.js)\n- Web UI: [`langswitch.vue`](https://github.com/CodelineRed/twitch-chatbot/blob/main/src/js/vue/component/partial/langswitch.vue)\n- Node: [`locales.js`](https://github.com/CodelineRed/twitch-chatbot/blob/main/src/js/chatbot/locales.js)\n\n## Links\n- [Twitch Messaging Interface](https://github.com/tmijs/docs/tree/gh-pages/_posts)\n- [Twitch TMI Token](https://twitchapps.com/tmi/)\n- [Twitch API Token](https://dev.twitch.tv/)\n- [Twitch API Reference](https://dev.twitch.tv/docs/api/reference)\n- [YouTube API Token](https://console.developers.google.com)\n- [BetterTTV API](https://github.com/pajbot/pajbot/issues/495)\n- [FrankerFaceZ API](https://www.frankerfacez.com/developers)\n- [Twitch Clip API](https://dev.twitch.tv/docs/v5/reference/clips#get-clip)\n- [Twitch Clip Embed](https://dev.twitch.tv/docs/embed/video-and-clips/#non-interactive-iframes-for-clips)\n- [Twitch Video Embed](https://dev.twitch.tv/docs/embed/video-and-clips/#non-interactive-inline-frames-for-live-streams-and-vods)\n- [ESLint Js Rules](https://eslint.org/docs/rules/)\n- [ESLint Vue Rules](https://vuejs.github.io/eslint-plugin-vue/rules/)\n- [ESLint Import Rules](https://github.com/benmosher/eslint-plugin-import/tree/main/docs/rules)\n- [Sass Lint Rules](https://github.com/sasstools/sass-lint/tree/develop/docs/rules)\n- [Vue SFC](https://github.com/nfplee/gulp-vue-single-file-component)\n- [Path to RegExp](https://github.com/pillarjs/path-to-regexp/tree/v1.7.0#parameters)\n- [Moment Parsing (Date Format)](https://momentjs.com/docs/#/parsing/)\n- [SCSS Confetti](https://codepen.io/Event_Horizon/pen/wBKVQN)\n\n## Audio Files\n- Airy by [CodelineRed](https://twitter.com/CodelineRed)\n- Ambi EP by [CodelineRed](https://twitter.com/CodelineRed)\n- [Big Clap](https://freesound.org/people/kellieskitchen/sounds/209991/)\n- Brassy by [CodelineRed](https://twitter.com/CodelineRed)\n- C-Space by [CodelineRed](https://twitter.com/CodelineRed)\n- [Cheering and Clapping](https://freesound.org/people/AlaskaRobotics/sounds/221568/)\n- Ensemble by [CodelineRed](https://twitter.com/CodelineRed)\n- [Fan Fare 1](https://freesound.org/people/Suburbanwizard/sounds/423293/)\n- [Fan Fare 2](https://freesound.org/people/humanoide9000/sounds/466133/)\n- [Fan Fare 3](https://freesound.org/people/plasterbrain/sounds/397355/)\n- [Freedom](https://open.spotify.com/track/659q8BivbeVO80CFSL6TX8?si=UYgxjrv_SSKNPqoW6KMpVQ) by [Dracon](https://twitter.com/DraconTV)\n- [Hope](https://open.spotify.com/track/4U23RsK09mQSeD3X0cu9Nl?si=rcsT2PESTP-7eHT_ESZaaA) by [Dracon](https://twitter.com/DraconTV)\n- [Memory Palace](https://open.spotify.com/track/1h2TunOaZurxJ8SQi8mWzk?si=6svWgwWIQ_OUxfs8YP_1Cg) by [Dracon](https://twitter.com/DraconTV)\n- [Peace](https://open.spotify.com/track/0agYShWAvAjEQDVXTQTw5a?si=j9wucASfQAqHdE4-CY0rpw) by [Dracon](https://twitter.com/DraconTV)\n- [Valley](https://open.spotify.com/track/5GzLKIX57SZs36w0mzIqzT?si=wV9KcDdMRlqzeEB9Mo-Cvg) by [Dracon](https://twitter.com/DraconTV)\n- [Voice of Doubt](https://open.spotify.com/track/2GlCtPZGHy26aTWQa0iebD?si=PrFHrX6aSKeDU_pdgRDaLA) by [Dracon](https://twitter.com/DraconTV)\n- [Winner Deep Voice](https://freesound.org/people/dersuperanton/sounds/435878/)\n- [Winner Female Voice](https://freesound.org/people/tim.kahn/sounds/80618/)\n- [Winner Robot Voice](https://freesound.org/people/Ionicsmusic/sounds/196892/)\n\n## Known Issues\n- Sometimes user are not inserted in channel_user_join. This is under investigation.\n- Emotes in Chat component can flicker after new message was added\n- An Emoji followed by a Twitch emote (e.g. 🧡 CoolCat) is wrong interpreted by `emote.encodeTwitch()`\n    - The API sends a wrong `userstate.emotes` object\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodelinered%2Ftwitch-chatbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodelinered%2Ftwitch-chatbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodelinered%2Ftwitch-chatbot/lists"}