Web UI + CLI di pre-flight per tracker Unit3D, companion di Unit3DWebUp (audio ITA, nomenclatura ItaTorrents, hardlink, upload)
Project description
unit3dprep
Web UI + CLI di pre-flight per tracker Unit3D, accoppiata via HTTP a Unit3DWebUp come backend di upload.
Verifica tracce audio italiane, rinomina secondo la nomenclatura ItaTorrents, crea hardlink in ~/seedings/ e orchestra il flusso setenv → scan → maketorrent → upload → seed su Unit3DWebUp con log live via WebSocket/SSE.
Configurazione unificata: un singolo file .env condiviso tra unit3dprep e Unit3DWebUp (path ENVPATH/U3DP_ENV_PATH). Le modifiche fatte da Settings vengono propagate al bot via POST /setenv senza riavvio.
Auto-update integrato per app (GitHub Releases) e Unit3DWebUp (PyPI): pulsante "Aggiorna" in Settings → Versione, log pip/git live-streamed via SSE, restart systemd e reload del browser con popup changelog.
La Web UI è disponibile in italiano e inglese (selettore nella TopBar).
Controllo duplicati pre-upload: prima di costruire il .torrent il bridge interroga l'API ITT per tmdbId e match esatto sulla dimensione in byte. Se trova un duplicato mostra un pannello con i dettagli + "Carica comunque / Annulla"; l'annullamento traccia "duplicato skippato" nello storico e nasconde l'item dalla Media Library. Replica il vecchio unit3dup CLI (Unit3DWebUp 0.0.25 non implementa duplicate detection). Disabilitabile con W_DUPLICATE_CHECK=false.
Documentazione completa → https://davidesidoti.github.io/unit3dprep/
Quick start
# 1. unit3dprep + Unit3DWebUp nello stesso venv (o due venv separati)
pip install -e .
pip install Unit3DwebUp
# 2. Genera secret e password hash
python generate_hash.py
# 3. Variabili minime in ~/.bashrc
export U3DP_PASSWORD_HASH='$2b$12$...' # apici singoli — il $ NON va espanso
export U3DP_SECRET="..."
export TMDB_API_KEY="..."
export U3DP_PORT="8765"
export ENVPATH="$HOME/.config/unit3dprep" # condiviso con Unit3DWebUp
# 4. Avvia Unit3DWebUp (richiede Redis su 127.0.0.1:6379 e ffmpeg)
ENVPATH=$HOME/.config/unit3dprep uvicorn unit3dwup.start:app --host 127.0.0.1 --port 8000 &
# 5. Avvia unit3dprep
unit3dprep-web
Apri http://127.0.0.1:8765, fai login, completa Settings → tracker/qBit/image host. Le credenziali vengono salvate in $ENVPATH/.env con la nomenclatura canonica TRACKER__* / TORRENT__* / PREFS__* e sincronizzate live a Unit3DWebUp. Per il deploy systemd dei due servizi vedi deploy/systemd/.
Docker (all-in-one)
Redis + Unit3DWebUp + unit3dprep in un singolo container:
git clone https://github.com/davidesidoti/unit3dprep.git
cd unit3dprep
cp config.env.example config.env # compila U3DP_PASSWORD_HASH / U3DP_SECRET / TMDB_API_KEY
docker compose build
docker compose up -d
# apri http://127.0.0.1:8765
🐳 Immagine pubblicata su Docker Hub:
hashdeveloper512/unit3dprep. Per saltare la build locale, indocker-compose.ymlusaimage: hashdeveloper512/unit3dprep:latestal posto dibuild: .→docker compose up -dla scarica.
Serve Compose v2 (
docker compose). La vecchiadocker-composev1 (1.29.2) crasha suupcon Docker Engine 25+ (KeyError: 'ContainerConfig'). Sedocker compose versionnon funziona, installa il plugin v2 (binario utente, senza repo): vedi Deploy › Docker › §1.
Guida completa: Deploy › Docker.
Guide
- Installazione
- Configurazione
- Integrazione Unit3DWebUp
- Uso › CLI
- Uso › Web UI
- Deploy › Docker
- Deploy › VPS (sudo/Docker)
- Deploy › Ultra.cc
- Nomenclatura
- Troubleshooting
English mirror: aggiungi /en/ al path (es. /en/installation/).
Documentazione locale
pip install -r requirements-docs.txt
mkdocs serve
Poi apri http://127.0.0.1:8000.
Link
- Repo: https://github.com/davidesidoti/unit3dprep
- Tracker target principale: https://itatorrents.xyz
- Backend upload: https://pypi.org/project/Unit3DwebUp/ · https://github.com/31December99/Unit3DWebUp
- TMDB API: https://www.themoviedb.org/settings/api
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 unit3dprep-1.1.4.tar.gz.
File metadata
- Download URL: unit3dprep-1.1.4.tar.gz
- Upload date:
- Size: 500.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c4dac87ff745a51dfacb86701e0fba90b8cd0e1d830da2c4c0d75e84d5a4df6
|
|
| MD5 |
50e95ffb3f3e34fe23e081ee98affbb0
|
|
| BLAKE2b-256 |
172a7e704847de0e17f48723589628c3f48b83deba905e343ac441323e9407bd
|
Provenance
The following attestation bundles were made for unit3dprep-1.1.4.tar.gz:
Publisher:
publish-pypi.yml on davidesidoti/unit3dprep
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
unit3dprep-1.1.4.tar.gz -
Subject digest:
3c4dac87ff745a51dfacb86701e0fba90b8cd0e1d830da2c4c0d75e84d5a4df6 - Sigstore transparency entry: 1888009508
- Sigstore integration time:
-
Permalink:
davidesidoti/unit3dprep@72669a0963e763bba8123621ceae99ff6371c06b -
Branch / Tag:
refs/tags/v1.1.4 - Owner: https://github.com/davidesidoti
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@72669a0963e763bba8123621ceae99ff6371c06b -
Trigger Event:
push
-
Statement type:
File details
Details for the file unit3dprep-1.1.4-py3-none-any.whl.
File metadata
- Download URL: unit3dprep-1.1.4-py3-none-any.whl
- Upload date:
- Size: 501.8 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 |
2bb3c6716d45d89471a491004e84540af4f66ae5a08cc048e4d62b2127c6eba7
|
|
| MD5 |
151ef850193bacdef5d389ff4af0392a
|
|
| BLAKE2b-256 |
9a49571190149845e62d81cb3de95bd619bb50ed0636770508005d4a99cf60d1
|
Provenance
The following attestation bundles were made for unit3dprep-1.1.4-py3-none-any.whl:
Publisher:
publish-pypi.yml on davidesidoti/unit3dprep
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
unit3dprep-1.1.4-py3-none-any.whl -
Subject digest:
2bb3c6716d45d89471a491004e84540af4f66ae5a08cc048e4d62b2127c6eba7 - Sigstore transparency entry: 1888009607
- Sigstore integration time:
-
Permalink:
davidesidoti/unit3dprep@72669a0963e763bba8123621ceae99ff6371c06b -
Branch / Tag:
refs/tags/v1.1.4 - Owner: https://github.com/davidesidoti
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@72669a0963e763bba8123621ceae99ff6371c06b -
Trigger Event:
push
-
Statement type: