Upgrade query-parsing capabilities of invcli.
This commit is contained in:
parent
af04269920
commit
27e229176b
4
invcli
4
invcli
@ -3,7 +3,7 @@
|
|||||||
search()
|
search()
|
||||||
{
|
{
|
||||||
rm -f /tmp/invidious_results
|
rm -f /tmp/invidious_results
|
||||||
query_sanitized="$(printf "%s\n" "$1"|sed -ne 's/ /%20/gp')"
|
query_sanitized="$(printf "%s\n" "$1"|sed -e 's/ */%20/g')"
|
||||||
curl --output /tmp/invidious_results "https://vid.puffyan.us/search?q=$query_sanitized"
|
curl --output /tmp/invidious_results "https://vid.puffyan.us/search?q=$query_sanitized"
|
||||||
}
|
}
|
||||||
extract_names()
|
extract_names()
|
||||||
@ -57,7 +57,7 @@ main()
|
|||||||
id=$(fetch_id)
|
id=$(fetch_id)
|
||||||
media="$(generate_locations|sed 1!d)"
|
media="$(generate_locations|sed 1!d)"
|
||||||
printf "Loading %s...\n" "$media"
|
printf "Loading %s...\n" "$media"
|
||||||
ffplay "$media"
|
ffplay -autoexit "$media"
|
||||||
}
|
}
|
||||||
|
|
||||||
main
|
main
|
||||||
|
63
invcli~
Executable file
63
invcli~
Executable file
@ -0,0 +1,63 @@
|
|||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
search()
|
||||||
|
{
|
||||||
|
rm -f /tmp/invidious_results
|
||||||
|
query_sanitized="$(printf "%s\n" "$1"|sed -e 's/ */%20/g')"
|
||||||
|
curl --output /tmp/invidious_results "https://vid.puffyan.us/search?q=$query_sanitized"
|
||||||
|
}
|
||||||
|
extract_names()
|
||||||
|
{
|
||||||
|
sed -ne 's/<p dir.*>\(.*\)<\/p>/\1/p' /tmp/invidious_results|sed 's/ *//'
|
||||||
|
}
|
||||||
|
|
||||||
|
extract_urls()
|
||||||
|
{
|
||||||
|
for id in $(sed -ne 's/ */ /g' -e 's/<a style=.* href="\(\/watch?v=.*\)">/\1/p' /tmp/invidious_results|sed -ne 's/ *//p')
|
||||||
|
do
|
||||||
|
printf "https://vid.puffyan.us%s\n" $id
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
watch_vid()
|
||||||
|
{
|
||||||
|
curl -v "https://vid.puffyan.us/latest_version?id=$id&itag=$itag" 2>>/dev/stdout|sed -ne 's/< Location: \(.*\)/\1/p'
|
||||||
|
}
|
||||||
|
|
||||||
|
fetch_itag()
|
||||||
|
{
|
||||||
|
curl --silent $1|sed -ne 's/.*"itag":"\([0-9][0-9]*\)".*/\1/p'
|
||||||
|
}
|
||||||
|
|
||||||
|
fetch_id()
|
||||||
|
{
|
||||||
|
curl --silent $(extract_urls|sed $chosen_video!d)|grep itag|sed -ne 's/.*"id":"\(.*\)","itag":.*/\1/p'|sed 1!d
|
||||||
|
}
|
||||||
|
|
||||||
|
generate_locations()
|
||||||
|
{
|
||||||
|
for itag in $(fetch_itag $(extract_urls|sed $chosen_video!d)|sed $chosen_video!d)
|
||||||
|
do
|
||||||
|
watch_vid
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
printf "Enter your search terms: "
|
||||||
|
read -r query
|
||||||
|
search "$query"
|
||||||
|
extract_names|nl
|
||||||
|
printf "Choose the desired media: "
|
||||||
|
read -r chosen_video
|
||||||
|
printf "Attempting to retrieve primary source for: "
|
||||||
|
printf "\"%s\"" "$(extract_names|sed $chosen_video!d)"
|
||||||
|
printf "...\nPlease wait.\n\n"
|
||||||
|
itag=$(echo $(fetch_itag $(extract_urls|sed $chosen_video!d))|cut -f$chosen_video -d' ')
|
||||||
|
id=$(fetch_id)
|
||||||
|
media="$(generate_locations|sed 1!d)"
|
||||||
|
printf "Loading %s...\n" "$media"
|
||||||
|
ffplay "$media"
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
Loading…
x
Reference in New Issue
Block a user