Skip to main content

Threaded downloader utility

Project description

GockGet 💅

A multi-threaded XNXX bulk downloader for Python

CI Python codecov Lint License

Welcome Gorgeous 💅

So you found this repo.

Maybe you're here because you needed a practical XNXX bulk downloader.

Maybe you're here because some abandoned script from years ago finally collapsed under the weight of neglect.

Maybe you're here because downloading one file at a time is for people with limitless patience and weak convictions.

Maybe you're here because authoritarian governments want to expose your PII to weird and untested third party age verification vendors.

Whatever brought you here:

Welcome, queen.


What Is This?

This is a threaded Python downloader for XNXX that reads URLs from scrape.txt, downloads multiple videos at once, tracks progress, survives interruptions, and remembers what it was doing when life got messy.

It is efficient, resilient, and only slightly dramatic.


Features

✨ Multi-threaded downloads ✨ Reads URLs from scrape.txt ✨ Duplicate filtering ✨ Skips completed items automatically ✨ Retry failed downloads ✨ Detects interrupted partial downloads ✨ Verify mode to repair statuses against disk ✨ Error reset mode ✨ Safe cross-platform filenames ✨ Progress saved automatically ✨ Decorative startup banner with unnecessary glamour ✨ Tested with strong coverage because standards matter


Requirements

You'll need:

  • Python 3.11+
  • Internet access
  • Basic coping skills
  • Mild contempt for bad software

Install:

pip install .

For Development:

pip install -e .[dev]

Optional: Virtual Environment

Because boundaries matter.

Windows (PowerShell)

python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e .[dev]

Windows (Command Prompt)

python -m venv .venv
.\.venv\Scripts\activate.bat
pip install -e .[dev]

macOS / Linux

python3 -m venv .venv
source .venv/bin/activate
pip install -e .[dev]

When you're done:

deactivate

Usage

Run it:

gockget

That will process pending entries in scrape.txt.


Command Line Options

Skip the banner

For days when joy is unavailable.

gockget --transphobia

Choose thread count

gockget --threads=8

Retry failed items

gockget --retry-errors

Because healing is possible.

Reset all errors

gockget --clear-errors

Turns every ERROR back into FALSE.

Verify existing files

gockget --verify

Checks files on disk and updates statuses accordingly.

Useful after crashes, interruptions, moving files, or poor decisions.

Help

gockget --help

scrape.txt Format

URL | SCRAPED | TITLE
https://www.xnxx.com/video-abc123 | FALSE |
https://www.xnxx.com/video-def456 | TRUE | Already_Downloaded
https://www.xnxx.com/video-ghi789 | ERROR | Disaster

Status Meanings

  • FALSE = never downloaded
  • TRUE = completed successfully
  • ERROR = failed attempt
  • PARTIAL = interrupted download that may be recoverable

Growth is not linear.


File Handling

Downloads are saved using sanitized filenames designed to behave on:

  • Windows
  • Linux
  • macOS

Because no one deserves filename drama.


Recovery

If a download is interrupted, this tool can detect partial states, retry failed items, and verify what actually exists on disk.

We believe in resilience.


Testing

Because confidence is sexy.

pytest

With coverage:

pytest --cov=app

Lint:

ruff check .

This project maintains high automated test coverage.


Project Structure

app/                     core logic
tests/                   unit tests
.github/workflows/       CI pipeline
pyproject.toml           package config
scraped/                 completed downloads
scraping/                temporary files
scrape.txt               input list

Notes for the Dolls

If something breaks:

  1. Read the traceback.
  2. Stay calm.
  3. Blame capitalism.
  4. Fix it properly.

Contributing

Pull requests welcome.

Especially if you:

  • improve performance
  • improve reliability
  • improve code quality
  • improve aesthetics
  • bring hot girl engineering energy

Credits

Built using EchterAlsFake's xnxx_api, which handles the underlying site interaction and download mechanics.

Startup banner image / terminal art inspired by and credited to Cherry Mavrik.

This project stands/steps on the cock of glamorous giants.

Ethical Generative AI Disclosure

AI tools were used to assist with portions of development, including documentation, testing support, and iterative problem solving.

No generated output was accepted blindly. All code was reviewed, tested, modified where necessary, and remains the responsibility of the author.

Human accountability is not optional.

Disclaimer

Use responsibly.

You are responsible for your use of this software, the content you access, and compliance with local laws, platform rules, and common sense.

Do not be weird about it.


Final Words

This tool is powered by Python, threading, persistence, and feminine spite.

Use it wisely.

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

gockget-1.0.2.tar.gz (27.4 kB view details)

Uploaded Source

Built Distribution

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

gockget-1.0.2-py3-none-any.whl (23.9 kB view details)

Uploaded Python 3

File details

Details for the file gockget-1.0.2.tar.gz.

File metadata

  • Download URL: gockget-1.0.2.tar.gz
  • Upload date:
  • Size: 27.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gockget-1.0.2.tar.gz
Algorithm Hash digest
SHA256 23eead0620d58119e339c115bad5c4a183ae73a9470abbc42abce9d5e30b7269
MD5 c421525c0247b4a980c084323282a64c
BLAKE2b-256 51bf7afabc11e624087969078f634073a1ba46810830328bc41e55c812b16203

See more details on using hashes here.

Provenance

The following attestation bundles were made for gockget-1.0.2.tar.gz:

Publisher: release.yml on bridgette-ryan/gockget

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

File details

Details for the file gockget-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: gockget-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 23.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gockget-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ef3eb1c7d8b3d0a49b2cd7c529495ba6b9455bba93b40d77060952b33861dd29
MD5 1046ba47601ab26659ded36b198e8b5b
BLAKE2b-256 db65a5d6eebc558359ff60a2db49322751d9526450a55c52e1729dfa6387bd2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for gockget-1.0.2-py3-none-any.whl:

Publisher: release.yml on bridgette-ryan/gockget

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