Skip to content

Repository files navigation

Twitch Drops Miner

Automatically mine timed Twitch Drops without streaming video or audio.

GitHub stars Latest release Docker pulls License Python 3.12 or newer

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.

Twitch Drops Miner web dashboard showing campaign progress, output, and channels

Features

  • 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

Quick start

Docker (recommended)

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:latest

Open http://localhost:8080.

Docker Compose

From the repository root, build and start the included docker-compose.yml:

docker compose up -d --build

From source

Source installations require Python 3.12 or newer and uv:

uv sync
uv run main.py

Then open http://localhost:8080.

Using the web app

  1. Log in with your Twitch account through the OAuth device flow.
  2. Wait for the miner to discover available campaigns.
  3. Choose the games you want to prioritize. You can also search for a game, select Add Game, and then select Reload.
  4. 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.

Important notes

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 ./data on the host.
  • Source installations store persistent data in the repository's data/ directory.
  • Logs can be persisted separately by mounting ./logs:/app/logs.

Contributors

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

Support

If Twitch Drops Miner saves you time or bandwidth, you can support the project by:

Credits

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

Original project contributions

  • @guihkx — CI scripts, CI maintenance, and Linux builds
  • @kWAYTV — dark mode theme

Translation credits

Development disclosure

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.

About

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

Topics

Resources

Stars

229 stars

Watchers

5 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages