Skip to main content


Python P2P Torrent Uploader

Requirements

  • Python 3.10 to 3.13
  • Python package dependencies (uv sync --frozen – requires uv 0.8.0 or newer – or pip install .)
  • torrenttools (for creating torrents, optional)
  • MediaInfo CLI (for generating tech info)
  • FFmpeg (for generating snapshots)
  • ImageMagick/libmagickwand (for optimizing snapshots)

Supported trackers

Name Acronym Auth Protection Captcha Server upload allowed
General
BroadcasTheNet BTN Credentials/
Cookies
None No Dedicated servers only, requires staff approval
HDBits HDB Credentials/
Cookies
Cloudflare Simple Yes, if IP whitelisted in profile or 2FA enabled
nCore nC Credentials/
Cookies
None No Yes
nekoBT nBT API key None No Yes
Nyaa nyaa Credentials DDoS-Guard No Yes
PassThePopcorn PTP Credentials/
Cookies
None No Dedicated servers only, requires staff approval
AvistaZ Network
AvistaZ AvZ Credentials/
Cookies
None Yes Yes, if IP whitelisted in profile
CinemaZ CZ
PrivateHD PHD

For sites with captcha, a 2captcha API key is required to solve the captcha. Manual solving may be added in the future. "Simple" captchas can be solved automatically without 2captcha or user interaction.

PassThePopcorn

  • Credential auth requires passkey in addition to username and password.

AvistaZ Network

  • Using credential auth is strongly recommended as cookies always expire within a few days.

Installation

Install dependencies and the script with ./install.py. You can re-run the script to update after a git pull.

Setup

Copy config.example.toml to ~/.config/pptu/config.toml and edit it as appropriate.

For credential-based auth, add your credentials in ~/.config/pptu/config.toml:

[TRACKER]
username = "yourusername"
password = "yourpassword"

Optionally, you may specify totp_secret for automating 2FA logins. Optionally, you may specify img_uploader for image host site.

For cookie-based auth, place cookies in ~/.local/share/pptu/cookies/TRACKER.txt.

TRACKER is the name or the abbreviation of the tracker above (all lowercase).

Usage

❯ pptu -h

Usage: pptu [OPTIONS] COMMAND1 [ARGS]... [COMMAND2 [ARGS]...]...

Options:
   -v, --version                      Show the version and exit.
   -i, --input PATH                   Files or directories to create torrents for.
   --fast-upload / --no-fast-upload   Upload only after all steps succeed (or force-disable).
   -c, --confirm                      Ask for confirmation before uploading.
   -a, --auto                         Run non-interactively (never prompt).
   -ds, --disable-snapshots           Skip creating description snapshots.
   -s, --skip-upload                  Create torrents but don't upload.
   -n, --note TEXT                    Note to attach to the upload.
   -lt, --list-trackers               Show the list of supported trackers and exit.
   -h, --help                         Show this message and exit.

Uploaders (9):
   AvistaZ          https://avistaz.to/
   BroadcasTheNet   https://broadcasthe.net/
   CinemaZ          https://cinemaz.to/
   HDBits           https://hdbits.org/
   nCore            https://ncore.pro/
   nekoBT           https://nekobt.to/
   Nyaa             https://nyaa.si/
   PassThePopcorn   https://passthepopcorn.me/
   PrivateHD        https://privatehd.to/

Example

pptu -i /path/example.mkv -i /path/example2.mkv hdb nc --request-id 12356

Metadata

Release files for pptu 2026.10.24

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

Source distribution (sdist)

Source distribution for pptu 2026.10.24
File Size Uploaded Provenance Actions
pptu-2026.10.24.tar.gz 50.5 kB Without provenance Details for pptu-2026.10.24.tar.gz

Built distribution (wheel)

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

Total release size: 115.5 kB

Release files / pptu-2026.10.24.tar.gz

Download URL pptu-2026.10.24.tar.gz
Size 50.5 kB
Tags Source
SHA-256 checksum
How to use checksums
832d8ec5e918be43c09a53077ff1aab2bc2412440ba37275b917f4ec73aa4699
BLAKE2b-256 checksum
How to use checksums
df3a2871d6c2d2c642d898ea70812f20af43969eff834f130e4d55c84015d0d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pptu-2026.10.24-py3-none-any.whl

Download URL pptu-2026.10.24-py3-none-any.whl
Size 64.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e706ef6dfa1bd60da34edc365f576b6ca9bf38681d4280c30225fd29e22a7c93
BLAKE2b-256 checksum
How to use checksums
67fd4dd7449750e72930a13232c37b9852404b696410853ba3a0315c4e02c2f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for pptu 2026.10.24

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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