An app that allows you to AFK mine timed Twitch drops, with automatic drop claiming and channel switching.
Python
3,372
919 commits
updated Oct 9, 2026
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 you save on bandwidth and hassle.
Every several seconds, the application pretends to watch a particular stream by fetching stream metadata - 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 established that receives events about streams going up or down, or updates regarding the current amount of viewers.
199 channels at the same time.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.

[!WARNING]
Due to how Twitch handles the drop progression on their side, watching a stream in the browser (or by any other means) on the same account that is actively being used by the miner, will usually cause the miner to misbehave, reporting false progress and getting stuck mining the current drop.Using the same account to watch other streams during mining is thus discouraged, in order to avoid any problems arising from it.
[!CAUTION]
Persistent cookies will be stored in thecookies.jarfile, from which the authorization (login) information will be restored on each subsequent run. Make sure to keep your cookies file safe, as the authorization information it stores can give another person access to your Twitch account, even without them knowing your password!
[!IMPORTANT]
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 detected browser during the login will be "Chrome", as that's what the miner currently presents itself to the Twitch server.
[!NOTE]
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 at any time Twitch decides to report on the drop's progress, but not later than 20 seconds after the timer reaches zero. The seconds timer is 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.
[!NOTE]
The source code requires Python 3.10 or higher to run.
EXE. Some antivirus engines (including Windows Defender) might report the packaged executable as a trojan, because PyInstaller has been used by others to package malicious Python code in the past. These reports can be safely ignored. If you absolutely do not trust the executable, you'll have to install Python yourself and run everything from source.%TEMP% directory for temporary runtime storage of files, that don't need to be exposed to the user (like compiled code and translation files). For persistent storage, the directory the executable resides in is used instead.HKCU) autostart key. It is only altered when toggling the respective option. If you relocate the app to a different directory, the autostart feature will stop working, until you toggle the option off and back on againglibc>=2.35, plus a working display server.gtk3 library (and its dependencies), which is required for proper system tray/notifications support..app bundle, distributed as a ZIP archive.cd path/to/folder) and enter xattr -cr Twitch Drops Miner (by DevilXD).app or just type xattr -cr (make sure to put a space at the end), drag and drop the Twitch Drops Miner (by DevilXD).app file into the terminal window (this will auto-fill the path) and entercookies.jar, settings.json, lock.file and the cache folder) are stored inside the application bundle in Twitch Drops Miner (by DevilXD).app/Contents/MacOS (to access them Right-click the application and select Show Package Contents)If you'd be interested in running the latest master from source or building your own executable, see the wiki page explaining how to do so: https://github.com/DevilXD/TwitchDropsMiner/wiki/Setting-up-the-environment,-building-and-running
If you'd encounter any issues with the miner:
If you like the application and found it useful, please consider donating a small amount of money to support me. Thank you!
Twitch Drops Miner (TDM for short) has been designed with a couple of simple goals in mind. These are, specifically:
TDM is not intended for/as:
This means that features such as:
..., are most likely not going to be a feature, ever. You're welcome to search through the existing issues to comment on your point of view on the relevant matters, where applicable. Otherwise, most of the new issues that go against these goals will be closed and the user will be pointed to this paragraph.
For more context about these goals, please check out these issues: #161, #105, #84
@guihkx - For the CI script, CI maintenance, and everything related to Linux builds.
@kWAYTV - For the implementation of the dark mode theme.
@crocchetto - For the macOS port.
@Bamboozul - For the entirety of the Arabic (العربية) translation.
@Suz1e - For the entirety of the Chinese (简体中文) translation and revisions.
@wwj010, @zhangminghao1989, @Self4215 - For the Chinese (简体中文) translation corrections and revisions.
@Ricky103403 - For the entirety of the Traditional Chinese (繁體中文) translation.
@LusTerCsI - For the Traditional Chinese (繁體中文) translation corrections and revisions.
@nwvh - For the entirety of the Czech (Čeština) translation.
@Kjerne - For the entirety of the Danish (Dansk) translation.
@lmdpocus - For the entirety of the Dutch (Nederlandse) translation.
@Rensoraa - For the Traditional Dutch (Nederlandse) translation corrections and revisions.
@roobini-gamer - For the entirety of the French (Français) translation.
@Calvineries - For the French (Français) translation revisions.
@ThisIsCyreX - For the entirety of the German (Deutsch) translation.
@Nagyhoho1234 - For the entirety of the Hungarian (Magyar) translation.
@Eriza-Z - For the entirety of the Indonesian translation.
@casungo - For the entirety of the Italian (Italiano) translation.
@ShimadaNanaki - For the entirety of the Japanese (日本語) translation.
@biroman - For the entirety of the Norwegian (Norsk) translation.
@Patriot99 - For the Polish (Polski) translation and revisions (co-authored with @DevilXD).
@zarigata - For the entirety of the Portuguese (Português) translation.
@Sergo1217 - For the entirety of the Russian (Русский) translation.
@kilroy98, @flamesv - For the Russian (Русский) translation corrections and revisions.
@Shofuu - For the entirety of the Spanish (Español) translation and revisions.
@Forero-0 - For the Spanish (Español) translation revisions.
@alikdb - For the entirety of the Turkish (Türkçe) translation.
@DogancanYr, @Elderly-Emre, @Hweord - For the Turkish (Türkçe) translation corrections and revisions.
@Nollasko - For the entirety of the Ukrainian (Українська) translation and revisions.
@kilroy98 - For the Ukrainian (Українська) translation corrections and revisions.
47 followers · starred Jul 2024
100 followers · starred Aug 2024
148 followers · starred Aug 2024
43 followers · starred Nov 2025
An app that allows you to AFK mine timed Twitch drops, with automatic drop claiming and channel switching.
Python
3,372
919 commits
updated Oct 9, 2026
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 you save on bandwidth and hassle.
Every several seconds, the application pretends to watch a particular stream by fetching stream metadata - 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 established that receives events about streams going up or down, or updates regarding the current amount of viewers.
199 channels at the same time.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.

