Skip to main content
FitGirl Scraper Banner

High-Performance, Async-First Scraper for the FitGirl Repacks Universe

Documentation • Installation • Usage • API Reference


⚡ Overview

FitGirl Scraper is a production-grade Python library designed to programmatically interact with fitgirl-repacks.site. Unlike simple HTML parsers, it leverages the hidden WordPress REST API for robust data retrieval, falling back to high-speed HTML parsing (via selectolax) only when necessary.

It is built for speed, stealth, and type safety.

✨ Key Features

🚀 Async & Fast

I/O bound operations are fully asynchronous. Built on curl_cffi to impersonate real browsers (Chrome 131) and selectolax for ultra-fast C-based parsing.

🛡️ Type Safe

100% type-hinted and runtime validated using msgspec. Every API response is a structured, frozen, and immutable object. No more `Dict[str, Any]`.

🕵️ Hybrid Engine

Intelligently switches between the LinkeDom-like HTML scraping and the hidden JSON API to get the most reliable data available.
  • Torrent Health: Real-time UDP tracker scraping to check seeds/peers.
  • Smart Search: Advanced filtering by category (Lossless, Repack), tags, and dates.
  • Resilient: Built-in exponential backoff, retry logic, and error handling.
  • Zero-Config: Works out of the box with sensible defaults.

📦 Installation

Requires Python 3.13+. Use uv for the best experience.

uv add fitgirl

Or standard pip:

pip install fitgirl

🚀 Quick Start

import asyncio
from fitgirl import FitGirlClient

async def main():
    # Context manager handles session cleanup automatically
    async with FitGirlClient() as client:
        
        # 1. Search for a game (Uses API for speed)
        print("🔍 Searching for 'Cyberpunk'...")
        results = await client.search_api("cyberpunk")
        
        for post in results.items:
            print(f"found: {post.title}")

        # 2. Get Deep Details
        slug = "cyberpunk-2077"
        print(f"\n📥 Fetching details for {slug}...")
        repack = await client.get_repack_api(slug)
        
        print(f"📦 Size: {repack.repack_size}")
        print(f"🧲 Magnet: {repack.torrent_sources[0].magnet.raw_uri[:60]}...")
        
        # 3. Check Real-time Health
        health = await client.check_magnet_health(repack.torrent_sources[0].magnet)
        if health:
            print(f"🟢 Seeds: {health.seeds} | 🔴 Peers: {health.peers}")

if __name__ == "__main__":
    asyncio.run(main())

Detailed Usage: Check the Wiki Usage Guide for advanced examples.

📚 Documentation

The documentation is hosted in the GitHub Wiki:

⚖️ Legal & Disclaimer

This software is for educational purposes only. The authors are not affiliated with FitGirl Repacks. Downloading copyrighted material without permission may be illegal in your jurisdiction. Use this tool responsibly.


Built with ❤️ by xsyncio

Release files for fitgirl 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fitgirl 0.2.0
File Size Uploaded
fitgirl-0.2.0.tar.gz 30.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fitgirl 0.2.0
File Interpreter ABI Platform
fitgirl-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 74.6 kB

Release files / fitgirl-0.2.0.tar.gz

Download URL fitgirl-0.2.0.tar.gz
Size 30.6 kB
Tags Source
SHA-256 checksum
How to use checksums
5071001af88f705a28c674575a947f07429e77e9d33fbbbc26ff5f43f2ed4d1c
BLAKE2b-256 checksum
How to use checksums
b2761519b446ebcadca8ef9f96e8b5b3ff64457e8544758ec25d818fb9460415
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 23, 2026.

Transparency log

Release files / fitgirl-0.2.0-py3-none-any.whl

Download URL fitgirl-0.2.0-py3-none-any.whl
Size 44.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2ef0916673ca144bec61ea831af5a34ee3be206982a80e47d863f4184a37fb3c
BLAKE2b-256 checksum
How to use checksums
0aad6a77bd114cb51e6c579c5cc613d5ba78b2890c6d465217b8a08d82a2b572
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page