Initial commit
This commit is contained in:
commit
1575bc8058
1645
Torrent/Info_Parameteres.txt
Normal file
1645
Torrent/Info_Parameteres.txt
Normal file
File diff suppressed because it is too large
Load Diff
106
Torrent/KFL_template.txt
Normal file
106
Torrent/KFL_template.txt
Normal file
|
@ -0,0 +1,106 @@
|
|||
General;"
|
||||
_____ _____ ___ ___ ___ _ _ _____ _
|
||||
|_ _| | ____| / | / |/ | | | / / | ___| | |
|
||||
| | | |__ / /| | / /| /| | | |/ / | |__ | |
|
||||
| | | __| / / | | / / |__/ | | | |\ \ | __| | |
|
||||
| | | |___ / / | | / / | | | | \ \ | | | |___
|
||||
|_| |_____| /_/ |_| /_/ |_| |_| \_\ |_| |_____|
|
||||
_____ _____ _____ _____ _____ __ _ _____ _____
|
||||
| _ \ | _ \ | ____| / ___/ | ____| | \ | | |_ _| | ____|
|
||||
| |_| | | |_| | | |__ | |___ | |__ | \| | | | | |__
|
||||
| ___/ | _ / | __| \___ \ | __| | |\ | | | | __|
|
||||
| | | | \ \ | |___ ___| | | |___ | | \ | | | | |___
|
||||
|_| |_| \_\ |_____| /_____/ |_____| |_| \_| |_| |_____|
|
||||
|
|
||||
=========================================================================
|
||||
|
|
||||
$if(%FileName%, %FileName%,)
|
||||
|
|
||||
=========================================================================
|
||||
|
|
||||
|
|
||||
=========================================================================
|
||||
|
|
||||
$if(%Title%,Title.................: %Title%,)
|
||||
$if(%Collection%,Collection............: %Collection%,)
|
||||
$if(%Season%,Episode...............: %Season%,)
|
||||
$if(%FileSize/String4%,Size..................: %FileSize/String4%,)
|
||||
$if(%OverallBitRate/String%,Overall Bitrate.......: %OverallBitRate/String%,)
|
||||
$if(%FrameRate/String%,Frame Rate............: %FrameRate/String%,)
|
||||
$if(%Format%,Format................: %Format%,)
|
||||
$if(%Format_Version%,Format Version........: %Format_Version%,)
|
||||
$if(%Duration/String%,Duration..............: %Duration/String%,)
|
||||
$if(%Video_Format_WithHint_List%,Video Codec...........: %Video_Format_WithHint_List%,)
|
||||
$if(%Audio_Format_WithHint_List%,Audio Codec...........: %Audio_Format_WithHint_List%,)
|
||||
$if(%Text_Format_WithHint_List%,Subtitle Codec........: %Text_Format_WithHint_List%,)
|
||||
$if(%VideoCount%,Video Count...........: %VideoCount%,)
|
||||
$if(%AudioCount%,Audio Count...........: %AudioCount%,)
|
||||
$if(%TextCount%,Subtitle Count........: %TextCount%,)
|
||||
$if(%Track/Position%,Piste.................: %Track/Position%,)
|
||||
$if(%Album%,Album.................: %Album%,)
|
||||
$if(%Performer%,Performer.............: %Performer%,)
|
||||
$if(%Genre%,Genre.................: %Genre%,)
|
||||
$if(%Cover%,Cover.................: %Cover%,)\n
|
||||
|"
|
||||
|
||||
Video;"
|
||||
==============================================
|
||||
Video %StreamKindPos%
|
||||
==============================================
|
||||
$if(%ID/String%,ID....................: %ID/String%,)
|
||||
$if(%Format_Commercial%%Format/Info%,Format................: %Format_Commercial% %Format/Info%,)
|
||||
$if(%Width%%Height%,Resolution............: %Width%x%Height%,)
|
||||
$if(%DisplayAspectRatio/String%,Aspect Ratio..........: %DisplayAspectRatio/String%,)
|
||||
$if(%Format_Profile%,Codec Profile.........: %Codec/String%%Format_Profile%,)
|
||||
$if(%CodecID%,ID Codec..............: %CodecID%,)
|
||||
$if(%Duration/String1%,Duration..............: %Duration/String1%,)
|
||||
$if(%StreamSize/String%,Size..................: %StreamSize/String%,)
|
||||
$if(%BitRate/String%,Bit Rate..............: %BitRate/String%,)
|
||||
$if(%BitDepth/String%,Bit Depth.............: %BitDepth/String%,)
|
||||
$if(%FrameRate% fps,Framerate.............: %FrameRate% fps,)
|
||||
$if(%FrameRate_Mode%,Frame Rate Mode.......: %FrameRate_Mode%,)
|
||||
$if(%Encoded_Library_Name%,Encoding Library......: %Encoded_Library_Name%,)
|
||||
$if(%Default%,Default...............: %Default%,)\n
|
||||
|"
|
||||
|
||||
Audio;"
|
||||
==============================================
|
||||
Audio %StreamKindPos%
|
||||
==============================================
|
||||
$if(%ID/String%,ID....................: %ID/String%,)
|
||||
$if(%Language/String%,Language..............: %Language/String%,)
|
||||
$if(%Title%,Title.................: %Title%,)
|
||||
$if(%Format_Commercial%,Format................: %Format_Commercial% %Format/Info%,)
|
||||
$if(%CodecID%,Codec ID..............: %CodecID%,)
|
||||
$if(%Duration/String1%,Duration..............: %Duration/String1%,)
|
||||
$if(%FrameRate%,Frame Rate............: %FrameRate%,)
|
||||
$if(%BitRate/String%,Bit Rate..............: %BitRate/String%,)
|
||||
$if(%BitRate_Mode%,Bitrate Mode..........: %BitRate_Mode%,)
|
||||
$if(%BitDepth/String%,Bit Depth.............: %BitDepth/String%,)
|
||||
$if(%SamplingRate/String%,Sampling Rate.........: %SamplingRate/String%,)
|
||||
$if(%StreamSize/String%,Stream Size...........: %StreamSize/String%,)
|
||||
$if(%Default%,Default...............: %Default%,)
|
||||
$if(%ChannelPositions%,Channel Layout........: %ChannelPositions%,)
|
||||
Channels..............: %Channel(s)/String%\n
|
||||
|"
|
||||
Text;"
|
||||
==============================================
|
||||
Subtitle %StreamKindPos%
|
||||
==============================================
|
||||
$if(%ID%,ID....................: %ID%,)
|
||||
$if(%StreamKind/String%,Stream Kind...........: %StreamKind/String%,)
|
||||
$if(%Title%,Title.................: %Title%,)
|
||||
$if(%Format/Info%,Format................: %Format_Commercial% %Format/Info%,)
|
||||
$if(%CodecID%,Codec ID..............: %CodecID%,)
|
||||
$if(%ElementCount%,Element Count.........: %ElementCount%,)
|
||||
$if(%StreamSize/String%,Stream Size...........: %StreamSize/String%,)
|
||||
$if(%Default%,Default...............: %Default%,)
|
||||
$if(%Forced%,Forced................: %Forced%,)
|
||||
$if(%Language/String%,Language..............: %Language/String%,)\n
|
||||
|"
|
||||
Menu;"
|
||||
==============================================
|
||||
Chapters %StreamKindPos%
|
||||
==============================================
|
||||
$if(%Chapters_Pos_Begin%,Chapter Pos Begin.....: %Chapters_Pos_Begin%,)
|
||||
$if(%Chapters_Pos_End%,Chapter Pos End.....: %Chapters_Pos_End%,)\n"
|
216
Torrent/torrent.sh
Executable file
216
Torrent/torrent.sh
Executable file
|
@ -0,0 +1,216 @@
|
|||
# /bin/bash
|
||||
|
||||
## Check install des dep.
|
||||
hash mediainfo 2>/dev/null || {
|
||||
echo >&2 "MediaInfo n'est pas installé. Installez-le avant de relancer ce script."
|
||||
exit
|
||||
}
|
||||
hash transmission-create 2>/dev/null || {
|
||||
echo >&2 "transmission-create n'est pas installé. Installez-le avant de relancer ce script."
|
||||
exit
|
||||
}
|
||||
|
||||
# Init Var
|
||||
TORRENT="false"
|
||||
SERIE="false"
|
||||
HELP="false"
|
||||
TENCODE="false"
|
||||
PUBLIC="false"
|
||||
|
||||
usage() {
|
||||
echo "Usage: torrent [ -A | --source-Audio ] [ -V | --source-Video ] [ -S | --source-Sub ]
|
||||
[ -t | --torrent ] [ -s | --serie ] [ -e | --team-encode ]
|
||||
[ -h | --help ]"
|
||||
exit 2
|
||||
}
|
||||
|
||||
ARGS=$(getopt -a -n "torrent" -o tsheoV:A:S: --long torrent,serie,help,team-encode,public-torrent,Video:,Audio:,Sub: -- "$@")
|
||||
eval set -- "$ARGS"
|
||||
VALID_ARGS=$?
|
||||
if [ "$VALID_ARGS" != "0" ]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
while true; do
|
||||
case "$1" in
|
||||
-t | --torrent)
|
||||
TORRENT="true"
|
||||
shift
|
||||
;;
|
||||
-s | --serie)
|
||||
SERIE="true"
|
||||
shift
|
||||
;;
|
||||
-h | --help)
|
||||
HELP="true"
|
||||
shift
|
||||
;;
|
||||
-e | --team-encode)
|
||||
TENCODE="true"
|
||||
shift
|
||||
;;
|
||||
-o | --public-torrent)
|
||||
PUBLIC="true"
|
||||
shift
|
||||
;;
|
||||
-V | --Video)
|
||||
SOURCE_VIDEO="$2"
|
||||
shift 2
|
||||
;;
|
||||
-A | --Audio)
|
||||
SOURCE_AUDIO="$2"
|
||||
shift 2
|
||||
;;
|
||||
-S | --Sub)
|
||||
SOURCE_SUB="$2"
|
||||
shift 2
|
||||
;;
|
||||
--)
|
||||
shift
|
||||
break
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option %s\n" "$1"
|
||||
usage
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ $HELP == true ]; then
|
||||
echo "---------------------------------------
|
||||
Prérequis :
|
||||
|
||||
Installer les dépendances : transmission-create et mediainfo
|
||||
|
||||
sudo apt install transmission-cli
|
||||
|
||||
sudo apt install mediainfo
|
||||
|
||||
- Se rendre dans le dossier du script
|
||||
- chmod u+x torrent.sh
|
||||
|
||||
----------------------------------------------------------------
|
||||
Option disponible :
|
||||
|
||||
-t = Pour créer un torrent en même temps que le NFO
|
||||
-e = Pour préciser que la release a été encodé par vous
|
||||
-A = Source des Audio
|
||||
-V = Source Video
|
||||
-S = Source des Sous-Titres
|
||||
-s = A utiliser si votre release est une série !
|
||||
|
||||
Important : Pour une série, un seul .torrent et un seul NFO sera crée pour le dossier.
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
Utilisation :
|
||||
|
||||
Pour faire le .torrent et le NFO d'un film :
|
||||
|
||||
./torrent.sh -t -e -A Ma.Release.Audio -V Ma.Release.Video -S Ma.Release.Sous_Titres /chemin/absolu/vers/la/release
|
||||
|
||||
Pour faire le .torrent et le NFO d'une série :
|
||||
|
||||
./torrent.sh -t -e -A Ma.Source.Audio -V Ma.Source.Video -S Ma.Source.Sous_Titres -s /chemin/absolu/vers/le/dossier/de/la/release
|
||||
"
|
||||
fi
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "N'oubliez pas de mettre le fichier vidéo ou dossier en argument.\nExemple : ./torrent.sh Gattaca.1997.Multi.Bluray.1080p.x265-KFL.mkv"
|
||||
exit
|
||||
fi
|
||||
if [ "$2" != "" ]; then
|
||||
echo "Mettez le fichier vidéo ou dossier entre guillemets.\nExemple : ./torrent.sh \"[Gattaca.1997.Multi.Bluray.1080p.x265-KFL.mkv\""
|
||||
exit
|
||||
fi
|
||||
|
||||
# S_SUB=$SOURCE_SUB
|
||||
# S_AUDIO=$SOURCE_AUDIO
|
||||
# S_VIDEO=$SOURCE_VIDEO
|
||||
|
||||
fs=$SOURCE_SUB
|
||||
S_SUB=$(echo $fs | sed -E 's/[^a-zA-Z0-9_.)(]/./gm;t;d')
|
||||
echo $S_SUB
|
||||
|
||||
fa=$SOURCE_AUDIO
|
||||
fa2=$(echo $fa | sed -E 's/[^a-zA-Z0-9_./-/)(]/./gm;t;d')
|
||||
S_AUDIO=$(echo $fa2) #| sed -E 's/ //gm;t;d')
|
||||
echo $S_AUDIO
|
||||
|
||||
fv=$SOURCE_VIDEO
|
||||
S_VIDEO=$(echo $fv | sed -E 's/[^a-zA-Z0-9_.)(]/./gm;t;d')
|
||||
echo $S_VIDEO
|
||||
|
||||
script_path=$(pwd)
|
||||
i="${1}"
|
||||
|
||||
if [[ -f "${i}" ]]; then
|
||||
if [ $TORRENT == true ]; then
|
||||
tracker="http://connect.p2ptracker.cc:8080/gKLQHb8eCuSmgKAd63lUz0g0PzDMxv27/announce"
|
||||
tkpr="$tracker"
|
||||
transmission-create -o "${i%.*}.torrent" -p -t $tkpr -c "Upload par KFL" --include ".*\.\(mpg\|avi\|3g2\|3gp\|asf\|avi\|f4v\|flv\|m2t\|m2ts\|m2v\|m4v\|mjpeg\|mkv\|mov\|mp4\|mpeg\|mts\|mxf\|ogv\|rm\|vob\|webm\|wmv\|m4a\|m4b\|aif\|aac\|ac3\|aiff\|flac\|mp3\|wma\)" "${i}"
|
||||
fi
|
||||
if [ $PUBLIC == true ]; then
|
||||
tkpub=$(curl https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best.txt | sed '/^[ \t\r\n]*$/d' | tail -n5 | tr '\n' ' ')
|
||||
publist="$tkpub"
|
||||
transmission-create -o "${i%.*}.PUBLIC.torrent" -t $publist $ -c "Upload par KFL" --include ".*\.\(mpg\|avi\|3g2\|3gp\|asf\|avi\|f4v\|flv\|m2t\|m2ts\|m2v\|m4v\|mjpeg\|mkv\|mov\|mp4\|mpeg\|mts\|mxf\|ogv\|rm\|vob\|webm\|wmv\|m4a\|m4b\|aif\|aac\|ac3\|aiff\|flac\|mp3\|wma\)" "${i}"
|
||||
fi
|
||||
nfo=$(mediainfo --Inform="file://$script_path/KFL_template.txt" "$i")
|
||||
new_nfo=$(echo "$nfo" | sed '/^$/d')
|
||||
if [ $TENCODE == true ]; then new_nfo=$(echo "$new_nfo" | awk 'NR==20{print "Encodage..............: KFL avec Handbrake Linux"}1'); fi
|
||||
if [[ ! -z "$SOURCE_SUB" ]]; then new_nfo=$(echo "$new_nfo" | awk 'NR==20{print "Source Sous-Titres....: '$S_SUB' "}1'); fi
|
||||
if [[ ! -z "$SOURCE_AUDIO" ]]; then new_nfo=$(echo "$new_nfo" | awk 'NR==20{print "Source Audio..........: '$S_AUDIO'"}1'); fi
|
||||
if [[ ! -z "$SOURCE_VIDEO" ]]; then new_nfo=$(echo "$new_nfo" | awk 'NR==20{print "Source Video..........: '${S_VIDEO}'"}1'); fi
|
||||
echo "$new_nfo" >"${i%.*}.nfo"
|
||||
|
||||
elif [[ -d "${i}" ]]; then
|
||||
dirpath=$(dirname $i)/$(basename $i)
|
||||
if [ $SERIE == false ]; then
|
||||
for f in $(find $dirpath -name "*.mkv" -or -name "*.mp4" -or -name "*.avi" -type f); do
|
||||
if [ $TORRENT == true ]; then
|
||||
tracker="http://connect.p2ptracker.cc:8080/gKLQHb8eCuSmgKAd63lUz0g0PzDMxv27/announce"
|
||||
tkpr="$tracker"
|
||||
transmission-create -o "${f%.*}.torrent" -p -t $tkpr -c "Upload par KFL" --include ".*\.\(mpg\|avi\|3g2\|3gp\|asf\|avi\|f4v\|flv\|m2t\|m2ts\|m2v\|m4v\|mjpeg\|mkv\|mov\|mp4\|mpeg\|mts\|mxf\|ogv\|rm\|vob\|webm\|wmv\|m4a\|m4b\|aif\|aac\|ac3\|aiff\|flac\|mp3\|wma\)" "${f}"
|
||||
fi
|
||||
if [ $PUBLIC == true ]; then
|
||||
tkpub=$(curl https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best.txt | sed '/^[ \t\r\n]*$/d' | tail -n5 | tr '\n' ' ')
|
||||
publist="$tkpub"
|
||||
transmission-create -o "${f%.*}.PUBLIC.torrent" -a $publist $ -c "Upload par KFL" --include ".*\.\(mpg\|avi\|3g2\|3gp\|asf\|avi\|f4v\|flv\|m2t\|m2ts\|m2v\|m4v\|mjpeg\|mkv\|mov\|mp4\|mpeg\|mts\|mxf\|ogv\|rm\|vob\|webm\|wmv\|m4a\|m4b\|aif\|aac\|ac3\|aiff\|flac\|mp3\|wma\)" "${f}"
|
||||
fi
|
||||
nfo=$(mediainfo --Inform="file://$script_path/KFL_template.txt" "$f")
|
||||
new_nfo=$(echo "$nfo" | sed '/^$/d')
|
||||
if [ $TENCODE == true ]; then new_nfo=$(echo "$new_nfo" | awk 'NR==20{print "Encodage..............: KFL avec Handbrake Linux"}1'); fi
|
||||
if [[ ! -z "$SOURCE_SUB" ]]; then new_nfo=$(echo "$new_nfo" | awk 'NR==20{print "Source Sous-Titres....: '$S_SUB'"}1'); fi
|
||||
if [[ ! -z "$SOURCE_AUDIO" ]]; then new_nfo=$(echo "$new_nfo" | awk 'NR==20{print "Source Audio..........: '$S_AUDIO'"}1'); fi
|
||||
if [[ ! -z "$SOURCE_VIDEO" ]]; then new_nfo=$(echo "$new_nfo" | awk 'NR==20{print "Source Video..........: '$S_VIDEO'"}1'); fi
|
||||
echo "$new_nfo" >"${f%.*}.nfo"
|
||||
done
|
||||
elif [ $SERIE == true ]; then
|
||||
f=$(find $dirpath -name "*.mkv" -or -name "*.mp4" -or -name "*.avi" -type f | sed -n "1p")
|
||||
cnt=$(find $dirpath -name "*.mkv" -or -name "*.mp4" -or -name "*.avi" -type f | wc -l)
|
||||
if [ $TORRENT == true ]; then
|
||||
tracker="http://connect.p2ptracker.cc:8080/gKLQHb8eCuSmgKAd63lUz0g0PzDMxv27/announce"
|
||||
tkpr="$tracker"
|
||||
transmission-create -o "$dirpath/$(basename $i).torrent" -p -t $tkpr -c "Upload par KFL" --include ".*\.mkv" "$dirpath"
|
||||
fi
|
||||
if [ $PUBLIC == true ]; then
|
||||
tkpub=$(curl https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best.txt | sed '/^[ \t\r\n]*$/d' | tail -n5 | tr '\n' ' ')
|
||||
publist="$tkpub"
|
||||
transmission-create -o "$dirpath/$(basename $i).PUBLIC.torrent" -a $publist -c "Upload par KFL" --include ".*\.mkv" "$dirpath"
|
||||
fi
|
||||
nfo=$(mediainfo --Inform="file://$script_path/KFL_template.txt" "$f")
|
||||
new_nfo=$(echo "$nfo" | sed '/^$/d')
|
||||
new_nfo=$(echo "$new_nfo" | awk 'NR==20{print "Poids Total...........: "}1')
|
||||
new_nfo=$(echo "$new_nfo" | awk 'NR==20{print "Nombre Episodes.......: '$(printf $cnt)'"}1')
|
||||
if [ $TENCODE == true ]; then new_nfo=$(echo "$new_nfo" | awk 'NR==20{print "Encodage..............: KFL avec Handbrake Linux\n"}1'); fi
|
||||
if [[ ! -z "$SOURCE_SUB" ]]; then new_nfo=$(echo "$new_nfo" | awk 'NR==20{print "Source Sous-Titres....: '$S_SUB'"}1'); fi
|
||||
if [[ ! -z "$SOURCE_AUDIO" ]]; then new_nfo=$(echo "$new_nfo" | awk 'NR==20{print "Source Audio..........: '$S_AUDIO'"}1'); fi
|
||||
if [[ ! -z "$SOURCE_VIDEO" ]]; then new_nfo=$(echo "$new_nfo" | awk 'NR==20{print "Source Video..........: '$S_VIDEO'"}1'); fi
|
||||
echo "$new_nfo" >"$dirpath/$(basename $i).nfo"
|
||||
mv "$dirpath/$(basename $i).nfo" "$dirpath/$(basename $i).torrent" ./
|
||||
|
||||
fi
|
||||
else
|
||||
echo "${i} is not valid"
|
||||
exit 1
|
||||
fi
|
90
encodage.sh
Executable file
90
encodage.sh
Executable file
|
@ -0,0 +1,90 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
|
||||
function checkGlobal() {
|
||||
hash ffmpeg 2>/dev/null || {
|
||||
echo >&2 "Erreur: Commande ffmpeg pas trouvé, merci de l'installer"
|
||||
exit 1
|
||||
}
|
||||
|
||||
if [ -d "audio" ]; then
|
||||
echo "Le dossier audio existe"
|
||||
else
|
||||
mkdir audio
|
||||
echo "Le dossier audio 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
|
||||
|
||||
for ((c = 1; c <=5; c++)); do
|
||||
echo " Quel est l'extension de fichier des audios $c ? "
|
||||
read temp
|
||||
ext_audio+=($temp)
|
||||
|
||||
echo " Quel est l'extension de fichier après encodage $c ? "
|
||||
read temp
|
||||
NEA+=($temp)
|
||||
|
||||
echo " Quel est le bitrate audio voulu $c ?"
|
||||
read temp
|
||||
bit_audio+=($temp)
|
||||
|
||||
ext_audio=()
|
||||
NEA=()
|
||||
bit_audio=()
|
||||
|
||||
echo " Souhaitez vous renommer le dossier audio ? (y/n)"
|
||||
read reponse
|
||||
|
||||
if [ "$reponse" == "y" ]; then
|
||||
echo "Quel est le nouveau nom du dossier audio ?"
|
||||
read nom_dossier
|
||||
fi
|
||||
|
||||
if [ "$reponse" == "n" ]; then
|
||||
echo "D'accord je touche à rien !"
|
||||
fi
|
||||
|
||||
for i in *.${ext_audio[$c]}; do
|
||||
ffmpeg -i "$i" -c:a ${NEA[$c]} -b:a ${bit_audio[$c]}k "$i.${NEA[$c]}"
|
||||
echo "Lancement de l'encodage de l'audio"
|
||||
done
|
||||
|
||||
mv *.${NEA} audio/
|
||||
|
||||
cd audio/
|
||||
|
||||
echo "Les fichiers audio ont été déplacés dans le dossier audio"
|
||||
|
||||
# Regarder si le nom du fichier contient .mkv dedans
|
||||
|
||||
for i in *; do
|
||||
i2=$(echo $i | sed -E 's/.dts|.eac3//gm;t;d')
|
||||
mv "$i" "$i2"
|
||||
done
|
||||
|
||||
if [ "$reponse" == "y" ]; then
|
||||
cd ..
|
||||
mv audio "$nom_dossier"
|
||||
fi
|
||||
|
||||
|
||||
#Le script est fini
|
||||
echo "Merci de m'avoir utilisé !"
|
||||
exit 0
|
217
extract.sh
Executable file
217
extract.sh
Executable file
|
@ -0,0 +1,217 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
|
||||
function checkGlobal() {
|
||||
hash mkvmerge 2>/dev/null || {
|
||||
echo >&2 "Erreur: Commande mkvmerge pas trouvé, merci de l'installer"
|
||||
exit 1
|
||||
}
|
||||
hash mkvextract 2>/dev/null || {
|
||||
echo >&2 "Erreur: Commande mkvmerge pas trouvé, merci de l'installer"
|
||||
exit 1
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
## 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
|
||||
|
||||
# Si le fichier est un fichier avi ou mp4, on le converti en mkv
|
||||
|
||||
if [[ $fichier != *.mkv ]]; then
|
||||
echo "Convertion du fichier $fichier en mkv"
|
||||
find "*" -execdir mkvmerge -o {}.mkv {} \;
|
||||
fi
|
||||
# Si le fichier est un fichier mkv on continue
|
||||
|
||||
if [[ $fichier == *.mkv ]]; then
|
||||
mkvinfo "$fichier" | awk '/audio/ || /Langue/ || /mkvextract/ || /Identifiant du codec:/ || /Nom:/'
|
||||
fi
|
||||
|
||||
echo " On extrait la vidéo ? (y/n)"
|
||||
read RepVideo
|
||||
|
||||
if [ "$RepVideo" == "n" ]; then
|
||||
echo "On ne extrait pas la vidéo"
|
||||
fi
|
||||
|
||||
echo " Combien d'audio voulez-vous traiter ? "
|
||||
read nb_lang
|
||||
|
||||
echo " Combien de sous-titres voulez-vous traiter ? "
|
||||
read nb_sub
|
||||
|
||||
echo " Voulez vous encoder les audios ? (y/n)"
|
||||
read encoder
|
||||
|
||||
if [ "$encoder" == "y" ]; then
|
||||
echo "Dois-je supprimer les anciens audio après l'encodage ? (y/n)"
|
||||
read supprimer
|
||||
if [ "$supprimer" == "n" ]; then
|
||||
echo "Ok on ne supprime pas les fichiers audio"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$encoder" == "n" ]; then
|
||||
echo "Ok on encode pas !"
|
||||
fi
|
||||
|
||||
audio_var=()
|
||||
lang_var=()
|
||||
audio_ext=()
|
||||
st_var=()
|
||||
st_ext=()
|
||||
st_lang=()
|
||||
new_ext_audio=()
|
||||
bit_audio=()
|
||||
|
||||
for ((c = 1; c <= $nb_lang; c++)); do
|
||||
echo "Quelle est l'ID de la piste audio $c ?"
|
||||
read temp
|
||||
audio_var+=($temp)
|
||||
echo "Quelle est la langue de la piste audio $c ?"
|
||||
read temp
|
||||
lang_var+=($temp)
|
||||
|
||||
echo "Quelle est l'extension de la piste audio $c ? (Attention, si votre audio est AC3 ou EAC3 mettez [']ac3'"
|
||||
read temp
|
||||
audio_ext+=($temp)
|
||||
done
|
||||
|
||||
for ((c = 1; c <= $nb_sub; c++)); do
|
||||
echo "Quelle est l'ID de la piste sous-titres $c ?"
|
||||
read temp
|
||||
st_var+=($temp)
|
||||
|
||||
echo "Quelle est la langue de la piste sous-titres $c ?"
|
||||
read temp
|
||||
st_lang+=($temp)
|
||||
|
||||
echo "Quelle est l'extension de la piste sous-titres $c ? ( Information, si le sous-titre est un VobSub mettez 'sub'"
|
||||
read temp
|
||||
st_ext+=($temp)
|
||||
done
|
||||
|
||||
if [ "$encoder" == "y" ]; then
|
||||
|
||||
echo "Quelle est le codec de l'audio ?"
|
||||
read new_ext_audio
|
||||
|
||||
echo "Quelle est la bitrate de l'audio ?"
|
||||
read bit_audio
|
||||
fi
|
||||
|
||||
echo " Souhaitez vous renommer le dossier audio ? (y/n)"
|
||||
read reponse
|
||||
|
||||
if [ "$reponse" == "y" ]; then
|
||||
echo "Quel est le nouveau nom du dossier audio ?"
|
||||
read nom_dossier
|
||||
fi
|
||||
|
||||
if [ "$reponse" == "n" ]; then
|
||||
echo "D'accord je ne modifie pas le nom du dossier !"
|
||||
fi
|
||||
|
||||
if [ -d "audio" ]; then
|
||||
echo "Le dossier audio existe"
|
||||
else
|
||||
mkdir audio
|
||||
echo "Le dossier audio n'existe pas, il a été créé"
|
||||
fi
|
||||
|
||||
if [ -d "video" ]; then
|
||||
echo "Le dossier video existe"
|
||||
else
|
||||
mkdir video
|
||||
echo "Le dossier video n'existe pas, il a été créé"
|
||||
fi
|
||||
|
||||
|
||||
if [ "$RepVideo" == "y" ]; then
|
||||
for i in *.mkv; do
|
||||
mkvmerge --output video/"$i"'.VIDEO.mkv' \
|
||||
--no-audio \
|
||||
--no-subtitles \
|
||||
--no-chapters \
|
||||
--no-attachments \
|
||||
--no-global-tags \
|
||||
--language 0:und \
|
||||
--default-track 0:yes \
|
||||
--display-dimensions 0:1920x1080 \
|
||||
'(' "$i" ')' \
|
||||
--title "",
|
||||
done
|
||||
fi
|
||||
|
||||
for ((c = 0; c <= $nb_lang - 1; c++)); do
|
||||
find *.mkv -execdir mkvextract {} tracks ${audio_var[$c]}:{}.${lang_var[$c]}.${audio_ext[$c]} \;
|
||||
echo "Lancement de mkvextract audio"
|
||||
|
||||
mv *.${lang_var[$c]}.${audio_ext[$c]} audio/
|
||||
|
||||
done # fin de la boucle audio
|
||||
|
||||
for ((c = 0; c <= $nb_sub - 1; c++)); do
|
||||
find *.mkv -execdir mkvextract {} tracks ${st_var[$c]}:{}.${st_lang[$c]}.${st_ext[$c]} \;
|
||||
echo "Lancement de mkvextract sous-titres"
|
||||
|
||||
mv *.${st_lang[$c]}.${st_ext[$c]} audio/
|
||||
|
||||
if [ ${st_ext} == "sub" ]; then
|
||||
mv *.idx audio/
|
||||
fi
|
||||
|
||||
done # fin de la boucle sous-titres
|
||||
|
||||
cd audio/
|
||||
|
||||
echo "Les fichiers audio ont été déplacés dans le dossier audio"
|
||||
|
||||
# Regarder si le nom du fichier contient .mkv dedans
|
||||
|
||||
for i in *; do
|
||||
i2=$(echo $i | sed -E 's/.mp4|.avi|.mkv//gm;t;d')
|
||||
mv "$i" "$i2"
|
||||
done
|
||||
|
||||
if [ "$reponse" == "y" ]; then
|
||||
cd ..
|
||||
mv audio "$nom_dossier"
|
||||
cd "$nom_dossier"
|
||||
fi
|
||||
|
||||
if [ "$encoder" == "y" ]; then
|
||||
|
||||
for i in *.${audio_ext}; do
|
||||
ffmpeg -i "$i" -c:a ${new_ext_audio} -b:a ${bit_audio}k "$i.${new_ext_audio}"
|
||||
echo "Lancement de l'encodage de l'audio"
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
if [ "$encoder" == "y" ]; then
|
||||
|
||||
if [ "$supprimer" == "y" ]; then
|
||||
rm *.${audio_ext}
|
||||
echo "Les fichiers audio ont été supprimés"
|
||||
fi
|
||||
fi
|
||||
|
||||
#Le script est fini
|
||||
echo "Merci de m'avoir utilisé !"
|
||||
exit 0
|
81
merge.sh
Executable file
81
merge.sh
Executable file
|
@ -0,0 +1,81 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
|
||||
function checkGlobal() {
|
||||
hash mkvmerge 2>/dev/null || {
|
||||
echo >&2 "Erreur: Commande mkvmerge pas trouvé, merci de l'installer"
|
||||
exit 1
|
||||
}
|
||||
hash mkvextract 2>/dev/null || {
|
||||
echo >&2 "Erreur: Commande mkvmerge 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")
|
||||
|
||||
# On récupère le second argument
|
||||
#fichier2=$(basename "$2")
|
||||
|
||||
echo " traitement du fichier $fichier "
|
||||
|
||||
## Check input file.
|
||||
if [ ! -f "$fichier" ]; then
|
||||
echo >&2 "ErroErreurr: Fichier d'entrée non trouvé"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$fichier2" ]; then
|
||||
echo >&2 "ErroErreurr: Fichier d'entrée non trouvé"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for i in *.mkv; do
|
||||
|
||||
mkvmerge --output Fait/"$i"'.TEST.mkv' \
|
||||
--no-audio \
|
||||
--no-chapters \
|
||||
--no-attachments \
|
||||
--no-global-tags \
|
||||
--language 0:und \
|
||||
--default-track 0:yes \
|
||||
--display-dimensions 0:1920x1080 \
|
||||
--sub-charset 3:UTF-8 \
|
||||
--language 3:fr \
|
||||
--default-track 3:yes \
|
||||
--sub-charset 4:UTF-8 \
|
||||
--language 4:en '(' $i"" ')' \
|
||||
--no-video \
|
||||
--no-attachments \
|
||||
--no-global-tags \
|
||||
--language 1:fr \
|
||||
--language 2:en \
|
||||
--sub-charset 3:UTF-8 \
|
||||
--language 3:fr \
|
||||
--sub-charset 4:UTF-8 \
|
||||
--language 4:en '(' $i.*.ac3 ')' \
|
||||
--title "" \
|
||||
--track-order 0:0,0:3,0:4,1:1,1:2,1:3,1:4
|
||||
|
||||
done
|
||||
|
||||
for i in *.mkv; do
|
||||
mkvmerge --output Fait/"$i"'.Fini.mkv' \
|
||||
--language 0:und \
|
||||
--default-track 0:yes \
|
||||
--display-dimensions 0:1920x1080 \
|
||||
'(' $i".VIDEO.mkv" ')' \
|
133
propedit.sh
Executable file
133
propedit.sh
Executable file
|
@ -0,0 +1,133 @@
|
|||
#!/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
|
||||
}
|
||||
|
||||
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' \
|
||||
--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
|
||||
|
||||
#FIn du programme
|
||||
echo "Merci de m'avoir utilisé !"
|
||||
exit 0
|
Loading…
Reference in New Issue
Block a user