diff --git a/README.md b/README.md index 981456b..c472204 100644 --- a/README.md +++ b/README.md @@ -1,35 +1,42 @@ -# Twitch Drops Miner +# ๐ Twitch Drops Miner (TDM) -> **Note:** This is a fork of [DevilXD/TwitchDropsMiner](https://github.com/DevilXD/TwitchDropsMiner). See [Acknowledgments](#acknowledgments) for credits to the original author and contributors. +> ๐ฎ **Automate Twitch Drop Farming โ Effortlessly, Headlessly, and Bandwidth-Free** -> **Disclaimer:** This fork is heavily maintained and developed using AI-assisted coding (Claude Code). While functional, the codebase may reflect "vibe coding" patterns and AI-generated conventions. Use at your own discretion and always review changes before deploying. +
-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. +A modern, AI-assisted fork of [DevilXD/TwitchDropsMiner](https://github.com/DevilXD/TwitchDropsMiner) โ rebuilt for reliability, simplicity, and automation. +**Twitch Drops Miner** lets you automatically farm Twitch drops without ever opening a stream. +No more tab juggling, channel switching, or missing rewards โ just set it, forget it, and collect. -### 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 `199` channels at the same time. -- Automatic drop campaigns discovery based on linked accounts (requires you to do [account linking](https://www.twitch.tv/drops/campaigns) 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. +## โจ Features -### Usage: +- ๐ **Streamless Mining** โ Earn drops without streaming video (save bandwidth) +- ๐ **Automatic Campaign Discovery** โ Detects new drop events automatically +- โ๏ธ **Auto Channel Switching** โ Always mines the best available stream +- ๐พ **Persistent Login** โ OAuth login saved via cookies +- ๐น๏ธ **Simple Web UI** โ Manage everything from your browser +- ๐งฉ **Docker-Ready** โ One command to deploy anywhere -The application is designed for Docker deployment, making it easy to run on any platform: +--- -**Using pre-built images (Recommended):** +## ๐งฐ Quick Start (Docker Recommended) + +### ๐ณ Using Pre-Built Image ```bash -# Pull and run from Docker Hub docker pull rangermix/twitch-drops-miner:latest docker run -d -p 8080:8080 -v $(pwd)/data:/app/data rangermix/twitch-drops-miner:latest ``` -Or use docker-compose with the pre-built image, Create a docker-compose.yml file with: +### ๐ฆ Using Docker Compose ```yaml services: @@ -42,119 +49,100 @@ services: restart: unless-stopped ``` -**Building locally:** +### ๐งโ๐ป From Source (for Developers) ```bash -# Build and run with docker-compose -docker-compose up -d - -# Or build and run manually -docker build -t twitch-drops-miner . -docker run -d -p 8080:8080 -v $(pwd)/data:/app/data twitch-drops-miner -``` - -**Running from Source:** - -```bash -# Install Python 3.10+ and dependencies +# Python 3.10+ pip install -e . - -# Run the application -python main.py - -# Access the web interface at http://localhost:8080 -``` - -**Using the Application:** - -- Open the web interface in your browser at `http://localhost:8080` -- Login/connect the miner to your Twitch account using the OAuth device code flow -- After a successful login, the app will fetch all available campaigns and games you can mine drops for -- Select and add games to the Watching List on the Settings tab, then press `Reload` to start processing -- The miner will fetch applicable streams and start mining automatically -- You can manually switch to a different channel as needed -- Make sure to link your Twitch account to game accounts on the [campaigns page](https://www.twitch.tv/drops/campaigns) - -**Important Docker notes:** -- All persistent data (cookies, settings, logs) is stored in the `data/` directory -- Login uses OAuth device code flow - you'll be given a code to enter at twitch.tv/activate -- Browser notifications supported (requires permission) -- Health checks included -- Configure timezone with `TZ` environment variable -- Pre-built images are automatically published to Docker Hub via GitHub Actions -- Available tags: - - `latest` - Latest stable release - - `1.0.0`, `1.0`, `1` - Semantic versioning tags (major.minor.patch) - - `1.0.0-rc.1` - Pre-release versions (tagged with exact version only) -- Multi-platform support: linux/amd64, linux/arm64 - - -### Screenshots: - -The application features a modern web-based interface accessible from any browser on your network. - -### Notes: - -> [!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. - -> [!NOTE] -> The source code requires Python 3.10 or higher to run. - -### Running from Source: - -For development or customization: - -```bash -# Install Python 3.10+ -# Create virtual environment (recommended) -python -m venv env -source env/bin/activate # On Windows: env\Scripts\activate - -# Install dependencies -pip install -e . - -# Run the application python main.py ``` -### Support This Project +Visit ๐ **