[!WARNING]
Due to how Twitch handles the drop progression on their side, watching a stream in the browser (or by any other means) on the same account that is actively being used by the miner, will usually cause the miner to misbehave, reporting false progress and getting stuck mining the current drop.Using the same account to watch other streams during mining is thus discouraged, in order to avoid any problems arising from it.
[!CAUTION]
Persistent cookies will be stored in thecookies.jarfile, from which the authorization (login) information will be restored on each subsequent run. Make sure to keep your cookies file safe, as the authorization information it stores can give another person access to your Twitch account, even without them knowing your password!
[!IMPORTANT]
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 detected browser during the login will be "Chrome", as that's what the miner currently presents itself to the Twitch server.
[!NOTE]
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 at any time Twitch decides to report on the drop's progress, but not later than 20 seconds after the timer reaches zero. The seconds timer is 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.
[!NOTE]
The source code requires Python 3.10 or higher to run.
EXE. Some antivirus engines (including Windows Defender) might report the packaged executable as a trojan, because PyInstaller has been used by others to package malicious Python code in the past. These reports can be safely ignored. If you absolutely do not trust the executable, you'll have to install Python yourself and run everything from source.%TEMP% directory for temporary runtime storage of files, that don't need to be exposed to the user (like compiled code and translation files). For persistent storage, the directory the executable resides in is used instead.HKCU) autostart key. It is only altered when toggling the respective option. If you relocate the app to a different directory, the autostart feature will stop working, until you toggle the option off and back on againglibc>=2.35, plus a working display server.gtk3 library (and its dependencies), which is required for proper system tray/notifications support..app bundle, distributed as a ZIP archive.cd path/to/folder) and enter xattr -cr Twitch Drops Miner (by DevilXD).app or just type xattr -cr (make sure to put a space at the end), drag and drop the Twitch Drops Miner (by DevilXD).app file into the terminal window (this will auto-fill the path) and entercookies.jar, settings.json, lock.file and the cache folder) are stored inside the application bundle in Twitch Drops Miner (by DevilXD).app/Contents/MacOS (to access them Right-click the application and select Show Package Contents)If you'd be interested in running the latest master from source or building your own executable, see the wiki page explaining how to do so: https://github.com/DevilXD/TwitchDropsMiner/wiki/Setting-up-the-environment,-building-and-running
If you'd encounter any issues with the miner:
If you like the application and found it useful, please consider donating a small amount of money to support me. Thank you!
Twitch Drops Miner (TDM for short) has been designed with a couple of simple goals in mind. These are, specifically:
TDM is not intended for/as:
This means that features such as:
..., are most likely not going to be a feature, ever. You're welcome to search through the existing issues to comment on your point of view on the relevant matters, where applicable. Otherwise, most of the new issues that go against these goals will be closed and the user will be pointed to this paragraph.
For more context about these goals, please check out these issues: #161, #105, #84
@guihkx - For the CI script, CI maintenance, and everything related to Linux builds.
@kWAYTV - For the implementation of the dark mode theme.
@crocchetto - For the macOS port.
@Bamboozul - For the entirety of the Arabic (العربية) translation.
@Suz1e - For the entirety of the Chinese (简体中文) translation and revisions.
@wwj010, @zhangminghao1989, @Self4215 - For the Chinese (简体中文) translation corrections and revisions.
@Ricky103403 - For the entirety of the Traditional Chinese (繁體中文) translation.
@LusTerCsI - For the Traditional Chinese (繁體中文) translation corrections and revisions.
@nwvh - For the entirety of the Czech (Čeština) translation.
@Kjerne - For the entirety of the Danish (Dansk) translation.
@lmdpocus - For the entirety of the Dutch (Nederlandse) translation.
@Rensoraa - For the Traditional Dutch (Nederlandse) translation corrections and revisions.
@roobini-gamer - For the entirety of the French (Français) translation.
@Calvineries - For the French (Français) translation revisions.
@ThisIsCyreX - For the entirety of the German (Deutsch) translation.
@Nagyhoho1234 - For the entirety of the Hungarian (Magyar) translation.
@Eriza-Z - For the entirety of the Indonesian translation.
@casungo - For the entirety of the Italian (Italiano) translation.
@ShimadaNanaki - For the entirety of the Japanese (日本語) translation.
@biroman - For the entirety of the Norwegian (Norsk) translation.
@Patriot99 - For the Polish (Polski) translation and revisions (co-authored with @DevilXD).
@zarigata - For the entirety of the Portuguese (Português) translation.
@Sergo1217 - For the entirety of the Russian (Русский) translation.
@kilroy98, @flamesv - For the Russian (Русский) translation corrections and revisions.
@Shofuu - For the entirety of the Spanish (Español) translation and revisions.
@Forero-0 - For the Spanish (Español) translation revisions.
@alikdb - For the entirety of the Turkish (Türkçe) translation.
@DogancanYr, @Elderly-Emre, @Hweord - For the Turkish (Türkçe) translation corrections and revisions.
@Nollasko - For the entirety of the Ukrainian (Українська) translation and revisions.
@kilroy98 - For the Ukrainian (Українська) translation corrections and revisions.
47 followers · starred Jul 2024
100 followers · starred Aug 2024
148 followers · starred Aug 2024
43 followers · starred Nov 2025