#!/bin/sh
#a script to parse youtube or invidious link to play
#author:Wos
PXY="-x http://127.0.0.1:7891"
PPXY="--http-proxy=http://127.0.0.1:7891"
while :;
do
clear
echo -e "\033[96;40m"
base64 -d <<<"H4sIAAAAAAAAA6WSPRLEIAiF+5yCzs6aA+QAtnaOY88NOPsCSoxOJlvEgp8X3o74basgp0mMDbHG
XluUXk/dFJlp48NRJEgXIGICyBgBUWclFmZE5jAVLQqekoMqcEhX1byOwHNEJKIceiYS98PIi5uZ
a+yZ+ea+VsBeLL6hWGs3j+PmsmyysmTEJCtw1idJtln/dClLlnc64Mv56HaEittojz5aMdFec4vb
Eep76cMtSGVtR+v67iZq50A4kNZsv0TRXB2t67tbwUFHaG5DB8bghnbq+839ZuO/UmxfHb2hdf3Z
bWRtT82njiLmidb11f0Pyuv56P4Bx9rG2uADAAA="|gunzip
echo "youtube and invidious parser"
echo "copy youtube resource link or invidious resource link or video id,it will auto parser to play(default:720p)"
echo "support english subtitle"
echo "don't support long video"
echo -e "\033[0m"
LINK=$(echo $(xclip -selection clipboard -o 2>/dev/null)|head -1|sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
if [[ "${LINK}" == *watch?v* ]] || [[ "${LINK}" == */shorts/* ]] || [[ "${LINK}" == */youtu.be/* ]] || [[ "${LINK}" == */embed/* ]] || [[ $(echo ${LINK}|wc -c) == 12 ]]; then
    xclip -selection clipboard /dev/null
    if [[ $(echo ${LINK}|wc -c) == 12 ]]; then
        VID=$(echo ${LINK})
    else
        VID=$(echo ${LINK}|awk -F\= '{print $2}'|awk -F\& '{print $1}')
    fi
    if [[ -z "${VID}" ]]; then
        VID=$(echo ${LINK}|awk -Fembed\/ '{print $2}')
        if [[ -z "${VID}" ]]; then
            VID=$(echo ${LINK}|awk -Fshorts\/ '{print $2}')
            if [[ -z "${VID}" ]]; then
                VID=$(echo ${LINK}|awk -Fyoutu.be\/ '{print $2}')
            fi
        fi
    fi
    echo ${VID}

    #download subtitle
    #subtitle server one
    curl -s "https://youtube.privacyplz.org/api/v1/captions/${VID}?label=English%20(auto-generated)" ${PXY} -o /tmp/y2mate.srt
    #combine srt subtitle to txt,and paste to clipbard,you can translate it with other tool
    cat /tmp/y2mate.srt|grep -v "\-> "|tr '\n' ' '|awk -F"Language: en" '{print $2}'|xclip -selection clipboard
    #get play link ,default 720p
    while :;
    do
    LINK2=$(curl -XPOST  -s "https://mmnm.store/oajax.php" -d"videoid="${VID}"&downtype=mp4&vquality=720"|awk -F\" '{print $8}')
    if [[ "${LINK2}" =~ ^https ]]; then
        echo "${LINK2}"
        mpv --stream-lavf-o-append="protocol_whitelist=file,http,https,tcp,tls,crypto,hls,applehttp" --sub-file=/tmp/y2mate.srt --really-quiet "${LINK2}"
        break
    else
        continue
    fi
    done
    xclip -selection clipboard /dev/null
else
    sleep 1
    continue
fi
done