Applicazione desktop (Electron) per la gestione completa delle release su tracker Unit3D: rinomina file/cartelle secondo le rules del tracker, generazione BBCode, upload integrato e analisi di torrent gia` pubblicati.
Scarica l'ultima versione dalla pagina Releases e lancia il file .exe — nessuna installazione richiesta, e` un eseguibile portabile.
- Auto-detect di titolo, anno, stagione, episodio dal nome file e dai metadata.
- Parsing MediaInfo/BDInfo per codec, audio, HDR e sorgente.
- Rilevamento automatico del tag servizio streaming dal nome originale (NF, AMZN, HMAX, ATVP, DSNP, ecc.) — il tag viene sempre preservato nel nome rinominato anche se non selezionato manualmente.
- Popup disambiguazione formato: quando il formato non è rilevabile dal nome file o da MediaInfo, compare un popup che chiede di selezionare il formato corretto (WEB-DL, WEBRip, Encode, Remux, Full Disc). Se si seleziona Encode viene chiesta anche la sorgente (BluRay, UHD BluRay, WEBRip, DVD, HDTV). Il popup compare anche per contenuti rilevati come Encode che potrebbero essere WEB-DL (es. NF/HMAX).
- Gestione multi-episode (es. S01E01-E02).
- Anteprima del piano di rinomina prima di applicare.
- Regole di naming allineate al tracker (vedi
docs/RULES.txt).
- Workflow guidato a step con suggerimento titolo automatico.
- Generazione BBCode per la descrizione del torrent con footer
Generated by SHRI-Tools vX.X.X. - Creazione
.torrent(tramite create-torrent o mkbrr). - Dupe check automatico sul tracker con filtri dedicati.
- Upload diretto al tracker + invio al client torrent (qBittorrent / Transmission).
- Compatibile con qBittorrent 5.2.0+ (gestione cookie
QBT_SID_<porta>, header CSRF, risposta HTTP 204). - Cartella job: al termine del flusso viene creata automaticamente una cartella
<OutputDir>/<Titolo>/con file a nome fisso:BASE.torrent— torrent generato localmenteMEDIAINFO.txt— output MediaInfo completoDEBUG.txt— log diagnostico[SHRI]DESCRIPTION.txt— BBCode della descrizioneimage_data.json— dati screenshot per ripristino automaticoimage_urls.txt— URL degli screenshot caricati, uno per riga
- Inserisci un link Unit3D e ottieni:
- titolo suggerito secondo le rules,
- MediaInfo sintetico,
- badge ID meta copiabili,
- segnalazione mismatch ID,
- BBCode generato automaticamente dai metadati del torrent analizzato.
- Al termine dell'analisi si apre il modal BBCode con i tasti:
- Modifica — abilita la modifica diretta del testo
- Anteprima — rendering visivo del BBCode
- Copia — copia negli appunti
- Il footer del BBCode generato da analisi riporta
Edited by SHRI-Tools vX.X.Xper distinguerlo da una descrizione creata ex novo. - Il pulsante Anteprima BBCode nell'area azioni principali apre lo stesso modal in qualsiasi momento, anche senza passare dall'analisi tracker.
- Cattura automatica dei frame tramite FFmpeg con tempi ottimizzati.
- Supporto HDR con tonemapping automatico (fallback senza tonemap se necessario).
- Upload su imgBB o PTScreens con fallback automatico.
- I file screenshot vengono nominati automaticamente con il titolo e l'anno del contenuto (es.
Cast_Away_1996_01.png,The_Flash_2022_01.png). - Pannello log diagnostico (Impostazioni -> Apri log) per analizzare ogni fase: durata rilevata, calcolo tempi, esito cattura e upload per ogni screen.
| Modalita` | Descrizione |
|---|---|
| File/Cartella | Analisi locale e rinomina |
| Upload Wizard Integrata | Upload completo gestito da SHRI-Tools |
| Analisi Tracker | Analisi torrent gia` presenti sul tracker |
- TMDb key: auto-matching e metadata film/serie.
- TVDb key: auto-matching per serie/episodi.
- OMDb key: fallback metadata via IMDb.
- Lingua preferita: influenza titoli/descrizioni recuperate (es.
it-IT). - Lista servizi: elenco personalizzato servizi streaming per dropdown.
- Lista tag gruppo: elenco personalizzato tag gruppo.
- Auto-detect tag gruppo: rileva il tag dal nome file/cartella.
- Auto-NoGroup: applica NoGroup se non esiste un tag gruppo.
- Lingua nei nomi cartella / file: include o omette il tag lingua.
- Ometti NoGroup in file/cartelle: non scrive NoGroup nei nomi (resta valido nei titoli).
- Auto-apply suggerimenti: applica automaticamente i suggerimenti di formato/source/codec.
- Percorso BDInfo: eseguibile BDInfo (per dischi Blu-ray).
- Percorso FFmpeg: necessario per la generazione degli screenshot.
- Numero screenshot: quanti frame catturare.
- Host immagini primario / fallback: imgBB o PTScreens.
- imgBB key / PTScreens key: API key per l'upload degli screenshot.
- Unit3D Base URL: URL del tracker di destinazione.
- Unit3D API key: necessaria per upload, analisi e dupe check.
- Upload anonimo / Personal release / Mod queue: flag upload.
- Override category / type / resolution: mapping custom ID Unit3D.
- Announce URL / passkey: per la generazione del
.torrent. - Output torrent: cartella di destinazione del file
.torrent. - mkbrr path / mkbrr workers: eseguibile e parallelismo per hashing.
- Torrent private: flag private nel
.torrent. - Client torrent: qBittorrent o Transmission.
qBittorrent
- Host / Porta / HTTPS, Username / Password.
- Save path, Categoria (supporto categorie multiple separate da virgola), Auto-start.
- Path mapping locale/remoto (quando il client e` su altra macchina).
Transmission
- Host / Porta / HTTPS, Username / Password.
- Save path, Auto-start.
- Path mapping locale/remoto.
- Override ID Unit3D (category/type/resolution) se l'istanza ha ID diversi dagli standard SHRI.
- Dettagli path mapping client remoto.
git clone https://github.com/tiberio87/SHRI-Tools.git
cd SHRI-Tools
npm install
npm startnpm run distIl file viene generato in dist/SHRI-Tools <versione>.exe.
Le release ufficiali vengono compilate automaticamente da GitHub Actions ad ogni nuovo tag
v*.*.*e allegate direttamente alla pagina Releases.
Il repository include una configurazione Docker per eseguire l'app Electron in un container Ubuntu 22.04 con:
- TigerVNC (
Xtigervnc+fluxbox) — accesso GUI via client VNC sulla porta5901; - noVNC — accesso GUI via browser sulla porta
6080(nessuna installazione richiesta); ffmpeg,mkvtoolnixinstallati via apt;mkbrrebdinfoscaricati automaticamente durante il build come binari di sistema;- percorsi degli strumenti preconfigurati automaticamente al primo avvio su Linux.
Opzione consigliata — immagine pre-buildata (nessun build locale)
docker compose pull && docker compose up -dL'immagine ufficiale viene pubblicata automaticamente su GitHub Container Registry ad ogni release: ghcr.io/tiberio87/shri-tools:latest.
Opzione alternativa — build locale
docker compose build && docker compose up -dPer fermare il container:
docker compose downOpzione 1 — Browser (consigliata, nessun client richiesto)
Apri http://localhost:6080/vnc.html e clicca Connect.
Opzione 2 — Client VNC
Connettiti a localhost:5901 (o <host>:5901 da un'altra macchina) con qualsiasi client VNC. Non è richiesta password.
Sicurezza: l'accesso VNC non è autenticato. Usare solo in rete locale o privata. Non esporre le porte
5901/6080su Internet senza un layer di autenticazione (es. reverse proxy con auth, tunnel SSH).
Il file docker-compose.yml è tracciato da git: non modificarlo direttamente, altrimenti ogni git pull potrebbe generare conflitti.
Per personalizzare la configurazione usa il meccanismo di override nativo di Docker Compose:
cp docker-compose.override.yml.example docker-compose.override.ymlPoi modifica docker-compose.override.yml con le tue impostazioni. Il file è già in .gitignore quindi le tue modifiche non interferiranno mai con gli aggiornamenti futuri. Docker Compose lo fonde automaticamente con docker-compose.yml ad ogni docker compose up.
Per evitare che i file creati nei volumi siano di proprietà di root sull'host, imposta PUID e PGID con i tuoi UID/GID:
# Trova i tuoi ID
id -u && id -gNel file docker-compose.override.yml:
services:
shri-tools:
environment:
- PUID=1000 # sostituisci con il tuo UID
- PGID=1000 # sostituisci con il tuo GID| Host (default) | Container | Contenuto |
|---|---|---|
./data |
/data |
impostazioni Electron e dati sensibili |
./media |
/media |
file video sorgente da processare |
./output |
/output |
directory output job (torrent, screenshot, ecc.) |
Per usare percorsi diversi (es. NAS) nel file docker-compose.override.yml:
services:
shri-tools:
volumes:
- ./data:/data
- /mnt/nas/video:/media
- /mnt/nas/output:/outputAl primo avvio i percorsi degli strumenti vengono precompilati automaticamente. In Impostazioni trovi:
| Strumento | Percorso |
|---|---|
| FFmpeg | /usr/bin/ffmpeg |
| BDInfo | /usr/local/bin/bdinfo |
| mkbrr | /usr/local/bin/mkbrr |
| mkvpropedit | /usr/bin/mkvpropedit |
La cartella output torrent va impostata a /output (mappata sul volume host).
Le impostazioni Electron vengono salvate in /data (volume ./data), quindi sono persistenti tra i riavvii del container. Le API key e le password vengono archiviate in una store separata cifrata; se l'ambiente supporta safeStorage, Electron usa quello, altrimenti usa un fallback cifrato persistito nel volume.
I segreti non vengono richiesti a ogni avvio finché resta presente il volume ./data. Se vuoi ripartire da zero basta svuotare la cartella ./data sull'host.
Se preferisci controllare esplicitamente la chiave di cifratura del fallback, puoi impostare SHRI_TOOLS_SECRET_KEY nel container.
Nel container l'app viene avviata con --no-sandbox --disable-gpu, perché il processo Electron gira come utente root nell'immagine Docker e il rendering GPU non è disponibile in ambiente VNC. Questo è normale per un deployment containerizzato.
In caso di problemi aprire Impostazioni -> Apri log per visualizzare il pannello di debug.
Questo progetto e` distribuito sotto la SHRI - Tools Public License (SHRITPL) v1.0.
Testo completo: LICENSE Per gli screenshot, il log riporta in dettaglio: durata video, framerate, calcolo tempi, esito FFmpeg per ogni frame, host e URL di upload.
docs/DEVELOPMENT.md— architettura, flussi e note sviluppo.docs/RULES.txt— regole di naming del tracker.
- Le impostazioni sono salvate in
localStoragedel profilo Electron — un reset dei dati dell'app equivale a un reset delle impostazioni. - La qualita
dei suggerimenti dipende dalla qualitadei nomi file e dei metadata disponibili.
Questo progetto e` un fork di SHRI-Tools creato da @exus85. Grazie per aver sviluppato e condiviso il progetto originale su cui si basa tutto il lavoro qui presente.