Python P2P Torrent Uploader
Requirements
- Python 3.10 to 3.13
- Python package dependencies (
uv sync --frozen– requires uv 0.8.0 or newer – orpip 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 |
|||
| HDBits | HDB |
Credentials/ Cookies |
|||
| nCore | nC |
Credentials/ Cookies |
|||
| nekoBT | nBT |
API key | |||
| Nyaa | nyaa |
Credentials | |||
| PassThePopcorn | PTP |
Credentials/ Cookies |
|||
| AvistaZ Network | |||||
| AvistaZ | AvZ |
Credentials/ Cookies |
|||
| 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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.