Threaded downloader utility
Project description
GockGet 💅
A multi-threaded XNXX bulk downloader for Python
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 downloadedTRUE= completed successfullyERROR= failed attemptPARTIAL= 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:
- Read the traceback.
- Stay calm.
- Blame capitalism.
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23eead0620d58119e339c115bad5c4a183ae73a9470abbc42abce9d5e30b7269
|
|
| MD5 |
c421525c0247b4a980c084323282a64c
|
|
| BLAKE2b-256 |
51bf7afabc11e624087969078f634073a1ba46810830328bc41e55c812b16203
|
Provenance
The following attestation bundles were made for gockget-1.0.2.tar.gz:
Publisher:
release.yml on bridgette-ryan/gockget
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gockget-1.0.2.tar.gz -
Subject digest:
23eead0620d58119e339c115bad5c4a183ae73a9470abbc42abce9d5e30b7269 - Sigstore transparency entry: 1363174787
- Sigstore integration time:
-
Permalink:
bridgette-ryan/gockget@2a45ba6526f860285b8068bedb210ab10370fa98 -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/bridgette-ryan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2a45ba6526f860285b8068bedb210ab10370fa98 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef3eb1c7d8b3d0a49b2cd7c529495ba6b9455bba93b40d77060952b33861dd29
|
|
| MD5 |
1046ba47601ab26659ded36b198e8b5b
|
|
| BLAKE2b-256 |
db65a5d6eebc558359ff60a2db49322751d9526450a55c52e1729dfa6387bd2e
|
Provenance
The following attestation bundles were made for gockget-1.0.2-py3-none-any.whl:
Publisher:
release.yml on bridgette-ryan/gockget
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gockget-1.0.2-py3-none-any.whl -
Subject digest:
ef3eb1c7d8b3d0a49b2cd7c529495ba6b9455bba93b40d77060952b33861dd29 - Sigstore transparency entry: 1363175013
- Sigstore integration time:
-
Permalink:
bridgette-ryan/gockget@2a45ba6526f860285b8068bedb210ab10370fa98 -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/bridgette-ryan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2a45ba6526f860285b8068bedb210ab10370fa98 -
Trigger Event:
push
-
Statement type: