Change output to default argument #2

Merged
vwheezy22 merged 2 commits from default_output into master 2021-07-31 21:10:31 -05:00

66
yuja-dl
View File

@ -1,4 +1,4 @@
#!/bin/sh
#!/usr/bin/env bash
# --------------------------------------
# name: yuja-dl
# main: Jaidyn Ann <jadedctrl@teknik.io>
@ -7,9 +7,10 @@
# --------------------------------------
function download_url {
local url="$1"; local output="$2"
local id="$(echo "$url" | video_id)"
local url="$1"
local sub="$(echo "$url" | subdomain)"
local id="$(video_metadata "$url" "$sub" | video_pid)"
local output="${OUTPUT:-$(get_metadata "$sub" "$id" | default_video_title)}"
local captions_key="$(get_metadata "$sub" "$id" | caption_file_key)"
local node_pid="$(get_metadata "$sub" "$id" | video_node_pid)"
@ -39,6 +40,15 @@ function video_node_pid {
| jq -r .videoListNodePID
}
function video_pid {
jq -r .videoPID
}
function default_video_title {
jq -r .video \
| jq -r .title
}
#---------------------------------------
function get_node_metadata {
@ -79,20 +89,27 @@ function caption_url {
#---------------------------------------
function video_id {
sed 's%.*v=%%' \
| sed 's%&.*%%'
}
function subdomain {
awk -F '.' '{print $1}' \
| sed 's%.*//%%'
}
function video_uid {
sed 's%.*u=%%' \
| sed 's%&.*%%'
}
function video_metadata {
local url="$1"; local sub="$2"
local uid="$(echo "$url" | video_uid)"
curl -b "$COOKIES" -s \
"https://${sub}.yuja.com/V/VideoDecryptLogicServlet?u=${uid}"
}
# INVOCATION
# --------------------------------------
function usage {
echo "usage: yuja-dl URL OUTPUT [cookies.txt]"
echo "usage: yuja-dl URL [-o OUTPUT] [-c cookies.txt]"
echo
echo " URL is a *.yuja.com URL with a video ID argument"
echo " OUTPUT is the basename for the mp4 and srt files"
@ -101,10 +118,31 @@ function usage {
exit 2
}
URL="$1"
OUTPUT="$2"
COOKIES="$3"
if [ "$#" -eq 0 ]; then
usage
fi
if test -z "$URL" -o -z "$OUTPUT"; then usage; fi
OPTIND=2
while getopts ":hc:o:" arg; do
case "$arg" in
h)
usage
;;
c)
COOKIES="$OPTARG"
;;
o)
OUTPUT="$OPTARG"
;;
:)
echo "$0: Must supply an argument to -$OPTARG."
exit 1
;;
?)
echo "Invalid option: -${OPTARG}"
usage
;;
esac
done
download_url "$URL" "$OUTPUT"
download_url "$1"