From a66dd5e9a8611282684d5a812be03548cc875dbc Mon Sep 17 00:00:00 2001 From: Frederik Baerentsen Date: Tue, 25 Feb 2020 04:16:06 +0100 Subject: [PATCH] Added file rename script --- rename_with_format.sh | 156 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 rename_with_format.sh diff --git a/rename_with_format.sh b/rename_with_format.sh new file mode 100644 index 0000000..12f92ac --- /dev/null +++ b/rename_with_format.sh @@ -0,0 +1,156 @@ +#!/bin/bash +skipfile () { + echo + echo "------------- FILE -------------" + echo -en '\t\t' + echo $1 + echo "--------------------------------" + echo "Press n to skip" + echo "Press y to continue" + echo "Press x/q to exit the script" + read -n 1 -p "Input Selection:" "mainmenuinput" + echo + if [ "$mainmenuinput" = "n" ];then + skip=1 + elif [ "$mainmenuinput" = "y" ];then + skip=0 + elif [ "$mainmenuinput" = "x" ];then + exit + elif [ "$mainmenuinput" = "q" ];then + exit + else + echo "You have entered an invallid selection!" + echo "Please try again!" + echo "" + echo "Press any key to continue..." + read -n 1 + clear + mainmenu + fi +} +mainmenu () { + #echo "-- $1" + basename=$1 + directory=$2 + extension=$3 + newname=$4 + echo "Press y to accept format" + #echo "Press e to accept and set extended" + #echo "Press t to accept and set theatrical" + echo "Press n to skip" + echo "Press x/q to exit the script" + read -n 1 -p "Input Selection:" "mainmenuinput" + echo + if [ "$mainmenuinput" = "y" ]; then + mv "$directory/$basename.$extension" "$directory/$newname.$extension" + #elif [ "$mainmenuinput" = "e" ]; then + # echo "extended" + #elif [ "$mainmenuinput" = "t" ]; then + # echo "theatrical" + elif [ "$mainmenuinput" = "n" ];then + echo "Skipping - $filename" + elif [ "$mainmenuinput" = "x" ];then + exit + elif [ "$mainmenuinput" = "q" ];then + exit + else + echo "You have entered an invallid selection!" + echo "Please try again!" + echo "" + echo "Press any key to continue..." + read -n 1 + clear + mainmenu + fi +} + +convertsecs() { + h=$(bc <<< "${1}/3600") + m=$(bc <<< "(${1}%3600)/60") + s=$(bc <<< "${1}%60") + printf "%02dh %02dm %02ds" $h $m $s + echo " - $(($h*60+$m))m" +} + +path="../Videos/Movies/" + +list="" +IFS=$'\n' +for filex in "`find ../Videos/Movies/[A-Z]* -maxdepth 1 -type f -regex '.*/.*\.\(m4v\|avi\|mkv\|mp4\)'`"; do + list=$filex +done + +for file in $list; do + + filename=$(echo -e `basename "$file"`) + bsn="${filename%.*}" + extension="${filename##*.}" + directory="${file%/*.*}" + skipfile "$filename" + + if [[ $skip -eq 1 ]]; then + echo "Skipping - $filename" + skip=0 + else + json=$(ffprobe -v quiet -print_format json -show_format -show_streams "$directory/$filename") + + codexName=$(echo $json | jq -r '.streams[0].codec_name') + audioChannel=$(echo $json | jq -r '.streams[1].channel_layout') + audioCodec=$(echo $json | jq -r '.streams[1].codec_name') + + resolutionW=$(echo $json | jq -r '.streams[0].width') + resolutionH=$(echo $json | jq -r '.streams[0].height') + duration=$(echo $json | jq -r '.format.duration') + + resu=" " + + if [[ $resolutionW -gt 1500 ]]; then + if [[ $resolutionW -gt 3000 ]]; then + resu="2160p" + fi + if [[ $resolutionW -lt 2000 ]]; then + resu="1080p" + fi + elif [[ $resolutionW -gt 1000 ]]; then + resu="720p" + elif [[ $resolutionW -gt 800 ]]; then + resu="480p" + elif [[ $resolutionW -gt 400 ]]; then + resu="DVD-360p" + elif [[ $resolutionW -gt 300 ]]; then + resu="240p" + fi + + formats=("352 x 240" "480 x 360" "858 x 480" "1280 x 720" "1920 x 1080" "3860 x 2160") + resolutions=("240p" "DVD-360p" "480p" "720p" "1080p" "2160p") + + echo + echo "------------ FORMAT ------------" + for i in {0..5}; do + if [ "$resu" = "${resolutions[$i]}" ];then + echo "${resolutions[$i]} = ${formats[$i]} ------> $resolutionW x $resolutionH" + else + echo "${resolutions[$i]} = ${formats[$i]}" + fi + done + newname=$(echo "$bsn - [$resu][$audioCodec $audioChannel][$codexName]") + echo "------------ INFO --------------" + echo -en '\t\t' + echo $directory + echo + echo -en '\t\t' + echo "[$resu][$audioCodec $audioChannel][$codexName]" + echo + echo -en '\t\t' + convertsecs "${duration%.*}" + echo + echo -en '\t\t' + echo "$newname.$extension" + echo "--------------------------------" + + mainmenu "$bsn" "$directory" "$extension" "$newname" + fi + +done + +exit