Fork de Unit3Dup adapté pour G3MINI Tracker.
Ce fork ajoute la normalisation automatique des noms de release selon les conventions du tracker, la détection du flag personal_release par tag d'équipe, et le nettoyage automatique des fichiers .nfo orphelins.
- Normalisation des noms de release : les noms sont automatiquement reformatés selon les conventions G3MINI (
Titre.Année.Langue.Résolution.HDR.Source.Audio.Codec-TEAM) - Détection
personal_release: si le tag de la release (ex:-KFL) correspond à un tag configuré dansTAGS_TEAM, le champpersonal_releaseest automatiquement coché à l'upload - Nettoyage des
.nfoorphelins : le watcher supprime automatiquement les fichiers.nfoisolés après traitement
sudo apt install ffmpeg python3 python3-pip python3-venv gitIl vous faut la version 3.13.5 de Python3
git clone https://github.com/lantiumBot/Unit3Dup-G3MINI ~/unit3dup
cd ~/unit3duppython3 -m venv .venv
source .venv/bin/activate
pip install -e .L'option -e (editable) permet de recevoir les mises à jour du fork simplement avec un git pull, sans réinstaller.
unit3dup --helpSi la commande n'est pas trouvée, active d'abord le venv manuellement :
source .venv/bin/activate
unit3dup --helpLe wrapper permet d'utiliser unit3dup depuis n'importe où sans activer le venv manuellement à chaque fois. Il détecte automatiquement son emplacement — peu importe où tu as cloné le repo.
Rends-le exécutable et crée le symlink :
chmod +x ~/unit3dup/unit3dup-wrapper.sh
sudo ln -s ~/unit3dup/unit3dup-wrapper.sh /usr/local/bin/unit3dupVérifie que ça fonctionne :
which unit3dup
unit3dup --helpAu premier lancement, unit3dup crée automatiquement le dossier ~/Unit3Dup_config/ avec un fichier Unit3Dbot.json pré-rempli :
unit3dup --helpnano ~/Unit3Dup_config/Unit3Dbot.jsonLes champs essentiels à renseigner :
| Champ | Description | Requis |
|---|---|---|
Gemini_URL |
URL de G3MINI | ✅ |
Gemini_APIKEY |
Clé API (profil G3MINI) | ✅ |
Gemini_PID |
Ton passkey | ✅ |
TMDB_APIKEY |
Clé gratuite sur themoviedb.org | ✅ |
WATCHER_PATH |
Chemin vers ton dossier de watch (la où sont les releases à upload) | ✅ |
WATCHER_DESTINATION_PATH |
Chemin de destination des releases après l'upload | ✅ |
IMGBB_KEY |
Clé gratuite sur imgbb.com pour les screenshots | ✅ |
Permissions : Assure-toi que l'utilisateur qui lance unit3dup a bien les droits en lecture sur
WATCHER_PATHet en écriture surWATCHER_DESTINATION_PATH. Si ces dossiers sont sur un montage NFS ou un partage réseau, vérifie aussi que le montage est actif avant de lancer le watcher.
La section uploader_tag n'est pas générée automatiquement, il faut l'ajouter manuellement dans le JSON :
"uploader_tag": {
"TAGS_TEAM": ["MONTAG"]
}Si ta release se termine par -MONTAG, le champ personal_release sera automatiquement activé à l'upload. Tu peux mettre plusieurs tags dans le tableau.
# Uploader un fichier
unit3dup -u /chemin/vers/fichier.mkv
# Uploader un dossier entier
unit3dup -f /chemin/vers/dossier
# Scanner un dossier
unit3dup -scan /chemin/vers/dossiercd ~/unit3dup
git pullPas besoin de réinstaller grâce au mode -e. Si des nouvelles dépendances ont été ajoutées :
source .venv/bin/activate
pip install -e .Ce fork est basé sur Unit3Dup — licence MIT.
Une stack Docker prête à l'emploi est disponible à la racine du dépôt avec :
Dockerfiledocker-compose.yml.dockerignore
Le conteneur utilise ce fork localement et stocke sa configuration dans /config via la variable d'environnement UNIT3DUP_CONFIG_ROOT.
Le docker-compose.yml monte ces dossiers :
./docker-data/config->/config./docker-data/watch->/watch./docker-data/done->/done./docker-data/media->/data
Sur un NAS, remplace de préférence ces chemins par tes partages absolus, par exemple :
volumes:
- /volume1/docker/unit3dup/config:/config
- /volume1/torrents/watch:/watch
- /volume1/torrents/done:/done
- /volume1/media:/datadocker compose buildLance une première fois l'outil pour créer /config/Unit3Dbot.json :
docker compose run --rm unit3dup --helpModifie ensuite Unit3Dbot.json dans ton dossier config et adapte au minimum :
"WATCHER_PATH": "/watch",
"WATCHER_DESTINATION_PATH": "/done"Renseigne aussi :
Gemini_URLGemini_APIKEYGemini_PIDTMDB_APIKEYIMGBB_KEY
Si tu utilises un client torrent externe sur le NAS, pense également à corriger :
QBIT_HOST/QBIT_PORT- ou
TRASM_HOST/TRASM_PORT - ou
RTORR_HOST/RTORR_PORT
docker compose up -dLe service démarre avec la commande -watcher.
Note importante : Le mode
-watcherutilisé par le compose par défaut suppose qu'un client torrent configuré soit accessible si-noseedn'est pas utilisé. SiqBittorrent,TransmissionourTorrentn'est pas encore joignable depuis le conteneur, le service peut redémarrer en boucle au lancement.Pour un premier test Docker sans client torrent, tu peux par exemple lancer :
docker compose run --rm unit3dup -scan /watch -noseed -noupOu modifier temporairement la commande du service en :
command: ["-watcher", "-noseed"]
Pour envoyer un fichier déjà présent dans le volume /data :
docker compose run --rm unit3dup -u /data/mon_fichier.mkvPour scanner un dossier :
docker compose run --rm unit3dup -scan /data/mon_dossierLe compose utilise :
user: "${PUID:-1000}:${PGID:-1000}"Adapte PUID et PGID à l'utilisateur de ton NAS si besoin pour éviter les problèmes d'accès sur les partages.