Skip to content

UwUDev/ygege

Repository files navigation

Ygégé

High-performance indexer for YGG Torrent written in Rust

Key Features:

  • Automatic resolution of the current YGG Torrent domain
  • Automated Cloudflare bypass (no manual challenge solving)
  • Near-instant search
  • Seamless reconnection to expired sessions
  • Session caching
  • Bypassing lying DNS
  • Low memory usage (14.7MB in Linux release mode)
  • Modular torrent search (by name, seeders, leechers, comments, release date, etc.)
  • Detailed torrent metadata retrieval (description, size, seeders, leechers, etc.)
  • Zero external dependencies
  • No browser drivers required

Compilation Requirements

  • Rust 1.85.0+
  • OpenSSL 3+
  • All dependencies required for building wreq

Installation

A ready-to-use Docker image is available for Ygégé. To get started with Docker deployment and configuration, see the dedicated Docker guide.

Docker

To create a custom Docker image with your own optimizations, refer to the Docker build guide.

Manual Installation

To compile the application from sources, follow the manual installation guide.

IMDB and TMDB configuration

To enable IMDB and TMDB metadata fetching, please follow the instructions in the TMDB and IMDB support guide.

Prowlarr integration

Ygégé can be used as a custom indexer for Prowlarr. To set it up, find your AppData directory (located in the /system/status page of Prowlarr) and copy the ygege.yml file on the repo in the {your prowlarr appdata path}/Definitions/Custom folder, you'll probably need to create the Custom folder.

Once it's done, restart Prowlarr and go to the indexer settings, you should see Ygégé in the list of available indexers.

Note

Prowlarr doesn't allow custom "Base URL". By default the URL is http://localhost:8715/. For Docker Compose setups, use http://ygege:8715/. Alternatively, use ygege-dns-redirect.local with custom DNS or hosts file redirection.

Jackett Integration

Ygégé can be used as a custom indexer for Jackett. To set it up, locate your Jackett AppData directory and copy the ygege.yml file from the repository into the {your jackett appdata path}/cardigann/definitions/ folder. You may need to create the cardigann/definitions/ subfolder if it doesn't exist.

Note

The LinuxServer Jackett image provides a well-organized folder structure. If you're using a different Docker image, adjust the paths accordingly.

Once complete, restart Jackett and navigate to the indexer settings. You should see Ygégé listed among the available indexers.

Cloudflare Bypass

Ygégé bypasses Cloudflare challenges without browsers or third-party services.

YGG Torrent enforces a Cloudflare rule using the account_created=true cookie to prevent challenges, theoretically validating user accounts so we can just inject this cookie. However, Cloudflare still detects fake HTTPS clients and browser spoofing.

Ygégé uses the wreq library - an HTTP client based on reqwest and tokio that replicates 1:1 TLS and HTTP/2 exchanges to mimic legitimate browser behavior.

Note: Compatibility broke with Chrome 133 likely due to HTTP/3 integration, which wreq doesn't yet simulate.

For technical deep dives:

Performance test

Query for search:

  • Name: Vaiana 2
  • Sort: seeders
  • Order: descending
Number of tests Total time for all tests Average time per test
Resolution of the current YGG domain 25 3220,378ms 128,81512ms
New YGG login 10 4881.71361ms 488.1713616ms
YGG session restoration 10 2064.672142ms 206.4672142ms
Search 100 17621.045874ms 176,21045874ms

API Documentation

The API documentation is available here.

About

High-performance indexer for YGG Torrent written in Rust

Topics

Resources

License

Stars

Watchers

Forks

Packages