Skip to main content

Add your description here

Project description

FitGirl Scraper Banner

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

DocumentationInstallationUsageAPI 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fitgirl-0.2.0.tar.gz (30.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fitgirl-0.2.0-py3-none-any.whl (44.0 kB view details)

Uploaded Python 3

File details

Details for the file fitgirl-0.2.0.tar.gz.

File metadata

  • Download URL: fitgirl-0.2.0.tar.gz
  • Upload date:
  • Size: 30.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fitgirl-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5071001af88f705a28c674575a947f07429e77e9d33fbbbc26ff5f43f2ed4d1c
MD5 402fae41353d957c9366154ee7808e37
BLAKE2b-256 b2761519b446ebcadca8ef9f96e8b5b3ff64457e8544758ec25d818fb9460415

See more details on using hashes here.

Provenance

The following attestation bundles were made for fitgirl-0.2.0.tar.gz:

Publisher: python-package.yml on xsyncio/fitgirl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fitgirl-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: fitgirl-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 44.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fitgirl-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ef0916673ca144bec61ea831af5a34ee3be206982a80e47d863f4184a37fb3c
MD5 566acb72a6bd5fbc193215701260dd8c
BLAKE2b-256 0aad6a77bd114cb51e6c579c5cc613d5ba78b2890c6d465217b8a08d82a2b572

See more details on using hashes here.

Provenance

The following attestation bundles were made for fitgirl-0.2.0-py3-none-any.whl:

Publisher: python-package.yml on xsyncio/fitgirl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page