mirror of
https://gitea.invidious.io/iv-org/youtube-utils.git
synced 2024-08-15 00:53:16 +00:00
api-helper: Move endpoint selector to a separate function
This commit is contained in:
parent
6905f34a4f
commit
fd743bcc80
1 changed files with 95 additions and 88 deletions
|
@ -218,6 +218,97 @@ client_select()
|
|||
}
|
||||
|
||||
|
||||
#
|
||||
# Endpoint selection function
|
||||
#
|
||||
|
||||
endpoint_select()
|
||||
{
|
||||
case "$1" in
|
||||
browse)
|
||||
endpoint="youtubei/v1/browse"
|
||||
|
||||
if [ $interactive = true ]; then
|
||||
browse_id=$(query_with_default "Enter browse ID" "UCXuqSBlHAE6Xw-yeJA0Tunw")
|
||||
endpoint_data="\"browseId\":\"${browse_id}\""
|
||||
fi
|
||||
;;
|
||||
|
||||
browse-cont*|browse-tok*)
|
||||
endpoint="youtubei/v1/browse"
|
||||
|
||||
if [ $interactive = true ]; then
|
||||
token=$(query_with_error "Enter continuation token" "token required")
|
||||
endpoint_data="\"continuation\":\"${token}\""
|
||||
fi
|
||||
;;
|
||||
|
||||
player|next)
|
||||
endpoint="youtubei/v1/$endpoint_option"
|
||||
|
||||
if [ $interactive = true ]; then
|
||||
vid=$(query_with_default "Enter video ID" "dQw4w9WgXcQ")
|
||||
endpoint_data="\"videoId\":\"${vid}\""
|
||||
|
||||
fi
|
||||
;;
|
||||
|
||||
next-cont*|next-tok*)
|
||||
endpoint="youtubei/v1/next"
|
||||
|
||||
if [ $interactive = true ]; then
|
||||
token=$(query_with_error "Enter continuation token" "token required")
|
||||
endpoint_data="\"continuation\":\"${token}\""
|
||||
fi
|
||||
;;
|
||||
|
||||
search)
|
||||
endpoint="youtubei/v1/search"
|
||||
|
||||
if [ $interactive = true ]; then
|
||||
# Get search query, and escape backslashes and double quotes
|
||||
query=$(
|
||||
query_with_error "Enter your search query" "search term required" |
|
||||
sed -e 's/\\/\\\\/g' -e 's/"/\\"/g'
|
||||
)
|
||||
endpoint_data="\"query\":\"${query}\""
|
||||
fi
|
||||
;;
|
||||
|
||||
resolve)
|
||||
endpoint="youtubei/v1/navigation/resolve_url"
|
||||
|
||||
if [ $interactive = true ]; then
|
||||
url=$(query_with_error "Enter URL" "URL required")
|
||||
endpoint_data="\"url\":\"${url}\""
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
error_msg "Unknown endpoint '$1'"
|
||||
print_endpoints
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
# Interactively request additional parameters for the supported endpoints
|
||||
if [ $interactive = true ]
|
||||
then
|
||||
case "$1" in
|
||||
|
||||
browse|player|search)
|
||||
params=$(query_with_default "Enter optional parameters (base64-encoded protobuf)" "")
|
||||
|
||||
if [ ! -z "$params" ]; then
|
||||
endpoint_data="${endpoint_data},\"params\":\"${params}\""
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Parameters init
|
||||
#
|
||||
|
@ -386,94 +477,10 @@ if [ -z "$endpoint_option" ]; then
|
|||
fi
|
||||
fi
|
||||
|
||||
case $endpoint_option in
|
||||
browse)
|
||||
endpoint="youtubei/v1/browse"
|
||||
|
||||
if [ $interactive = true ]; then
|
||||
browse_id=$(query_with_default "Enter browse ID" "UCXuqSBlHAE6Xw-yeJA0Tunw")
|
||||
partial_data="\"browseId\":\"${browse_id}\""
|
||||
fi
|
||||
;;
|
||||
|
||||
browse-cont*|browse-tok*)
|
||||
endpoint="youtubei/v1/browse"
|
||||
|
||||
if [ $interactive = true ]; then
|
||||
token=$(query_with_error "Enter continuation token" "token required")
|
||||
partial_data="\"continuation\":\"${token}\""
|
||||
fi
|
||||
;;
|
||||
|
||||
player|next)
|
||||
endpoint="youtubei/v1/$endpoint_option"
|
||||
|
||||
if [ $interactive = true ]; then
|
||||
vid=$(query_with_default "Enter video ID" "dQw4w9WgXcQ")
|
||||
partial_data="\"videoId\":\"${vid}\""
|
||||
|
||||
fi
|
||||
;;
|
||||
|
||||
next-cont*|next-tok*)
|
||||
endpoint="youtubei/v1/next"
|
||||
|
||||
if [ $interactive = true ]; then
|
||||
token=$(query_with_error "Enter continuation token" "token required")
|
||||
partial_data="\"continuation\":\"${token}\""
|
||||
fi
|
||||
;;
|
||||
|
||||
search)
|
||||
endpoint="youtubei/v1/search"
|
||||
|
||||
if [ $interactive = true ]; then
|
||||
# Get search query, and escape backslashes and double quotes
|
||||
query=$(
|
||||
query_with_error "Enter your search query" "search term required" |
|
||||
sed -e 's/\\/\\\\/g' -e 's/"/\\"/g'
|
||||
)
|
||||
partial_data="\"query\":\"${query}\""
|
||||
fi
|
||||
;;
|
||||
|
||||
resolve)
|
||||
endpoint="youtubei/v1/navigation/resolve_url"
|
||||
|
||||
if [ $interactive = true ]; then
|
||||
url=$(query_with_error "Enter URL" "URL required")
|
||||
partial_data="\"url\":\"${url}\""
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
error_msg "Unknown endpoint '$endpoint_option'"
|
||||
print_endpoints
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
#
|
||||
# Interactively request additional parameters for the supported endpoints
|
||||
#
|
||||
|
||||
if [ $interactive = true ]
|
||||
then
|
||||
case $endpoint_option in
|
||||
|
||||
browse|player|search)
|
||||
params=$(query_with_default "Enter optional parameters (base64-encoded protobuf)" "")
|
||||
|
||||
if [ ! -z "$params" ]; then
|
||||
partial_data="${partial_data},\"params\":\"${params}\""
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# new line
|
||||
echo
|
||||
echo >&2
|
||||
|
||||
endpoint_select "$endpoint_option"
|
||||
|
||||
|
||||
#
|
||||
|
@ -513,7 +520,7 @@ if [ $interactive = true ]; then
|
|||
fi
|
||||
|
||||
|
||||
data="{\"context\":{\"client\":{$client}},$partial_data}"
|
||||
data="{\"context\":{\"client\":{$client}},$endpoint_data}"
|
||||
|
||||
# Basic debug
|
||||
if [ $debug = true ]; then
|
||||
|
|
Loading…
Reference in a new issue