64 lines
1.3 KiB
Bash
64 lines
1.3 KiB
Bash
#####################################################################
|
|
|
|
use youtube/yt-dlp --group media
|
|
use youtube/get-filename --group media
|
|
use youtube/get-download-path --group media
|
|
|
|
#####################################################################
|
|
|
|
${scwryptsmodule}() {
|
|
eval "$(USAGE.reset)"
|
|
|
|
local \
|
|
URL INTERACTIVE=false \
|
|
PARSERS=()
|
|
|
|
eval "$ZSHPARSEARGS"
|
|
|
|
##########################################
|
|
|
|
local FILENAME="$(media.youtube.get-filename "${URL}")"
|
|
|
|
[ "${FILENAME}" ] \
|
|
|| ERROR "could not find metadata; cannot proceed with download\n${URL}" \
|
|
|| return 1
|
|
|
|
media.youtube.yt-dlp "${URL}" \
|
|
--format 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4' \
|
|
&& echo.success "finished download of ${URL}\n$(media.youtube.get-download-path)/${FILENAME}" \
|
|
|| ERROR "failed to download '${FILENAME}' (${URL})"
|
|
;
|
|
}
|
|
|
|
#####################################################################
|
|
|
|
${scwryptsmodule}.parse() {
|
|
# local URL INTERACTIVE=false
|
|
local PARSED=0
|
|
|
|
case $1 in
|
|
--url )
|
|
PARSED=2
|
|
URL="$2"
|
|
;;
|
|
|
|
--interactive )
|
|
PARSED=1
|
|
INTERACTIVE=true
|
|
;;
|
|
esac
|
|
|
|
return $PARSED
|
|
}
|
|
|
|
${scwryptsmodule}.parse.usage() {
|
|
USAGE__options+="
|
|
--url <string> the URL of the target video
|
|
"
|
|
}
|
|
|
|
${scwryptsmodule}.parse.validate() {
|
|
[ "$URL" ] \
|
|
|| ERROR "must provide download URL"
|
|
}
|