Automatically mine timed Twitch Drops without streaming video or audio.
Twitch Drops Miner is a low-bandwidth, headless application that discovers eligible campaigns, selects an appropriate live channel, and tracks drop progress from a web dashboard. It sends Twitch watch events without downloading the stream itself.
- Low-bandwidth mining — progresses timed drops without downloading video or audio
- Automatic campaign discovery — detects active and upcoming drop campaigns
- Smart channel selection — prioritizes eligible channels, preferred games, and viewers
- Persistent sessions — saves OAuth login state between runs
- Web dashboard — manages campaigns, channels, inventory, settings, and login status
- Headless deployment — runs locally, remotely, or in Docker without a desktop GUI
- Safe rendering — builds dynamic translated content with DOM APIs instead of raw HTML
Docker stores persistent application data in /app/data. The command below binds that
directory to ./data on the host:
docker run -d \
--name twitch-drops-miner \
-p 8080:8080 \
-v "${PWD}/data:/app/data" \
--restart unless-stopped \
rangermix/twitch-drops-miner:latestOpen http://localhost:8080.
From the repository root, build and start the included
docker-compose.yml:
docker compose up -d --buildSource installations require Python 3.12 or newer and
uv:
uv sync
uv run main.pyThen open http://localhost:8080.
- Log in with your Twitch account through the OAuth device flow.
- Wait for the miner to discover available campaigns.
- Choose the games you want to prioritize. You can also search for a game, select Add Game, and then select Reload.
- Leave the miner running while it selects eligible channels and tracks drop progress.
Inventory filters combine Active, Upcoming, and Expired as alternatives. Not Linked narrows that status result, while fully claimed campaigns stay hidden until Finished is selected.
Note
Your Twitch account must be linked to the relevant game accounts. Review your Twitch Drops campaigns before mining.
Warning
Avoid watching Twitch manually with the same account while the miner is running. Simultaneous viewing can cause drop-progress desynchronization.
- Docker data is stored inside the container at
/app/data; the examples persist it to./dataon the host. - Source installations store persistent data in the repository's
data/directory. - Logs can be persisted separately by mounting
./logs:/app/logs.
Contributors are credited automatically when their pull requests are merged into main.
| Contributor | Merged pull requests |
|---|---|
| @birdhimself | #41 |
| @capkz | #70 |
| @EthanBlazkowicz | #33 |
| @Knight-sys | #3 |
| @rangermix | #1 · #2 · #7 · #8 · #9 · #13 · #20 · #24 · #29 · #32 · #45 · #74 · #79 · #80 |
| @Sean-Destefano | #49 |
| @SimpliAj | #72 |
| @Stein-N | #71 |
| @vurmil | #12 · #17 |
If Twitch Drops Miner saves you time or bandwidth, you can support the project by:
- starring the repository
- reporting an issue or submitting a pull request
- buying the maintainer a coffee
This project is a modern fork of DevilXD/TwitchDropsMiner, created by @DevilXD. You can support the original author through Buy Me a Coffee or Patreon.
Original project and translation credits
- Arabic — @Bamboozul
- Chinese (Simplified) — @Suz1e, @wwj010, and @zhangminghao1989
- Chinese (Traditional) — @Ricky103403 and @LusTerCsI
- Czech — @nwvh
- Danish — @Kjerne
- French — @roobini-gamer and @Calvineries
- German — @ThisIsCyreX
- Indonesian — @Eriza-Z
- Italian — @casungo
- Japanese — @ShimadaNanaki
- Polish — @Patriot99, co-authored with @DevilXD
- Portuguese — @zarigata
- Russian — @Sergo1217 and @kilroy98
- Spanish — @Shofuu
- Turkish — @alikdb
- Ukrainian — @Nollasko and @kilroy98
This fork is maintained with AI-assisted development tools. Changes are validated through automated tests and code-quality checks, but users should still review updates before deploying them. The validation suite includes GraphQL watch events and batched channel discovery, alongside settings, translation, and frontend safety checks. Use the software responsibly. Release automation verifies that the runtime, package, and lockfile versions match before publishing tags and Docker images.
