Uso › CLI¶
La CLI unit3dprep è pensata per l'uso interattivo via SSH o terminale locale. Non serve la Web UI: è un workflow diretto file → hardlink → unit3dup.
Entry point: unit3dprep (registrato da pip install -e .).
Sintassi¶
-u e -f sono mutuamente esclusivi. Nessun altro flag: tutto il resto avviene tramite prompt interattivi.
Flusso -u (singolo file)¶
- Check audio —
pymediainfoelenca le tracce. Se non c'è italiano, esce con errore. - Conferma — "Lingua italiana trovata. Proseguo con hardlink e rinomina? [y/n]".
- TMDB ID — prompt "Inserisci TMDB ID per movie (guessit: 'Dune Part Two')". Cerca su https://www.themoviedb.org, copia l'ID numerico dall'URL (
/movie/693134→693134) e incollalo. ServeTMDB_API_KEY. - Nome finale —
guessit+extract_specscompongono un nome secondo la nomenclatura. Puoi editarlo inline (readline precarica il default). - Collision check — se il target esiste in
~/seedings/, chiede sovrascrivi / salta / annulla. - Hardlink — creato in
~/seedings/<nome finale>.<ext>. - Conferma upload — "Uploadare '
' tramite unit3dup? [y/n]" . unit3dup— se accetti, lanciaunit3dup -b -u <path assoluto>. Exit code restituito al shell.
Output atteso¶
Analisi tracce audio: Dune.Part.Two.2024.mkv ...
Lingua italiana trovata. Proseguo con hardlink e rinomina? [y/n]: y
Inserisci TMDB ID per movie (guessit: 'Dune Part Two'): 693134
Nome finale: Dune Parte Due (2024) 2160p UHD BluRay TrueHD 7.1 HDR10 H.265 - ItaTorrentsBot
Hardlink creato: /home/user/seedings/Dune Parte Due (2024) ... .mkv
Uploadare 'Dune Parte Due ... .mkv' tramite unit3dup? [y/n]: y
[unit3dup output ...]
Flusso -f (serie / stagione)¶
- Scansione — tutti i file video nella cartella vengono analizzati.
- Check audio su TUTTI — se anche uno solo manca l'italiano, esce.
- TMDB ID — prompt per la serie, non per la stagione.
- Parsing episodi —
guessitestraeS##E##da ogni filename. Episodi senza S/E vengono segnalati e saltati. - Nome cartella — generato dal primo episodio come campione. Editabile.
- Hardlink tree —
~/seedings/<nome cartella>/<nome episodio N>.<ext>per ogni file. - Conferma upload — come sopra.
unit3dup— lanciaunit3dup -b -f <path assoluto cartella>.
Puntare a una singola stagione¶
Puoi puntare direttamente a Serie/Season 01/: guessit opera sui filename dei singoli episodi, non sul nome della cartella, quindi funziona. Questo è utile per serie multi-stagione dove vuoi caricarne una per volta.
Variabili d'ambiente CLI¶
| Variabile | Effetto |
|---|---|
TMDB_API_KEY |
Richiesta per tmdb_fetch. Senza, il prompt TMDB fallisce con errore. |
U3DP_MEDIA_ROOT |
Non usata dalla CLI direttamente, ma utile se vuoi path assoluti brevi via completion. |
U3DP_SEEDINGS_DIR |
Cambia dove vengono creati gli hardlink. |
La CLI legge U3DP_SEEDINGS_DIR attraverso core.seedings_dir(), quindi rispetta anche Unit3Dbot.json.
Comandi unit3dup lanciati¶
- Film / episodio singolo:
unit3dup -b -u <path assoluto file> - Serie / stagione:
unit3dup -b -f <path assoluto cartella>
Il path è sempre passato come .resolve() (assoluto, simlink-risolti). -b = batch mode (non interattivo lato unit3dup).
Scelte possibili ai prompt¶
| Prompt | Risposte valide |
|---|---|
| Conferma binaria | y / yes / s / si / sì → sì; tutto il resto → no |
| Collision | o sovrascrivi / s salta / c annulla |
| Nome finale | editabile inline con readline (frecce ←→), invio per confermare |
Ctrl+C durante un prompt termina con exit code 130.
Exit code¶
| Codice | Significato |
|---|---|
0 |
Successo (upload completato o annullato dall'utente dopo hardlink). |
1 |
File/cartella non valido, no italiano, nome vuoto, TMDB errore irrecuperabile. |
127 |
unit3dup non trovato nel PATH. |
130 |
Ctrl+C. |
| altro | Exit code propagato da unit3dup. |
Differenza dal wizard Web UI¶
| Aspetto | CLI | Wizard Web |
|---|---|---|
| Rilevamento italiano | Blocca se manca | Configurabile (W_AUDIO_CHECK) |
| TMDB | Sempre manuale (ID) | Ricerca + match automatico |
| Nome finale | Editabile inline | Editabile con preview |
| Upload | unit3dup foreground |
unit3dup in PTY con SSE stream |
| Storico | Non scrive nel DB | Scrive U3DP_DB_PATH |
| Batch | Un file/cartella per volta | Stesso |
Nessuna scrittura nello storico
La CLI non aggiorna ~/.unit3dprep_db.json. Se vuoi che l'upload appaia nella Web UI come "Uploaded", passa attraverso il wizard o quickupload.