Compare commits
9 Commits
07bf8f92be
...
0.9
| Author | SHA1 | Date | |
|---|---|---|---|
| a862b7be7c | |||
| 13e8012a73 | |||
| ce826d235f | |||
| 0e495e1aee | |||
| 343081375a | |||
| b1075f8384 | |||
| 2b467c43e9 | |||
| 45d673079a | |||
| 4db687869e |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,2 @@
|
|||||||
# ignoriere die Renamelist damit diese nicht überschrieben wird bei einem Update/pullen
|
# ignoriere die Renamelist damit diese nicht überschrieben wird bei einem Update/pullen
|
||||||
renamelist
|
renamelist
|
||||||
JDAutoConfig
|
|
||||||
|
|||||||
84
JDAutoConfig
Normal file
84
JDAutoConfig
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
# Hier stehen nun alle Einstellungen für die jdautoenc:
|
||||||
|
|
||||||
|
############################################################################################
|
||||||
|
#### Script-Settings: ####
|
||||||
|
############################################################################################
|
||||||
|
|
||||||
|
language=
|
||||||
|
language_folder=~/.local/scripts/lang
|
||||||
|
|
||||||
|
############################################################################################
|
||||||
|
#### Scripts-Folder: ####
|
||||||
|
############################################################################################
|
||||||
|
|
||||||
|
jdautoenc=~/.local/scripts/jdautoenc.sh
|
||||||
|
rename=~/.local/scripts/rename.sh
|
||||||
|
renamelist=~/.local/scripts/renamelist
|
||||||
|
|
||||||
|
############################################################################################
|
||||||
|
#### Folders: ####
|
||||||
|
############################################################################################
|
||||||
|
|
||||||
|
extracted=/mnt/downloads/entpackt/
|
||||||
|
encodes=/mnt/Medien/encode/
|
||||||
|
|
||||||
|
############################################################################################
|
||||||
|
#### Media Directories: ####
|
||||||
|
############################################################################################
|
||||||
|
|
||||||
|
Movies=/mnt/Medien/Filme
|
||||||
|
Series=/mnt/Medien/Serien
|
||||||
|
Animes=/mnt/Medien/Animes
|
||||||
|
|
||||||
|
############################################################################################
|
||||||
|
#### Log-File: ####
|
||||||
|
############################################################################################
|
||||||
|
|
||||||
|
log=~/.local/logs/jdautoenc.log
|
||||||
|
|
||||||
|
############################################################################################
|
||||||
|
#### Notifications: ####
|
||||||
|
############################################################################################
|
||||||
|
|
||||||
|
discord=https://discord.com/api/webhooks/
|
||||||
|
|
||||||
|
NextcloudDomain=https://Nextcloud.domain
|
||||||
|
NextcloudUser=jdautoenc
|
||||||
|
NextcloudPassword=Password
|
||||||
|
NextcloudTalkToken=ChannelTokenID
|
||||||
|
|
||||||
|
appriseurl=192.168.0.3:8000/notify/apprise
|
||||||
|
apprisetag=
|
||||||
|
|
||||||
|
############################################################################################
|
||||||
|
#### Encoding: ####
|
||||||
|
############################################################################################
|
||||||
|
|
||||||
|
# yes or no
|
||||||
|
encode=yes
|
||||||
|
|
||||||
|
bitrate_anime=1400
|
||||||
|
preset_anime=slow
|
||||||
|
|
||||||
|
bitrate_series=1700
|
||||||
|
preset_series=slow
|
||||||
|
|
||||||
|
bitrate_movie=2000
|
||||||
|
preset_movie=slow
|
||||||
|
|
||||||
|
# Choose nVidia, AMD or Intel
|
||||||
|
Encoder=nVidia
|
||||||
|
|
||||||
|
############################################################################################
|
||||||
|
#### FileBot: ####
|
||||||
|
############################################################################################
|
||||||
|
|
||||||
|
MovieDB=TheMovieDB
|
||||||
|
SeriesDB=TheTVDB
|
||||||
|
AnimeDB=TheTVDB
|
||||||
|
|
||||||
|
MovieName="{n} {y}"
|
||||||
|
SeriesName="{n} {y}/Season {s}/{n} - {s00e00} - {t}"
|
||||||
|
AnimeName="{n} {y}/Season {s}/{n} - {s00e00} - {t}"
|
||||||
|
|
||||||
|
FileBotLang=German
|
||||||
179
jdautoenc.sh
179
jdautoenc.sh
@@ -3,38 +3,31 @@
|
|||||||
config=$(find ~ -type f -name "JDAutoConfig" 2>/dev/null)
|
config=$(find ~ -type f -name "JDAutoConfig" 2>/dev/null)
|
||||||
log=$(grep "log=" "$config" | sed 's/.*=//g')
|
log=$(grep "log=" "$config" | sed 's/.*=//g')
|
||||||
|
|
||||||
extracted=$(grep "extracted=" "$config" | sed 's/.*=//g')
|
# shellcheck disable=SC1090
|
||||||
encodes=$(grep "encodes=" "$config" | sed 's/.*=//g')
|
source "$config"
|
||||||
rename=$(grep "rename=" "$config" | sed 's/.*=//g')
|
|
||||||
discord=$(grep "discord=" "$config" | sed 's/.*=//g')
|
|
||||||
|
|
||||||
bitrate_anime=$(grep "bitrate_anime=" "$config" | sed 's/.*=//g')
|
case "${Encoder,,}" in
|
||||||
preset_anime=$(grep "preset_anime=" "$config" | sed 's/.*=//g')
|
nvidia)
|
||||||
bitrate_series=$(grep "bitrate_series=" "$config" | sed 's/.*=//g')
|
|
||||||
preset_series=$(grep "preset_series=" "$config" | sed 's/.*=//g')
|
|
||||||
bitrate_movie=$(grep "bitrate_movie=" "$config" | sed 's/.*=//g')
|
|
||||||
preset_movie=$(grep "preset_movie=" "$config" | sed 's/.*=//g')
|
|
||||||
|
|
||||||
encode=$(grep "encode=" "$config" | sed 's/.*=//g')
|
|
||||||
encoder=$(grep "Encoder=" "$config" | sed 's/.*=//g')
|
|
||||||
discord=$(grep "discord=" "$config" | sed 's/.*=//g')
|
|
||||||
|
|
||||||
if [[ ${encoder,,} == "nvidia" ]]; then
|
|
||||||
hw_accel="cuda"
|
hw_accel="cuda"
|
||||||
codec="hevc_nvenc"
|
codec="hevc_nvenc"
|
||||||
elif [[ ${encoder,,} == "amd" ]]; then
|
;;
|
||||||
|
amd)
|
||||||
hw_accel="auto"
|
hw_accel="auto"
|
||||||
codec="hevc_amf"
|
codec="hevc_amf"
|
||||||
elif [[ ${encoder,,} == "intel" ]]; then
|
;;
|
||||||
|
intel)
|
||||||
hw_accel="qsv"
|
hw_accel="qsv"
|
||||||
codec="hevc_qsf"
|
codec="hevc_qsf"
|
||||||
elif [[ ${encoder,,} == "software" ]]; then
|
;;
|
||||||
|
software)
|
||||||
hw_accel="qsv"
|
hw_accel="qsv"
|
||||||
codec="hevc_qsf"
|
codec="hevc_qsf"
|
||||||
fi
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
red='\033[0;31m' # ${red}
|
red='\033[0;31m' # ${red}
|
||||||
white='\033[0;37m' # ${white}
|
white='\033[0;37m' # ${white}
|
||||||
|
bold='\033[1;37m' # ${white}
|
||||||
yellow='\033[0;33m' # ${yellow}
|
yellow='\033[0;33m' # ${yellow}
|
||||||
green='\033[0;32m' # ${green}
|
green='\033[0;32m' # ${green}
|
||||||
blue='\033[0;34m' # ${blue}
|
blue='\033[0;34m' # ${blue}
|
||||||
@@ -42,20 +35,17 @@ lblue='\033[1;34m' # ${lblue}
|
|||||||
cyan='\033[0;36m' # ${cyan}
|
cyan='\033[0;36m' # ${cyan}
|
||||||
purple='\033[0;35m' # ${purple}
|
purple='\033[0;35m' # ${purple}
|
||||||
|
|
||||||
language_Folder=$(grep "language_folder=" "$config" | sed 's/.*=//g')
|
if [[ -z $language ]]; then
|
||||||
if [[ -n $(grep "language=" "$config" | sed 's/.*=//g') ]]; then
|
|
||||||
language=$(grep "language=" "$config" | sed 's/.*=//g')
|
|
||||||
else
|
|
||||||
language=$(locale | head -n 1 | sed 's/.*=\|\..*//g')
|
language=$(locale | head -n 1 | sed 's/.*=\|\..*//g')
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $language == "C" ]] || [[ ! -d $language_Folder/$language ]]; then
|
if [[ $language == "C" ]] || [[ ! -d $language_folder/$language ]]; then
|
||||||
language=en_US
|
language=en_US
|
||||||
fi
|
fi
|
||||||
|
|
||||||
text_lang() {
|
text_lang() {
|
||||||
if [ -f "$language_Folder"/"$language"/jdautoenc.lang ]; then
|
if [ -f "$language_folder"/"$language"/jdautoenc.lang ]; then
|
||||||
grep "$1" "$language_Folder"/"$language"/jdautoenc.lang | sed 's/^....//'
|
grep "$1" "$language_folder"/"$language"/jdautoenc.lang | sed 's/^....//'
|
||||||
else
|
else
|
||||||
curl -s https://raw.githubusercontent.com/Pakobbix/JDownloader-Autoenc-rename/main/lang/en_US/jdautoenc.lang | grep "$1" | sed 's/^....//'
|
curl -s https://raw.githubusercontent.com/Pakobbix/JDownloader-Autoenc-rename/main/lang/en_US/jdautoenc.lang | grep "$1" | sed 's/^....//'
|
||||||
fi
|
fi
|
||||||
@@ -80,16 +70,10 @@ discord_msg() {
|
|||||||
curl -s -H "Content-Type: application/json" -X POST -d "{\"content\": \"$1\"}" "$discord" &>/dev/null
|
curl -s -H "Content-Type: application/json" -X POST -d "{\"content\": \"$1\"}" "$discord" &>/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
NextcloudDomain=$(grep "NextcloudDomain=" "$config" | sed 's/.*=//g')
|
|
||||||
NextcloudTalkToken=$(grep "NextcloudTalkToken=" "$config" | sed 's/.*=//g')
|
|
||||||
NextcloudUser=$(grep "NextcloudUser=" "$config" | sed 's/.*=//g')
|
|
||||||
NextcloudPassword=$(grep "NextcloudPassword=" "$config" | sed 's/.*=//g')
|
|
||||||
nextcloud_msg() {
|
nextcloud_msg() {
|
||||||
curl -d '{"token":"'"$NextcloudTalkToken"'", "message":"'"$1"'"}' -H "Content-Type: application/json" -H "Accept:application/json" -H "OCS-APIRequest:true" -u "$NextcloudUser:$NextcloudPassword" "$NextcloudDomain"/ocs/v1.php/apps/spreed/api/v1/chat/tokenid &>/dev/null
|
curl -d '{"token":"'"$NextcloudTalkToken"'", "message":"'"$1"'"}' -H "Content-Type: application/json" -H "Accept:application/json" -H "OCS-APIRequest:true" -u "$NextcloudUser:$NextcloudPassword" "$NextcloudDomain"/ocs/v1.php/apps/spreed/api/v1/chat/tokenid &>/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
appriseurl=$(grep "appriseurl=" "$config" | sed 's/.*=//g')
|
|
||||||
apprisetag=$(grep "apprisetag=" "$config" | sed 's/.*=//g')
|
|
||||||
apprise_msg() {
|
apprise_msg() {
|
||||||
if [[ -n $apprisetag ]]; then
|
if [[ -n $apprisetag ]]; then
|
||||||
curl -d '{"body":"'"$1"'", "title":"#### jdautoenc.sh ####","tag":"'"$apprisetag"'"}' -H "Content-Type: application/json" "$appriseurl" &>/dev/null
|
curl -d '{"body":"'"$1"'", "title":"#### jdautoenc.sh ####","tag":"'"$apprisetag"'"}' -H "Content-Type: application/json" "$appriseurl" &>/dev/null
|
||||||
@@ -100,9 +84,14 @@ apprise_msg() {
|
|||||||
|
|
||||||
ff_encode() {
|
ff_encode() {
|
||||||
if [[ ${encode,,} == "yes" ]]; then
|
if [[ ${encode,,} == "yes" ]]; then
|
||||||
total_frames=$(ffprobe -v error -show_format -select_streams v:0 -show_streams mp-glor7-1080p.mkv | grep TAG:NUMBER_OF_FRAMES= | sed 's/.*=\|\..*//g')
|
total_frames=$(ffprobe -v error -show_format -select_streams v:0 -show_streams "$i" | grep TAG:NUMBER_OF_FRAMES= | sed 's/.*=\|\..*//g')
|
||||||
fps=$(grep fps= /home/hhofmann/.local/logs/jdautoenc.log | tail -n 1 | sed 's/.*fps=\| q=.*\|\..*//g')
|
fps=$(grep "fps=" "$log" | tail -n 1 | sed 's/.*fps=\| q=.*\|\..*//g')
|
||||||
log_msg "Estimated Encoding Time: $((total_frames / fps / 60)) Minutes"
|
eta_encoding=$((total_frames / fps))
|
||||||
|
if [[ $eta_encoding -gt "60" ]]; then
|
||||||
|
log_msg "Estimated Encoding Time: $((total_frames / fps / 60)) Minutes (based on last encoding speed)"
|
||||||
|
else
|
||||||
|
log_msg "Estimated Encoding Time: $((total_frames / fps)) Seconds (based on last encoding speed)"
|
||||||
|
fi
|
||||||
if ffmpeg -hide_banner -v quiet -stats -nostdin -hwaccel "$1" -hwaccel_output_format "$1" -i "$i" -c:v "$2" -preset "$3" -b:v "$4"K -c:a "$5" -map 0 -c:s copy "${encodes[*]}""${fertig%.*}.mkv" >>"${log[@]}" 2>&1; then
|
if ffmpeg -hide_banner -v quiet -stats -nostdin -hwaccel "$1" -hwaccel_output_format "$1" -i "$i" -c:v "$2" -preset "$3" -b:v "$4"K -c:a "$5" -map 0 -c:s copy "${encodes[*]}""${fertig%.*}.mkv" >>"${log[@]}" 2>&1; then
|
||||||
finishedduration=$(ffprobe -hide_banner -loglevel error -v quiet -stats -i "${encodes[*]}""${fertig%.*}.mkv" -show_entries format=duration -v quiet -of csv="p=0" | sed 's/\..*//g')
|
finishedduration=$(ffprobe -hide_banner -loglevel error -v quiet -stats -i "${encodes[*]}""${fertig%.*}.mkv" -show_entries format=duration -v quiet -of csv="p=0" | sed 's/\..*//g')
|
||||||
if [[ $finishedduration -eq $duration ]]; then
|
if [[ $finishedduration -eq $duration ]]; then
|
||||||
@@ -137,75 +126,95 @@ find -L "${extracted[@]}" -name '*.mkv' -or -name '*.mp4' 2>/dev/null | while IF
|
|||||||
fertig=$(basename "$i")
|
fertig=$(basename "$i")
|
||||||
clear=$(basename "$i" .mkv | sed 's/\./ /g;s/AAC\|1080p\|WebDL\|[a-z]26[0-9]\|[hH][eE][Vv][Cc]\|[tT]anuki\| dl \| web \|repack\|wayne\|\|[-]\|[gG]er\|[eE]ng\|[sS]ub//g;s/\[[^][]*\]\|WebDL\|JapDub\|CR\|REPACK\|V2DK\|man\|BluRay\|RSG//g;s/_/ /g;s/\( \)*/\1/g')
|
clear=$(basename "$i" .mkv | sed 's/\./ /g;s/AAC\|1080p\|WebDL\|[a-z]26[0-9]\|[hH][eE][Vv][Cc]\|[tT]anuki\| dl \| web \|repack\|wayne\|\|[-]\|[gG]er\|[eE]ng\|[sS]ub//g;s/\[[^][]*\]\|WebDL\|JapDub\|CR\|REPACK\|V2DK\|man\|BluRay\|RSG//g;s/_/ /g;s/\( \)*/\1/g')
|
||||||
################################################ Anime Sektion ################################################
|
################################################ Anime Sektion ################################################
|
||||||
if [ -z "$duration" ] || [ "$duration" -lt "1560" ]; then
|
if [[ -z $duration || $duration -lt "1560" ]]; then
|
||||||
log_msg "${purple}$clear${white} $(text_lang "011") ${blue}$(text_lang "012")${white}. $(text_lang "013")"
|
log_msg "${purple}$clear${white} $(text_lang "011") ${blue}$(text_lang "012")${white}. $(text_lang "013")"
|
||||||
vcodec=$(ffprobe -hide_banner -loglevel error -select_streams v:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$i")
|
vcodec=$(ffprobe -hide_banner -loglevel error -select_streams v:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$i")
|
||||||
if ! [ "$vcodec" == "hevc" ]; then
|
HDR_test=$(ffprobe -v quiet -show_streams -select_streams v:0 "$i" | grep ^color_transfer= | awk -F'=' '{print $2}')
|
||||||
acodec=$(ffprobe -hide_banner -loglevel error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$i")
|
if [[ $HDR_test == *"smpte2084" || $HDR_test == *"arib-std-b67" ]]; then
|
||||||
if [ "$acodec" = "eac3" ] || [ "$acodec" = "dts" ]; then
|
log_msg "${bold}HDR Video detected! Enconding not supported"
|
||||||
log_msg "${blue}$(text_lang "012")${white} ${purple}""$clear""${white} $(text_lang "014") ${vcodec^^} & ${acodec^^} $(text_lang "015") HEVC & AC3"
|
log_msg "$(text_lang "017") ${purple}$clear${white} $(text_lang "018")"
|
||||||
ff_encode "$hw_accel" "$codec" "$preset_anime" "$bitrate_anime" ac3
|
mv "$i" "${encodes[@]}" 2>/dev/null
|
||||||
else
|
|
||||||
log_msg "${blue}$(text_lang "012")${white} ${purple}""$clear""${white} $(text_lang "014") ${vcodec^^} $(text_lang "015") HEVC"
|
|
||||||
ff_encode "$hw_accel" "$codec" "$preset_anime" "$bitrate_anime" "copy"
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
acodec=$(ffprobe -hide_banner -loglevel error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$i")
|
if ! [ "$vcodec" == "hevc" ]; then
|
||||||
log_msg "${purple}""$clear""${white} $(text_lang "016")"
|
acodec=$(ffprobe -hide_banner -loglevel error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$i")
|
||||||
if [ "$acodec" = "eac3" ] || [ "$acodec" = "dts" ]; then
|
if [[ $acodec == "eac3" || $acodec == "dts" ]]; then
|
||||||
log_msg "${purple}""$clear""${white} $(text_lang "014") ${acodec^^} $(text_lang "015") AC3"
|
log_msg "${blue}$(text_lang "012")${white} ${purple}""$clear""${white} $(text_lang "014") ${vcodec^^} & ${acodec^^} $(text_lang "015") HEVC & AC3"
|
||||||
ff_encode "$hw_accel" "copy" "$preset_anime" "$bitrate_anime" "ac3"
|
ff_encode "$hw_accel" "$codec" "$preset_anime" "$bitrate_anime" ac3
|
||||||
|
else
|
||||||
|
log_msg "${blue}$(text_lang "012")${white} ${purple}""$clear""${white} $(text_lang "014") ${vcodec^^} $(text_lang "015") HEVC"
|
||||||
|
ff_encode "$hw_accel" "$codec" "$preset_anime" "$bitrate_anime" "copy"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
log_msg "$(text_lang "017") ${purple}$clear${white} $(text_lang "018")"
|
acodec=$(ffprobe -hide_banner -loglevel error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$i")
|
||||||
mv "$i" "${encodes[@]}"
|
log_msg "${purple}""$clear""${white} $(text_lang "016")"
|
||||||
|
if [[ $acodec == "eac3" || $acodec == "dts" ]]; then
|
||||||
|
log_msg "${purple}""$clear""${white} $(text_lang "014") ${acodec^^} $(text_lang "015") AC3"
|
||||||
|
ff_encode "$hw_accel" "copy" "$preset_anime" "$bitrate_anime" "ac3"
|
||||||
|
else
|
||||||
|
log_msg "$(text_lang "017") ${purple}$clear${white} $(text_lang "018")"
|
||||||
|
mv "$i" "${encodes[@]}" 2>/dev/null
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
################################################ Serien Sektion ################################################
|
################################################ Serien Sektion ################################################
|
||||||
elif [ "$duration" -gt "1561" ] && [ "$duration" -lt "4750" ]; then
|
elif [ "$duration" -gt "1561" ] && [ "$duration" -lt "4750" ]; then
|
||||||
log_msg "${purple}$fertig${white} $(text_lang "011") ${lblue}$(text_lang "019")${white}. $(text_lang "013")"
|
log_msg "${purple}$fertig${white} $(text_lang "011") ${lblue}$(text_lang "019")${white}. $(text_lang "013")"
|
||||||
vcodec=$(ffprobe -hide_banner -loglevel error -select_streams v:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$i")
|
vcodec=$(ffprobe -hide_banner -loglevel error -select_streams v:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$i")
|
||||||
if ! [ "$vcodec" = "hevc" ]; then
|
HDR_test=$(ffprobe -v quiet -show_streams -select_streams v:0 "$i" | grep ^color_transfer= | awk -F'=' '{print $2}')
|
||||||
acodec=$(ffprobe -hide_banner -loglevel error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$i")
|
if [[ $HDR_test == *"smpte2084" || $HDR_test == *"arib-std-b67" ]]; then
|
||||||
if [ "$acodec" = "eac3" ] || [ "$acodec" = "dts" ]; then
|
log_msg "${bold}HDR Video detected! Enconding not supported"
|
||||||
log_msg "${lblue}$(text_lang "019")${white} ${purple}$clear${white} $(text_lang "014") ${vcodec^^} & ${acodec^^} $(text_lang "015") HEVC 1700k & AC3"
|
log_msg "$(text_lang "017") ${purple}$clear${white} $(text_lang "018")"
|
||||||
ff_encode "$hw_accel" "$codec" "$preset_series" "$bitrate_series" "ac3"
|
mv "$i" "${encodes[@]}" 2>/dev/null
|
||||||
else
|
|
||||||
log_msg "${lblue}$(text_lang "019")${white} $fertig $(text_lang "014") ${vcodec^^} $(text_lang "015") HEVC 1700k"
|
|
||||||
ff_encode "$hw_accel" "$codec" "$preset_series" "$bitrate_series" "copy"
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
acodec=$(ffprobe -hide_banner -loglevel error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$i")
|
if ! [ "$vcodec" = "hevc" ]; then
|
||||||
if [ "$acodec" = "eac3" ] || [ "$acodec" = "dts" ]; then
|
acodec=$(ffprobe -hide_banner -loglevel error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$i")
|
||||||
log_msg "${purple}$clear${white} $(text_lang "014") ${acodec^^} $(text_lang "015") AC3"
|
if [[ $acodec == "eac3" || $acodec == "dts" ]]; then
|
||||||
ff_encode "$hw_accel" "copy" "$preset_series" "$bitrate_series" "ac3"
|
log_msg "${lblue}$(text_lang "019")${white} ${purple}$clear${white} $(text_lang "014") ${vcodec^^} & ${acodec^^} $(text_lang "015") HEVC 1700k & AC3"
|
||||||
|
ff_encode "$hw_accel" "$codec" "$preset_series" "$bitrate_series" "ac3"
|
||||||
|
else
|
||||||
|
log_msg "${lblue}$(text_lang "019")${white} $fertig $(text_lang "014") ${vcodec^^} $(text_lang "015") HEVC 1700k"
|
||||||
|
ff_encode "$hw_accel" "$codec" "$preset_series" "$bitrate_series" "copy"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
log_msg "$(text_lang "017") ${purple}$clear${white} $(text_lang "018")"
|
acodec=$(ffprobe -hide_banner -loglevel error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$i")
|
||||||
mv "$i" "${encodes[@]}"
|
if [[ $acodec == "eac3" || $acodec == "dts" ]]; then
|
||||||
|
log_msg "${purple}$clear${white} $(text_lang "014") ${acodec^^} $(text_lang "015") AC3"
|
||||||
|
ff_encode "$hw_accel" "copy" "$preset_series" "$bitrate_series" "ac3"
|
||||||
|
else
|
||||||
|
log_msg "$(text_lang "017") ${purple}$clear${white} $(text_lang "018")"
|
||||||
|
mv "$i" "${encodes[@]}" 2>/dev/null
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
################################################ Filme Sektion ################################################
|
################################################ Filme Sektion ################################################
|
||||||
elif [ "$duration" -gt "4751" ]; then
|
elif [ "$duration" -gt "4751" ]; then
|
||||||
log_msg "${purple}$fertig${white} $(text_lang "011") ${cyan}$(text_lang "022")${white}, $(text_lang "013")"
|
log_msg "${purple}$fertig${white} $(text_lang "011") ${cyan}$(text_lang "022")${white}, $(text_lang "013")"
|
||||||
vcodec=$(ffprobe -hide_banner -loglevel error -select_streams v:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$i")
|
vcodec=$(ffprobe -hide_banner -loglevel error -select_streams v:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$i")
|
||||||
if ! [ "$vcodec" = "hevc" ]; then
|
HDR_test=$(ffprobe -v quiet -show_streams -select_streams v:0 "$i" | grep ^color_transfer= | awk -F'=' '{print $2}')
|
||||||
acodec=$(ffprobe -hide_banner -loglevel error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$i")
|
if [[ $HDR_test == *"smpte2084" || $HDR_test == *"arib-std-b67" ]]; then
|
||||||
if [ "$acodec" = "eac3" ] || [ "$acodec" = "dts" ]; then
|
log_msg "${bold}HDR Video detected! Enconding not supported"
|
||||||
log_msg "${cyan}$(text_lang "022")${white} ${purple}$clear${white} $(text_lang "014") $vcodec & $acodec $(text_lang "015") HEVC 2M & AC3 500k"
|
log_msg "$(text_lang "017") ${purple}$clear${white} $(text_lang "018")"
|
||||||
ff_encode "$hw_accel" "$codec" "$preset_movie" "$bitrate_movie" "ac3"
|
mv "$i" "${encodes[@]}" 2>/dev/null
|
||||||
else
|
|
||||||
log_msg "${cyan}$(text_lang "022")${white} ${purple}$clear${white} $(text_lang "014") $vcodec $(text_lang "015") HEVC 2M"
|
|
||||||
ff_encode "$hw_accel" "$codec" "$preset_movie" "$bitrate_movie" "copy"
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
acodec=$(ffprobe -hide_banner -loglevel error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$i")
|
if ! [ "$vcodec" = "hevc" ]; then
|
||||||
log_msg "${purple}$clear${white} $(text_lang "016")"
|
acodec=$(ffprobe -hide_banner -loglevel error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$i")
|
||||||
if [ "$acodec" = "eac3" ] || [ "$acodec" = "dts" ]; then
|
if [[ $acodec == "eac3" || $acodec == "dts" ]]; then
|
||||||
log_msg "${purple}$clear${white} $(text_lang "014") ${acodec^^} $(text_lang "015") AC3"
|
log_msg "${cyan}$(text_lang "022")${white} ${purple}$clear${white} $(text_lang "014") $vcodec & $acodec $(text_lang "015") HEVC 2M & AC3 500k"
|
||||||
ff_encode "$hw_accel" "copy" "$preset_movie" "$bitrate_movie" "ac3"
|
ff_encode "$hw_accel" "$codec" "$preset_movie" "$bitrate_movie" "ac3"
|
||||||
|
else
|
||||||
|
log_msg "${cyan}$(text_lang "022")${white} ${purple}$clear${white} $(text_lang "014") $vcodec $(text_lang "015") HEVC 2M"
|
||||||
|
ff_encode "$hw_accel" "$codec" "$preset_movie" "$bitrate_movie" "copy"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
log_msg "$(text_lang "017") ${purple}$clear${white} $(text_lang "018")"
|
acodec=$(ffprobe -hide_banner -loglevel error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$i")
|
||||||
mv "$i" "${encodes[@]}"
|
log_msg "${purple}$clear${white} $(text_lang "016")"
|
||||||
|
if [[ $acodec == "eac3" || $acodec == "dts" ]]; then
|
||||||
|
log_msg "${purple}$clear${white} $(text_lang "014") ${acodec^^} $(text_lang "015") AC3"
|
||||||
|
ff_encode "$hw_accel" "copy" "$preset_movie" "$bitrate_movie" "ac3"
|
||||||
|
else
|
||||||
|
log_msg "$(text_lang "017") ${purple}$clear${white} $(text_lang "018")"
|
||||||
|
mv "$i" "${encodes[@]}" 2>/dev/null
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
65
rename.sh
65
rename.sh
@@ -11,48 +11,20 @@ log="$1"
|
|||||||
config="$2"
|
config="$2"
|
||||||
count=$(($3 + 1))
|
count=$(($3 + 1))
|
||||||
|
|
||||||
# Message System
|
# shellcheck disable=SC1090
|
||||||
discord=$(grep "discord=" "$config" | sed 's/.*=//g')
|
source "$config"
|
||||||
NextcloudDomain=$(grep "NextcloudDomain=" "$config" | sed 's/.*=//g')
|
|
||||||
NextcloudTalkToken=$(grep "NextcloudTalkToken=" "$config" | sed 's/.*=//g')
|
|
||||||
NextcloudUser=$(grep "NextcloudUser=" "$config" | sed 's/.*=//g')
|
|
||||||
NextcloudPassword=$(grep "NextcloudPassword=" "$config" | sed 's/.*=//g')
|
|
||||||
|
|
||||||
#Liste für die Umbenennung
|
if [[ -z $language ]]; then
|
||||||
renamelist=$(grep "renamelist=" "$config" | sed 's/.*=//g')
|
|
||||||
|
|
||||||
#Ordner Pfade
|
|
||||||
|
|
||||||
encodes=$(grep "encodes=" "$config" | sed 's/.*=//g')
|
|
||||||
|
|
||||||
Movies=$(grep "Movies=" "$config" | sed 's/.*=//g')
|
|
||||||
Series=$(grep "Series=" "$config" | sed 's/.*=//g')
|
|
||||||
Animes=$(grep "Animes=" "$config" | sed 's/.*=//g')
|
|
||||||
|
|
||||||
FilmDB=$(grep "MovieDB=" "$config" | sed 's/.*=//g')
|
|
||||||
SerienDB=$(grep "SeriesDB=" "$config" | sed 's/.*=//g')
|
|
||||||
AnimeDB=$(grep "AnimeDB=" "$config" | sed 's/.*=//g')
|
|
||||||
|
|
||||||
FilmName=$(grep "MovieName=" "$config" | sed 's/.*=//g')
|
|
||||||
SerienName=$(grep "SeriesName=" "$config" | sed 's/.*=//g')
|
|
||||||
AnimeNames=$(grep "AnimeName=" "$config" | sed 's/.*=//g')
|
|
||||||
|
|
||||||
FileBotLang=$(grep "FileBotLang=" "$config" | sed 's/.*=//g')
|
|
||||||
|
|
||||||
language_Folder=$(grep "language_folder=" "$config" | sed 's/.*=//g')
|
|
||||||
if [[ -n $(grep "language=" "$config" | sed 's/.*=//g') ]]; then
|
|
||||||
language=$(grep "language=" "$config" | sed 's/.*=//g')
|
|
||||||
else
|
|
||||||
language=$(locale | head -n 1 | sed 's/.*=\|\..*//g')
|
language=$(locale | head -n 1 | sed 's/.*=\|\..*//g')
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $language == "C" ]] || [[ ! -d $language_Folder/$language ]]; then
|
if [[ $language == "C" ]] || [[ ! -d $language_folder/$language ]]; then
|
||||||
language=en_US
|
language=en_US
|
||||||
fi
|
fi
|
||||||
|
|
||||||
text_lang() {
|
text_lang() {
|
||||||
if [ -f "$language_Folder"/"$language"/rename.lang ]; then
|
if [ -f "$language_folder"/"$language"/rename.lang ]; then
|
||||||
grep "$1" "$language_Folder"/"$language"/rename.lang | sed 's/^....//'
|
grep "$1" "$language_folder"/"$language"/rename.lang | sed 's/^....//'
|
||||||
else
|
else
|
||||||
curl -s https://raw.githubusercontent.com/Pakobbix/JDownloader-Autoenc-rename/main/lang/en_US/rename.lang | grep "$1" | sed 's/^....//'
|
curl -s https://raw.githubusercontent.com/Pakobbix/JDownloader-Autoenc-rename/main/lang/en_US/rename.lang | grep "$1" | sed 's/^....//'
|
||||||
fi
|
fi
|
||||||
@@ -70,8 +42,6 @@ nextcloud_msg() {
|
|||||||
curl -d '{"token":"'"$NextcloudTalkToken"'", "message":"'"$1"'"}' -H "Content-Type: application/json" -H "Accept:application/json" -H "OCS-APIRequest:true" -u "$NextcloudUser:$NextcloudPassword" "$NextcloudDomain"/ocs/v1.php/apps/spreed/api/v1/chat/tokenid &>/dev/null
|
curl -d '{"token":"'"$NextcloudTalkToken"'", "message":"'"$1"'"}' -H "Content-Type: application/json" -H "Accept:application/json" -H "OCS-APIRequest:true" -u "$NextcloudUser:$NextcloudPassword" "$NextcloudDomain"/ocs/v1.php/apps/spreed/api/v1/chat/tokenid &>/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
appriseurl=$(grep "appriseurl=" "$config" | sed 's/.*=//g')
|
|
||||||
apprisetag=$(grep "apprisetag=" "$config" | sed 's/.*=//g')
|
|
||||||
apprise_msg() {
|
apprise_msg() {
|
||||||
if [[ -n $apprisetag ]]; then
|
if [[ -n $apprisetag ]]; then
|
||||||
curl -d '{"body":"'"$1"'", "title":"#### jdautoenc.sh ####","tag":"'"$apprisetag"'"}' -H "Content-Type: application/json" "$appriseurl" &>/dev/null
|
curl -d '{"body":"'"$1"'", "title":"#### jdautoenc.sh ####","tag":"'"$apprisetag"'"}' -H "Content-Type: application/json" "$appriseurl" &>/dev/null
|
||||||
@@ -132,18 +102,23 @@ while read -r name; do
|
|||||||
|
|
||||||
find -L "${encodes[@]}" -name '*.mkv' -or -name '*.mp4' 2>/dev/null | while IFS= read -r v; do
|
find -L "${encodes[@]}" -name '*.mkv' -or -name '*.mp4' 2>/dev/null | while IFS= read -r v; do
|
||||||
|
|
||||||
if [[ ${v,,} == *"$keyword1"*"$keyword2"* ]]; then
|
if [[ ${v,,} == *"${keyword1,,}"*"${keyword2,,}"* ]]; then
|
||||||
log_msg "$(text_lang "005") $(basename "$v" | sed 's/\./ /g;s/AAC\|1080p\|WebDL\|[a-z]26[0-9]\|[hH][eE][Vv][Cc]\|[tT]anuki\| dl \| web \|repack\|wayne\|\|[-]\|[gG]er\|[eE]ng\|[sS]ub//g;s/\[[^][]*\]\|WebDL\|JapDub\|CR\|REPACK\|V2DK\|man\|BluRay\|RSG//g;s/_/ /g;s/\( \)*/\1/g')"
|
log_msg "$(text_lang "005") $(basename "$v" | sed 's/\./ /g;s/AAC\|1080p\|WebDL\|[a-z]26[0-9]\|[hH][eE][Vv][Cc]\|[tT]anuki\| dl \| web \|repack\|wayne\|\|[-]\|[gG]er\|[eE]ng\|[sS]ub//g;s/\[[^][]*\]\|WebDL\|JapDub\|CR\|REPACK\|V2DK\|man\|BluRay\|RSG//g;s/_/ /g;s/\( \)*/\1/g')"
|
||||||
if [[ ${format,,} == "anime" ]]; then
|
case ${format,,} in
|
||||||
filebot_rename "$AnimeDB" "$FileBotLang" "$Animes" "$AnimeNames" "$dbid"
|
anime)
|
||||||
elif [[ ${format,,} == "series" ]]; then
|
filebot_rename "$AnimeDB" "$FileBotLang" "$Animes" "$AnimeName" "$dbid"
|
||||||
filebot_rename "$SerienDB" "$FileBotLang" "$Series" "$SerienName" "$dbid"
|
;;
|
||||||
elif [[ ${format,,} == "movie" ]]; then
|
series)
|
||||||
filebot_rename "$FilmDB" "$FileBotLang" "$Movies" "$FilmName" "$dbid"
|
filebot_rename "$SeriesDB" "$FileBotLang" "$Series" "$SeriesName" "$dbid"
|
||||||
else
|
;;
|
||||||
|
movie)
|
||||||
|
filebot_rename "$MovieDB" "$FileBotLang" "$Movies" "$MovieName" "$dbid"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
log_msg "${red}$v $(text_lang "006") $name $(text_lang "007")"
|
log_msg "${red}$v $(text_lang "006") $name $(text_lang "007")"
|
||||||
log_msg "${red}$(text_lang "008")"
|
log_msg "${red}$(text_lang "008")"
|
||||||
fi
|
;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user