TwitchDropsMiner icon indicating copy to clipboard operation
TwitchDropsMiner copied to clipboard

An app that allows you to AFK mine timed Twitch drops, with automatic drop claiming and channel switching.

Twitch Drops Miner

This application allows you to AFK mine timed Twitch drops, without having to worry about switching channels when the one you were watching goes offline, claiming the drops, or even receiving the stream data itself. This helps both you and Twitch save on bandwidth and hassle. Everybody wins!

How It Works:

Every ~60 seconds, the application sends a "minute watched" event to the channel that's currently being watched - this is enough to advance the drops. Note that this completely bypasses the need to download any actual stream video and sound. To keep the status (ONLINE or OFFLINE) of the channels up-to-date, there's a websocket connection estabilished that receives events about streams going up or down, or updates regarding the current amount of viewers.

Features:

  • Stream-less drop mining - save on bandwidth.
  • Game priority and exclusion lists, allowing you to focus on mining what you want, in the order you want, and ignore what you don't want.
  • Sharded websocket connection, allowing for tracking up to 8*50-2=398 channels at the same time.
  • Automatic drop campaigns discovery based on linked accounts (requires you to do account linking yourself though)
  • Stream tags and drop campaign validation, to ensure you won't end up mining a stream that can't earn you the drop.
  • Automatic channel stream switching, when the one you were currently watching goes offline, as well as when a channel streaming a higher priority game goes online.
  • Login session is saved in a cookies file, so you don't need to login every time.
  • Mining is automatically started as new campaigns appear, and stopped when the last available drops have been mined.

Usage:

  • Download and unzip the lastest release - it's recommended to keep it in the folder it comes in.
  • Run it and login into your Twitch account using your username and password, and a 2FA key if you have one setup. It's recommended to avoid having to double-take this step, as you can run into CAPTCHA that will prevent you from trying to log in again for the next 12+ hours. You can retry afterwards though.
  • After a successful login, the app should fetch a list of all available campaigns and games you can mine drops for - you can then select and add games of choice to the Priority List available on the Settings tab, and then press on the Reload button to start processing. It will fetch a list of all applicable streams it can watch, and start mining right away. You can also manually switch to a different channel as needed.
  • Make sure to link your Twitch account to game accounts on the campaigns page, to enable more games to be mined.
  • Persistent cookies will be stored in the cookies.jar file, from which the authorization (login) information will be restored on each subsequent run.

Pictures:

Main Inventory Settings

Notes:

  • Make sure to keep your cookies file safe, as the authorization information it stores can give another person access to your Twitch account.
  • Successfully logging into your Twitch account in the application, may cause Twitch to send you a "New Login" notification email. This is normal - you can verify that it comes from your own IP address. The application uses Chrome's user agent, so the detected browser during the login should signify that as well.
  • The time remaining timer always countdowns a single minute and then stops - it is then restarted only after the application redetermines the remaining time. This "redetermination" can happen as early as at 10 seconds in a minute remaining, and as late as 20 seconds after the timer reaches zero (especially when finishing mining a drop), but is generally only an approximation and does not represent nor affect actual mining speed. The time variations are due to Twitch sometimes not reporting drop progress at all, or reporting progress for the wrong drop - these cases have all been accounted for in the application though.

Support

Buy me a coffee Support me on Patreon

Advanced Usage / Build Instructions:

  • Note: The application has been developed using Python 3.8.10 specifically. It should (but may not necessarily will) run properly on higher versions too though.
  • Download or git clone https://github.com/DevilXD/TwitchDropsMiner the source code to a folder of choice.
  • Run setup_env.bat to setup the virtual environment for the application. Activate it by running env/Scripts/activate.bat, or just use python, pythonw and pip executables from the env/Scripts directly going forward.
  • Run pythonw main.py to start the application without a console. python main.py can be used to start with a console, in case you'd expect errors to be printed out to the console - may help with debugging problems.
  • If you'd like to build the executable yourself, you'll need to pip install pyinstaller into the virtual environment, and then simply run build.bat. The end result can be found inside the dist folder. If you supply a 7z.exe (or 7za.exe from 7z Extras) executable inside the project's folder, a packaged zip with the whole release should be created next to the dist folder as well.

Credits:

@Suz1e - For the entirety of the Chinese (简体中文) translation.