#!/bin/sh
#author:Wos
#YuTube Music Terminal
DML="inv.n8pjl.ca y.hc.ws inv.tux.pizza iteroni.com youchu.be"
HTMP="/tmp/ymusic.html"
TTMP="/tmp/ymusic_title.txt"
LTMP="/tmp/ymusic_link.txt"
DOMAIN="https://"$(echo ${DML}|tr ' ' '\n'|shuf -n 1)"/"
TZ=$(curl --connect-timeout 1 -s -o /dev/null -w %{http_code} -i https://www.youtube.com)
if [[ "${TZ}" != "200" ]]; then
PXY="-x http://127.0.0.1:7891"
PPXY="--http-proxy=http://127.0.0.1:7891"
else
PXY=""
PPXY=""
fi
function logo()
{
echo -e "\033[96;40m"
base64 -d <<<"H4sIAAAAAAAAA5VRwQ2EMAz7dwr/AOmkLoRkBsnw58StBLrrgwaoYzsGVGC5+AMW+uhaMczKi5g9
ufMwEwhrNk2n9MIoQqYWcG3EJd/prkvXPjY9e2oy8enckpV2YWRx5o1SfzJNoXf7uwKVF0D8qd0J
Lcc+zvOdPUM/0QuLTEuhxDcnnxPKqrH1AbxY7QvKXr5/yAEAAA=="|gunzip
echo -e " Current Instance:"${DOMAIN}
echo -e "\033[0m"
}
function usage(){
logo
echo "usage:`basename $0` [keyword]"
echo ""
exit -1
}
if [ $# == 0 ]; then
usage
elif [ $# == 1 ] && [ $1 == "-h" ];then
usage
fi
KW=$@
PG=1
function getlink(){
while :;
do
curl ${PXY} -s ${DOMAIN%%/}"/search?q=music+"${KW// /+}"&page="${PG} > ${HTMP}
if [ $? == 0 ]; then
break
fi
DOMAIN="https://"$(echo ${DML}|tr ' ' '\n'|shuf -n 1)"/"
sleep 1
done
cat ${HTMP} |grep -E '<a href="/watch'|awk -F\> '{print $3}'|awk -F\< '{print $1}' > ${TTMP}
cat ${HTMP} |grep -E '<a href="/watch'|awk -F\" '{print $2}'|awk -F\= '{print $2}' > ${LTMP}
}
getlink
while :;
do
clear
echo -ne "\033[?25h"
logo
paste -d' ' ${SZTMP} ${TTMP}|sed "s/'/\'/g"|nl
echo -e "\033[96;40m"
echo -e " [^c:Exit,-1:Pre Page,Enter:Next Page]"
echo -n " Select Resource ID or Search:"
echo -ne "\033[0m"
read -r -p "" input
NUM=$(cat ${TTMP}|wc -l)
echo -ne "\033[?25l"
if [[ $input =~ ^-?[0-9]+$ ]] && (( $input > 0 && $input <= $NUM )); then
echo -e "\033[93;40m"
echo -e " ( m:🔇 9:🔈︎ 0:🔊 q:⏹ space:⏯︎ up:⏩)\033[0m"
#tag 251 140
while :;
do
LINK=${DOMAIN%%/}"/latest_version?id="$(sed -n "${input}p" "${LTMP}")"&itag=251"
mpv ${PPXY} --really-quiet --vid=no "${LINK}&local=true" && break
mpv ${PPXY} --really-quiet --vid=no "${LINK}" && break
done
elif [[ -z "$input" ]]; then
PG=$(($PG+1))
getlink
continue
elif [[ "$input" == "-1" ]]; then
if [[ $PG > 1 ]]; then
PG=$((($PG)-1))
else
PG=1
fi
getlink
continue
else
KW=$input
PG=1
getlink
continue
fi
done