Giingu / Enhanced-TTVDropBot

Enhanced Twitch Drop Bot. Automaticlly Farms every Twitch Drop, Point & Subscription available like Rust for you and use custom channels
81 stars 26 forks source link



Discord

Farms automatically Twitch Drops, Points & Subscriptions for you!

Deploy Deploy on Railway Deploy on Google Cloud Run on Repl.it Deploy to Render

Discord

Twitch has recently updated their drop claiming system, now including anti-bot detection. In the meantime, while the community finds a way to bypass it or new methods to claim them efficiently, we suggest you disable AutoClaim.

Don't worry, the bot will still farm the watch time; you will just need to manually claim them!

โ— UPDATE: We found a workaround!

๐Ÿฉน ๐Ÿกข Follow these steps carefully to bypass all issues

@Giingu/Enhanced-TTVDropBot issues @Giingu/Enhanced-TTVDropBot pull requests Giingu/Enhanced-TTVDropBot requests
Discord


TTVDropBot

๐Ÿค” What is this Twitch Bot all about?

๐Ÿ”Ž What is new in this enhanced version?


1๏ธโƒฃ๐Ÿ› ๏ธ Bypass anti-bot for autoclaim

2๏ธโƒฃ๐Ÿ› ๏ธ Work Around for Unable to log in

## โšก **Installation**

Docker

