invidious: handle embed links
This commit is contained in:
parent
7f89a0aaf8
commit
3fcbc23542
@ -38,6 +38,41 @@ known_site()
|
|||||||
-e "^https://yewtu\.be/"
|
-e "^https://yewtu\.be/"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_id_path()
|
||||||
|
{
|
||||||
|
printf "%s\n" "${1##*/}"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_id_query()
|
||||||
|
{
|
||||||
|
oldIFS=$IFS
|
||||||
|
IFS="&"
|
||||||
|
set -- ${1##*"?"}
|
||||||
|
IFS=$oldIFS
|
||||||
|
|
||||||
|
id=
|
||||||
|
for param; do
|
||||||
|
case $param in
|
||||||
|
v=*) id=${param#v=}
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "%s\n" "$id"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_id()
|
||||||
|
{
|
||||||
|
case $1 in
|
||||||
|
"https://youtu.be/" | *"/embed/"*)
|
||||||
|
get_id_path "$1"
|
||||||
|
;;
|
||||||
|
*) get_id_query "$1"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
: ${INVIDIOUS:=invidious.snopyta.org}
|
: ${INVIDIOUS:=invidious.snopyta.org}
|
||||||
|
|
||||||
torsocks=torsocks
|
torsocks=torsocks
|
||||||
@ -55,21 +90,8 @@ shift $((OPTIND - 1))
|
|||||||
url=$1
|
url=$1
|
||||||
known_site "$url" || err "Unknown site: $url"
|
known_site "$url" || err "Unknown site: $url"
|
||||||
|
|
||||||
oldIFS=$IFS
|
id=$(get_id "$url")
|
||||||
IFS="&"
|
|
||||||
set -- ${url##*"?"}
|
|
||||||
IFS=$oldIFS
|
|
||||||
|
|
||||||
id=
|
|
||||||
for param; do
|
|
||||||
case $param in
|
|
||||||
v=*) id=${param#v=}
|
|
||||||
[ ${#id} -eq 11 ] || err "invalid video ID"
|
[ ${#id} -eq 11 ] || err "invalid video ID"
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
[ -n "$id" ] || err "no video ID in URL"
|
|
||||||
|
|
||||||
# XXX choose in some clever way
|
# XXX choose in some clever way
|
||||||
itag=$(torsocks ftp -MVo - "$(api "/api/v1/videos/$id")" |
|
itag=$(torsocks ftp -MVo - "$(api "/api/v1/videos/$id")" |
|
||||||
|
Loading…
Reference in New Issue
Block a user