Changed filename template, converting script, some improvements
This commit is contained in:
parent
33b4738baa
commit
83552731d8
3 changed files with 65 additions and 8 deletions
2
.convert_helper.sh
Normal file
2
.convert_helper.sh
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
ffmpeg -i "$1" "$(echo "$1" | sed -E "s/\.[A-Za-z0-9]+$/.$2/")"
|
53
autoytdlp.sh
53
autoytdlp.sh
|
@ -1,5 +1,6 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
debug=0
|
||||||
watching=1
|
watching=1
|
||||||
links=()
|
links=()
|
||||||
|
|
||||||
|
@ -26,6 +27,11 @@ ytlink () {
|
||||||
sed -E 's#^https?://([A-Za-z0-9.-]+/watch\?v=|(yt\.be|youtu\.be)/)([A-Za-z0-9_-]+)|.+#\3#'
|
sed -E 's#^https?://([A-Za-z0-9.-]+/watch\?v=|(yt\.be|youtu\.be)/)([A-Za-z0-9_-]+)|.+#\3#'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
safename () {
|
||||||
|
safe="${1//[^A-Za-z0-9А-Яа-я ().,_-]/}"
|
||||||
|
echo "${safe// /_}" | sed -E 's/_+/_/'
|
||||||
|
}
|
||||||
|
|
||||||
bold () {
|
bold () {
|
||||||
echo -e "\033[1m$1\033[0m"
|
echo -e "\033[1m$1\033[0m"
|
||||||
}
|
}
|
||||||
|
@ -67,13 +73,20 @@ dlwith_piped () {
|
||||||
echo "Parsing link"
|
echo "Parsing link"
|
||||||
video_id=$(ytlink "$link")
|
video_id=$(ytlink "$link")
|
||||||
|
|
||||||
|
if [[ $video_id == "" ]]; then
|
||||||
|
echo 'Unable to parse YT video ID, skipping'
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
echo "Found YT video ID: $video_id"
|
||||||
|
|
||||||
echo "Requesting URL for $link"
|
echo "Requesting URL for $link"
|
||||||
video_obj=$(curl -sL "https://ytapi.dc09.ru/streams/$video_id" | jq "$jqexpr")
|
video_obj=$(curl -sL "https://ytapi.dc09.ru/streams/$video_id")
|
||||||
|
|
||||||
video_url=$(echo "$video_obj" | jq ".url" | sed s/^\"// | sed s/\"$//)
|
stream_obj=$(echo "$video_obj" | jq "$jqexpr")
|
||||||
|
stream_url=$(echo "$stream_obj" | jq ".url" | sed s/^\"// | sed s/\"$//)
|
||||||
|
|
||||||
video_mime=$(echo "$video_obj" | jq ".mimeType")
|
stream_mime=$(echo "$stream_obj" | jq ".mimeType")
|
||||||
case "$video_mime" in
|
case "$stream_mime" in
|
||||||
"\"audio/mp4\"")
|
"\"audio/mp4\"")
|
||||||
ext='m4a'
|
ext='m4a'
|
||||||
;;
|
;;
|
||||||
|
@ -91,10 +104,16 @@ dlwith_piped () {
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
video_file="./files/${video_id}.${ext}"
|
video_title=$(echo "$video_obj" | jq ".title")
|
||||||
|
video_file="./files/$(safename "$video_title").${ext}"
|
||||||
|
echo "Filename: $video_file"
|
||||||
|
|
||||||
|
if [[ $debug == 1 ]]
|
||||||
|
then continue
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Downloading with wget"
|
echo "Downloading with wget"
|
||||||
wget -O "$video_file" "$video_url"
|
wget -O "$video_file" "$stream_url"
|
||||||
|
|
||||||
echo
|
echo
|
||||||
done
|
done
|
||||||
|
@ -109,6 +128,12 @@ dlwith_ytdlp () {
|
||||||
echo 'details: https://github.com/yt-dlp/yt-dlp#format-selection'
|
echo 'details: https://github.com/yt-dlp/yt-dlp#format-selection'
|
||||||
read -r format
|
read -r format
|
||||||
|
|
||||||
|
if [[ $format == "" ]]; then
|
||||||
|
echo 'Passed an empty string,'
|
||||||
|
echo 'using "b" as default.'
|
||||||
|
format="b"
|
||||||
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
bold 'Started'
|
bold 'Started'
|
||||||
echo
|
echo
|
||||||
|
@ -118,14 +143,26 @@ dlwith_ytdlp () {
|
||||||
video_id=$(ytlink "$link")
|
video_id=$(ytlink "$link")
|
||||||
if [[ $video_id != "" ]]; then
|
if [[ $video_id != "" ]]; then
|
||||||
# Convert YT and Piped links to YT
|
# Convert YT and Piped links to YT
|
||||||
|
echo "Found YT video ID: $video_id"
|
||||||
newlink="https://youtube.com/watch?v=$video_id"
|
newlink="https://youtube.com/watch?v=$video_id"
|
||||||
else
|
else
|
||||||
newlink="$link"
|
newlink="$link"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "URL: $newlink"
|
echo "URL: $newlink"
|
||||||
|
|
||||||
yt-dlp -f "$format" -o "%(id)s.%(ext)s" -P ./files/ "$newlink"
|
echo "Generating safe name for the file"
|
||||||
|
video_title=$(yt-dlp --print title "$newlink")
|
||||||
|
video_file="$(safename "$video_title")---%(id)s.%(ext)s"
|
||||||
|
echo "Template: $video_file"
|
||||||
|
|
||||||
|
if [[ $debug == 1 ]]
|
||||||
|
then continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Downloading with yt-dlp"
|
||||||
|
yt-dlp -f "$format" -o "$video_file" -P ./files/ "$newlink"
|
||||||
|
|
||||||
|
echo
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
18
convert.sh
Executable file
18
convert.sh
Executable file
|
@ -0,0 +1,18 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
trap 'echo; echo "Exit"; exit 0' SIGINT
|
||||||
|
|
||||||
|
echo "Enter input files extension:"
|
||||||
|
echo "(empty string to match all)"
|
||||||
|
read -r ext_input
|
||||||
|
|
||||||
|
if [[ $ext_input == "" ]]; then
|
||||||
|
ext_input="*"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Enter output files extension:"
|
||||||
|
echo "(must not be empty)"
|
||||||
|
read -r ext_output
|
||||||
|
|
||||||
|
find ./files -type f -name "*.$ext_input" -exec \
|
||||||
|
bash ./.convert_helper.sh {} "$ext_output" \;
|
Reference in a new issue