#!/bin/sh #url=$(shuf $HOME/.cache/invidious-dl/instances | head -n1) CACHE_INST="$HOME/.cache/invidious-dl/instances" get_rnd_inst() { instance_url="" for u in $(shuf $CACHE_INST); do # | grep yew httpc=0 printf "Trying instance %s\n" "$u" >&2 tst_url="${u}" tst_url2="${u}/api/v1/videos/2l6JUNFAJ9o?fields=title,author" httpc=$(curl -k -m 1 -sS -o /dev/null -Iw '%{http_code}' "$tst_url") printf "HTTP responce to %s = %s\n" "$tst_url" "$httpc" >&2 [ $? -gt 0 ] && continue httpc2=$(curl -k -m 1 -sS -o /dev/null -s -Iw '%{http_code}' "$tst_url2") tst=$(curl -s "$tst_url2") dbg "Test json = $tst" [ $httpc2 -eq 200 ] &&[ $httpc -eq 200 ] && [ "$tst" != "{}" ] && { instance_url="$u" break } done [ -z "$instance_url" ] && printf "No working instance\n" && exit 1 dbg "Using instance = $instance_url" printf $instance_url } dbg() { [ -n "$DBG" ] && printf "%s\n" "$1" >&2 } url=$(get_rnd_inst) [ -n "$url" ] && $BROWSER "$url"