#!/bin/bash set -euo pipefail IFS=$'\n\t' function checkGlobal() { hash mkvpropedit 2>/dev/null || { echo >&2 "Erreur: Commande mkvmerge pas trouvé, merci de l'installer" exit 1 } hash filebot() 2>/dev/null || { echo >&2 "Erreur: Commande filebot pas trouvé, merci de l'installer" exit 1 } hash mediainfo() 2>/dev/null || { echo >&2 "Erreur: Commande mediainfo pas trouvé, merci de l'installer" exit 1 } if [ -d "Fait" ]; then echo "Le dossier Fait existe" else mkdir Fait echo "Le dossier Fait n'existe pas, il a été créé" fi } ## on lance la fonction checkGlobal # $1 est le fichier à traiter préciser dans la commande # On récupère le nom du fichier fichier=$(basename "$1") echo "Traitement du fichier $fichier" ## Check input file. if [ ! -f "$fichier" ]; then echo >&2 "ErroErreurr: Fichier d'entrée non trouvé" exit 1 fi mediainfo "$fichier" echo " Quel est le nom de la piste VFF ? " read vff echo " Quel est le nom de la piste VO ? " read vo for i in *.mkv; do shit=$(mkvinfo "$i" | awk '/mkvextract/') #compter le nombre de ligne de mkvextract nbLigne=$(echo "$shit" | wc -l) if [ $nbLigne == 6 ]; then echo "Lancement de la modification du fichier "$i" , 6 tracks" #mkvmerge --output Fait/"$i"'.TEST.mkv' --language 0:und --default-track 0:yes --display-dimensions 0:1920x1080 --language 1:fr --track-name "1:${vff}" --default-track 1:yes --language 2:en --track-name "2:${vo}" --sub-charset 3:UTF-8 --language 3:fr --track-name '3:VFF Forced' --default-track 3:yes --sub-charset 4:UTF-8 --language 4:fr --track-name '4:VFF Full' --sub-charset 5:UTF-8 --language 5:en --track-name '5:VO Full' '(' "$i" ')' --title "" --track-order 0:0,0:1,0:2,0:3,0:4,0:5 mkvmerge --output Fait/"$i"'.TEST.mkv' \ --language 0:und \ --default-track 0:yes \ --display-dimensions 0:1920x1080 \ --language 1:fr \ --track-name "1:${vff}" \ --default-track 1:yes \ --language 2:en \ --track-name "2:${vo}" \ --sub-charset 3:UTF-8 \ --language 3:fr \ --track-name '3:VFF Forced' \ --forced-track 3:yes \ --default-track 3:yes \ --sub-charset 4:UTF-8 \ --language 4:fr \ --track-name '4:VFF Full' \ --sub-charset 5:UTF-8 \ --language 5:en \ --track-name '5:VO Full' '(' "$i" ')' \ --title "" \ --track-order 0:0,0:1,0:2,0:3,0:4,0:5 fi if [ $nbLigne == 5 ]; then echo "Lancement de la modification du fichier "$i" , 5 tracks" mkvmerge --output Fait/"$i"'.TEST.mkv' \ --language 0:und \ --default-track 0:yes \ --display-dimensions 0:1920x1080 \ --language 1:fr \ --track-name "1:${vff}" \ --default-track 1:yes \ --language 2:en \ --track-name "2:${vo}" \ --sub-charset 3:UTF-8 \ --language 3:fr \ --track-name '3:VFF Full' \ --sub-charset 4:UTF-8 \ --language 4:fr \ --track-name '4:VO Full' '(' "$i" ')' \ --title "" \ --track-order 0:0,0:1,0:2,0:3,0:4 fi if [ $nbLigne == 4 ]; then echo "Lancement de la modification du fichier "$i" , 4 tracks" mkvmerge --output Fait/"$i"'.TEST.mkv' \ --language 0:und \ --default-track 0:yes \ --display-dimensions 0:1920x1080 \ --language 1:fr \ --track-name "1:${vff}" \ --default-track 1:yes \ --language 2:en \ --track-name "2:${vo}" \ --sub-charset 3:UTF-8 \ --language 3:fr \ --track-name '3:VFF Full' '(' "$i" ')' \ --title "" \ --track-order 0:0,0:1,0:2,0:3 fi done cd Fait for i in *.mkv; do i2=$(echo $i | sed -E 's/.TEST.mkv//gm;t;d') mv "$i" "$i2" done cd .. rm *.mkv mv Fait/* . rm -r Fait filebot -rename *.mkv --db TheTVDB --lang French #FIn du programme echo "Merci de m'avoir utilisé !" exit 0