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)

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.1

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.1
File Size Uploaded Provenance Actions
pptu-2026.10.24.1.tar.gz 50.6 kB Without provenance Details for pptu-2026.10.24.1.tar.gz

Built distribution (wheel)

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

Total release size: 115.5 kB

Release files / pptu-2026.10.24.1.tar.gz

Download URL pptu-2026.10.24.1.tar.gz
Size 50.6 kB
Tags Source
SHA-256 checksum
How to use checksums
230160674dd4faf83f28749e19ed170a2154d1f8770efb50602f8198bd2b3a9a
BLAKE2b-256 checksum
How to use checksums
7e78926e7b9d354757daa70dab11e8635c52edca4616f101536f7e25f4a1d080
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.1-py3-none-any.whl

Download URL pptu-2026.10.24.1-py3-none-any.whl
Size 65.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6d8f365662bdc61e7a3dfcd37df84d006d537b52d5898d0d48e8e294c02e2f31
BLAKE2b-256 checksum
How to use checksums
6ca1abac5f8fa47ab8444d6e570cdc663306e2fedbd934f08672b60a0703ff20
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.1

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