1. Get the bot started ```bash docker run --rm -it ghcr.io/pockysweet/ttvdropbot/ttvdropbot:latest node ./build/index.js --displayless ``` 2. Get your token and then exit the bot with `Ctrl + C`
  • Go to twitch drops dashboard, Here
  • Get a browser addon that can look at cookies, ( Addons: Opera, Chrome, Firefox, Edge )
  • Copy the auth-token and replace TokenFromStep2 in step 3 with your token

    Cookie Token
    Use Token

  • 3. Create the container ```bash docker run -d --name ttvdropbot \ -e ttvdropbot_displayless=true \ -e ttvdropbot_token=TokenFromStep2 \ -e ttvdropbot_games="Sea_of_Thieves Rust Lost_Ark No_Man's_Sky" \ -e ttvdropbot_autoclaim=true \ -e ttvdropbot_autopoints=false \ ghcr.io/Giingu/ttvdropbot/ttvdropbot:latest ``` ------------

    NPM+Git

    0. Install **[GIT](https://github.com/git-guides/install-git)** on your computer
    Learn how to install it [here](https://github.com/git-guides/install-git) 1. Open a terminal (CMD, PowerShell, Shell)
    1.5 Clone the **[Repository](https://github.com/Giingu/Enhanced-TTVDropBot)** using the following command. ```bash git clone https://github.com/Giingu/Enhanced-TTVDropBot ``` 2. Install NPM packages. ```bash cd TTVDropBot/ npm install ``` 3. Run the bot via npm scripts. ```bash npm run start:production OR npm run start:dev ``` ------------

    NPM Only

    0. Download the **[Repository](https://github.com/Giingu/Enhanced-TTVDropBot/releases/download/v1.4.0/Enhanced-TTVDropBot.zip)** & extract it on a folder
    You can download the latest version with the instructions on the image
    Or through our releases by [clicking here](https://github.com/Giingu/Enhanced-TTVDropBot/releases/download/v1.4.0/Enhanced-TTVDropBot.zip) How to download 1. Open a console / terminal (CMD, PowerShell, Shell) and go to the location of the extracted folder. ```bash cd ``` 2. Install NPM packages by using the following command. ```bash npm install ``` 3. Run the bot via npm scripts with these commands. ```bash npm run start:production OR npm run start:dev ``` ## ๐Ÿ“š **How to use the Bot?**

    Step by Step Usage: Twitch Drops

    **1. Step**

    Select the way you want to Log in into your twitch account.

    โš ๏ธ If you cant login directly because of CAPTCHA use the browser method. โš ๏ธ
    โš ๏ธ Only Chromium Browsers are supported like Brave and Chrome . โš ๏ธ

    ![Twitch Drops](https://i.imgur.com/ra3zm1x.png) **2. Step**

    Select Twitch Drops to watch a Twitch Campaign or Custom Channels if you want to add your own channels. Refer to Step by Step Usage: Custom Channels for those.

    ![Twitch Drops](https://i.imgur.com/DRqIkpz.png) **3. Step**

    Select the campaign you want to start watching. If you want to only watch certain campaign and not all refer to Settings: Priority list

    ![Twitch Drops](https://i.imgur.com/CMuV729.png) **4. Step**

    Select the Drop you want to start watching.

    ![Twitch Drops](https://i.imgur.com/DzB5qjX.png) **5. Step**

    ๐ŸŽ‰ Enjoy! You are successfully watching your drop.

    ![Twitch Drops](https://i.imgur.com/iNmvIZc.png)

    Step by Step Usage: Custom Channels

    **1. Step**

    Select Custom Channels to start watching them.

    ![Twitch Drops](https://i.imgur.com/DRqIkpz.png) **2. Step**

    Fill in the needed information to add a Channel. They can always be modified in the customchannel.json

    ![Twitch Drops](https://i.imgur.com/kBabjJL.png) **3. Step**

    Select the Channel you want to start. The bot will switch between the Custom Channels, if one goes offline.

    ![Twitch Drops](https://i.imgur.com/AZt3xpU.png) **4. Step**

    ๐ŸŽ‰ Enjoy! You are successfully watching your Custom Channel.

    ![Twitch Drops](https://i.imgur.com/k95h9Tu.png)

    Step by Step Usage: Heroku

    โš ๏ธ Only Recommended for advanced users. โš ๏ธ

    **1. Step**

    Click on the Deploy to Heroku Button at the top of the Readme

    ![Twitch Drops](https://i.imgur.com/1ll6yjV.png) **2. Step**

    Login if necessary, and choose any app name you want, select your region and click Deploy app
    After that let Heroku go through the build process and then click on Manage App

    ![Twitch Drops](https://i.imgur.com/oIm3m52.png) **3. Step**

    Go to the Resources tab and disable the web dyno and enable the worker instead

    ![Twitch Drops](https://i.imgur.com/5XeKXRC.png) **4. Step**

    Click on more in the top right corner and then on Run console.
    Type in bash and click Run.

    ![Twitch Drops](https://i.imgur.com/Q7mArVd.png) **5. Step**

    Now run the command node ./build/index.js --showtoken in the Terminal.
    Login Directly via command Line, until you see your auth token and copy it.

    ![Twitch Drops](https://i.imgur.com/qfJV0OQ.png) **6. Step**

    Close the Terminal and go to Settings then Reveal Config Vars
    Now type in as key ttvdropbot_token and as value your copied token and click add
    You can find more environment variables here

    ![Twitch Drops](https://i.imgur.com/EnB36ih.png) **7. Step**

    ๐ŸŽ‰ Thats it Enjoy! You are successfully watching.
    To check if its working click on more in the top right corner then view logs.
    Give it some time to start up, and you should see the bot working.

    ![Twitch Drops](https://i.imgur.com/7Jrsojx.png) --- ## ๐Ÿ“ **Settings** Down below you can find the settings Variables and what they do. ### Chromeexe - The path of your Browser: Linux: google-chrome | Windows: C:\Program Files\Google\Chrome\Application\chrome.exe ### UserDataPath - Providing a userdatapath, will give the loginpage the option to use cookies out of your browser. Option not really needed anymore. - You can find the UserdataPath under chrome://version then under Profile Path ### Webhook - The Discord Webhook URL: https://discord.com/api/webhooks/... ### WebHookEvents - Set what events should be send via webhook. - Defaults to: ["requestretry", "claim", "newdrop", "offline", "newgame", "get", "getresult", "progress", "start", "error", "warn", "info"] ### Debug - Will log important values to the console for debugging. ### Displayless - Give the ability to use the bot fully automated with no user input needed. Especially useful for gui-less systems. See [Ubuntu - No Gui](https://github.com/Giingu/Enhanced-TTVDropBot/#ubuntu) ### ForceCustomChannel - Force the bot to watch Custom Channels, only useful for display-less mode. ### ProgressCheckInterval - The time in ms, in what interval the progress should be checked. Recommended is `60000 ms - 60 s` anything under could cause twitch blocking your request. ### RetryDelay - The time in ms, in what interval failed requests should be retried. Recommended is `60000 ms - 60 s` anything under could cause twitch blocking your request. ### WaitforChannels - If set to false the Bot will no longer wait 5 Minutes for new Channels to come online. It will switch to another game instead. ### Prioritylist - A list of Games the bot should watch / prioritize. Only Provide games with active Drop Campaigns in this Format: `["Rust","Fortnite", "Elite: Dangerous"]` - You can get the valid name from: `https://www.twitch.tv/directory` - If provided the bot will only watch the games listed. ### AutoClaim - Allow the bot to autoClaim or not ### AutoPoints - Allow the bot to autoClaim points or not ### LogToFile - Log the Console to a file. ### UseKeepAlive - If activated uses Express to the keepalive the bot useful for stuff like Replit.
    --- ## โœ๏ธ **Start Arguments** All available start Arguments, basically everything which is also in the [settings.json](https://github.com/Giingu/Enhanced-TTVDropBot#-settings) file. ```bash ./Enhanced-TTVDropBot.exe --help Usage: ./Enhanced-TTVDropBot or index.js --arg... Options: --help Show help. [boolean] --version Show version number. [boolean] -c, --chrome The path to your Chrome executable. [string] -u, --userdata The path to your userdata folder location. [string] --webhook, --wh The Discord Webhook URL. [string] --webhookevents Set what events should be send via webhook. [array] -i, --interval The progress interval in ms. [number] --retryinterval, --retry The retry interval in ms. [number] -g, --games The Games the bot should watch. [array] --token Your twitch auth_token. [string] -d, --debug Enable Debug logging. [boolean] --displayless, --dl Enable Displayless mode. [boolean] --forcecustomchannel Force Custom Channels. Only useful for display-less mode. [boolean] --waitforchannels, --waitonline Disable waitforchannels, forcing the bot to not wait for other channels with drops instead switch the game. [boolean] --autoclaim Enable auto claiming drops. [boolean] --autopoints Enable auto collection of points. [boolean] --log Enable logging to file. [boolean] --usekeepalive Enable Express KeepAlive. [boolean] --tray Start app in the tray. [boolean] Examples: --chrome C:path:to:chrome.exe Sets your chrome path. --userdata C:path:to:userdata-folder Sets your userdata path. --webhook https:discord.com:api:webh.... Sets your webhook url. --webhookevents requestretry claim Defaults to the events in this newdrop offline newgame get getresult example provided. progress start error warn info --interval 30000 Sets the progress interval to 30s. --retryinterval 30000 Sets the retry interval to 30s. --games Rust Krunker 'Elite: Dangerous' Sets the Prioritylist to Rust, Krunker and Elite: Dangerous. --token yourkindalongtoken Sets the your current twitch auth token, overwriting any in twitch-session.json. ``` ## โœ๏ธ **Environment variables** All these Start Arguments also work as environment variable: ```bash ttvdropbot_chrome = YourPath ttvdropbot_userdata = YourPath ttvdropbot_webhook = DiscordWebhookURL ttvdropbot_interval = 60000 ttvdropbot_games = Game1 Game2 Game3... โš ๏ธ Black Desert -> Black_Desert โš ๏ธ ttvdropbot_debug = true || false ttvdropbot_displayless = true || false ttvdropbot_forcecustomchannel = true || false ttvdropbot_waitforchannels = true || false ttvdropbot_autoclaim = true || false ttvdropbot_log = true || false ttvdropbot_usekeepalive = true || false ttvdropbot_retryinterval = 60000 ttvdropbot_webhookevents = Event1 Event2 Event3... ttvdropbot_showtoken = true || false Usefull for System were you cant access your twitch-session.json ttvdropbot_token = YourToken ttvdropbot_autopoints = true || false ``` ## ๐Ÿ“˜ Adding Custom Channels
    ![Twitch Drops](https://i.imgur.com/kBabjJL.png) ### Name - The Name can be any String like `Rainbow Six, Best Ch ever etc...` ### Twitch Url - The Url is very important, never use the same Url twice, it has to be a valid Channel link and has always to start with `https://www.twitch.tv/`. Example for a Valid Url: `https://www.twitch.tv/rainbow6tw` ### How the Channel should be Watched `Watch until the time runs out:` - Watches the channel until the left time reaches 0 then switches to other custom channel. `Watch indefinitely:` - Watches the channel until it goes offline, then switches. ### Auto Points - Pretty simple, should the bot farm Points or not. ### Editing already Added Channel's - You can always edit Channel's which are already added in the [CustomChannels.json]('https://github.com/Giingu/Enhanced-TTVDropBot/#example-customchannelsjson'). --- ## ๐Ÿ“„ Json Files Examples ### Example Settings.json ```json { "Chromeexe": "", "UserDataPath": "", "WebHookURL": "", "WebHookEvents": [], "debug": false, "displayless": false, "ProgressCheckInterval": 60000, "RetryDelay": 60000, "WaitforChannels": true, "Prioritylist": [], "AutoClaim": true, "LogToFile": true, "ForceCustomChannel": false, "UseKeepAlive": false "AutoPoints": false, } ``` ### Example CustomChannels.json ```json [ { "Name": "tarik", "TTVLink": "https://www.twitch.tv/tarik", "WatchType": "Watch until time runs out", "Time": "50" } ] ``` ### Example Twitch Session ```json [ { "name": "auth-token", "value": "yourtoken" } ] ``` โš ๏ธ _Never share your **Token** with anyone, because it gives full access to your account_ โš ๏ธ --- ## ๐ŸŽ‰ Enjoy the bot and hopefully its helpful! [![GitHub's followers](https://img.shields.io/github/followers/Giingu.svg?style=social)](https://github.com/Giingu) [![GitHub stars](https://img.shields.io/github/stars/Giingu/Enhanced-TTVDropBot.svg?style=social)](https://github.com/Giingu/Enhanced-TTVDropBot/stargazers) [![GitHub watchers](https://img.shields.io/github/watchers/Giingu/Enhanced-TTVDropBot.svg?style=social)](https://github.com/Giingu/Enhanced-TTVDropBot/watchers) [![GitHub forks](https://img.shields.io/github/forks/Giingu/Enhanced-TTVDropBot.svg?style=social)](https://github.com/Giingu/Enhanced-TTVDropBot/network/members) If you like my work feel free to buy me a coffee. โ˜• [!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://ko-fi.com/Giingu) Have fun and Enjoy! ๐Ÿ˜ƒ --- ## ๐Ÿฐ Contact **_Quickest Response:_**
    Discord Server: https://discord.gg/rV26FZ2upF **_Slow Response:_**
    Discord: - Vyper#1964 > Distributed under the MIT License. See LICENSE for more information.โš ๏ธ _Modified with a lot of โค๏ธโค๏ธ by **[@Giingu](https://github.com/Giingu)**_
    _Log-in tutorial & claim switch by **[@cyberofficial](https://github.com/cyberofficial)**_
    _Originally made by **[@Zarg](https://github.com/Zaarrg)**_