yoink logo

yoink MrMarble

Use this command to install yoink:
winget install --id=MrMarble.yoink -e

yoink is an app designed to help you download torrents marked as free leech in order to mantain your ratio in private trackers.

Yoink is a software tool designed to help users maintain their seeding ratios on private trackers by automating the download of torrents marked as free leech.

Key Features:

  • Integration with Prowlarr as an indexer to search for free leech torrents.
  • Automatic connection to qBitTorrent to add and manage downloaded torrents.
  • Configurable filters for indexers, including maximum seeders, file size, and minimum leechers.
  • Support for multiple trackers with customizable settings for each indexer.
  • Environment variable support to override configuration settings securely.

Audience & Benefit:
Ideal for torrent users who prioritize maintaining their seeding ratios on private trackers. Yoink streamlines the process of downloading free leech torrents, helping users effortlessly contribute to their tracker communities while managing downloads efficiently.

Yoink can be installed via winget and is designed with a focus on simplicity and automation for those looking to enhance their torrent management experience.

README

Yoink - Free leech manager

GitHub Go Report Card GitHub go.mod Go version GitHub release (latest by date)

> An exclamation that transfers ownership of an object to the person who utters it, regardless of previous property rights.

yoink is an app designed to help you download torrents marked as free leech in order to mantain your ratio in private trackers.

yoink can search all your trackers using prowlarr as the indexer and automatically add them to your qBitTorrent client to start seeding

Basic behavior

  1. Get a list of torrents marked as freeleech from prowlarr.
  2. Connect to qBitTorrent and filter-out any already downloaded torrent.
  3. Upload remaining torrents to qBitTorrent and start seeding.

Configuration

Some properties can be passed by environment variable.

File

total_freeleech_size: "200GB" # Max space to use for downloads. If 0, no limit is applied
category: "FreeLeech" # Category to use for downloads.
paused: true # Whether to pause torrents after adding them to qBittorrent
qbittorrent: # Connection details for qBittorrent
  host: "http://localhost:8080"
  username: "admin"
  password: "adminadmin"
prowlarr: # Connection details for Prowlarr
  host: "http://localhost:8081"
  api_key: "1234567890"
indexers: # List of indexers to use. Filters out any indexers not in this list
- id: 1 # ID of the indexer in Prowlarr
  max_seeders: 20 # Maximum number of seeders to allow. 0 = no limit
  max_size: "50GB" # Maximum file size to allow. 0 = no limit
  min_leechers: 0 # Minimum number of leechers to allow. 0 = no limit
- id: 3 # ID of the indexer in Prowlarr
  max_seeders: 10 # Maximum number of seeders to allow. 0 = no limit
  max_size: "50GB" # Maximum file size to allow. 0 = no limit
  min_leechers: 0 # Minimum number of leechers to allow. 0 = no limit

Environment

Environment variables will override config file

Environment variables:
  TOTAL_FREELEECH_SIZE string
    	Max space to use for downloads. If 0, no limit is applied (default "200GB")
  CATEGORY string
    	Category to use for downloads. (default "FreeLeech")
  PAUSED bool
    	Whether to pause torrents after adding them to qBittorrent (default "true")
  QBIT_HOST string
    	Connection details for qBittorrent
  QBIT_USER string
    	Connection details for qBittorrent
  QBIT_PASS string
    	Connection details for qBittorrent
  PROWLARR_HOST string
    	Connection details for Prowlarr
  PROWLARR_API_KEY string
    	Connection details for Prowlarr

Usage

CLI parameters will override environment variables

$ yoink --help
Usage: yoink --config=STRING 

Yoink! Command line tool for finding and downloading freeleech torrents.

Flags:
  -h, --help             Show context-sensitive help.
  -c, --config=STRING    configuration file.
      --dry-run          Dry run. Don't upload torrents to qBittorrent.
      --version          print version information and quit

Commands:
  indexers --config=STRING
    List indexers.

  print-config --config=STRING
    Print the configuration.

Run "yoink  --help" for more information on a command.

Example:

# don't save sensitive info in config file
$ PROWLARR_API_KEY=XXXXXXXXXX QBIT_PASS=SecurePassword yoink --config ./config.yaml

Docker:

$ docker run -e "PROWLARR_API_KEY=XXXXXXXXXX" \
    -e "QBIT_PASS=SecurePassword" \
    -v ./config.yaml:/config.yaml:ro \
    ghcr.io/mrmarble/yoink:latest
Versions
1.0.1
0.5.0
Website
License