bashtube/webroot/yt/search.shs

50 lines
4.1 KiB
Bash
Executable File

#!/bin/bash
PREFIX='/yt'
meta[title]="youtube but not really"
source templates/head.sh
# GOOD LUCK FIXING IT WHEN GOOGLE BREAKS IT LOL
cat webroot/yt/webarchive/search_top.htm
#echo "<form action='${r[url]}/search.shs'>
#<input name='q' type='text'>
#<input type='submit' value='Search'>
#</form>
#"
if [[ ${get_data[q]} ]]; then
query=${get_data[q]}
query_nice=$(echo ${get_data[q]} | sed -s 's/+/ /g')
echo "<p>Searching for '$query_nice'</p>"
data=''
while [[ $data == '' ]]; do
data=$(curl -s "https://m.youtube.com/results?search_query=$query&app=m&hl=en" | sed 's/<!-- end of chunk 1 --><div id="initial-data">/\n/g;s/><\/div><script >/\n/' | grep -v div | grep "<\!--" | sed -s 's/<!--//')
done
IFS=$'\n'
id=($(echo $data | jq -r '.contents.sectionListRenderer.contents[0].itemSectionRenderer.contents[1:] | map(.compactVideoRenderer.videoId) | .[]'))
if [[ ${id[0]} == '' ]]; then # I do not care, and neither should you
id=($(echo $data | jq -r '.contents.sectionListRenderer.contents[1].itemSectionRenderer.contents[1:] | map(.compactVideoRenderer.videoId) | .[]'))
title=($(echo $data | jq -r '.contents.sectionListRenderer.contents[1].itemSectionRenderer.contents[1:] | map(.compactVideoRenderer.title.runs[0].text) | .[]'))
runtime=($(echo $data | jq -r '.contents.sectionListRenderer.contents[1].itemSectionRenderer.contents[1:] | map(.compactVideoRenderer.thumbnailOverlays[0].thumbnailOverlayTimeStatusRenderer.text.runs[0].text) | .[]'))
else
title=($(echo $data | jq -r '.contents.sectionListRenderer.contents[0].itemSectionRenderer.contents[1:] | map(.compactVideoRenderer.title.runs[0].text) | .[]'))
runtime=($(echo $data | jq -r '.contents.sectionListRenderer.contents[0].itemSectionRenderer.contents[1:] | map(.compactVideoRenderer.thumbnailOverlays[0].thumbnailOverlayTimeStatusRenderer.text.runs[0].text) | .[]'))
fi
# id=($(echo $data | grep -E "watch\?v\=[A-z0-9_-]{11}" -oh | sed -E 's/watch\?v\=//g;s/" class="yt-uix-tile-link(.*)//g' | uniq))
# title=($( echo $data | sed -s 's/,"width":...,"height":...}]},"title":{"runs":\[{"text":"/TITLE_BEGIN/g;s/accessibility"/\n/g;s/"navigationEndpoint"/\n/g' | grep TITLE_BEGIN | sed -E 's/(.*)TITLE_BEGIN//g'))
unset IFS
for (( i=0; i<${#id[@]}; i++ )); do
# echo "<a href='/yt/watch.shs?v=${id[$i]}'><img src='https://i.ytimg.com/vi/${id[$i]}/mqdefault.jpg'><br>${title[$i]}</a> | ${runtime[$i]}<br>"
echo "<li><div class='yt-lockup yt-lockup-tile yt-lockup-video clearfix yt-uix-tile'><div class='yt-lockup-thumbnail'><a href='$PREFIX/watch.shs?v=${id[$i]}' class='contains-addto yt-uix-sessionlink spf-link'><div class='video-thumb'><img src='https://i.ytimg.com/vi/${id[$i]}/mqdefault.jpg' width='185' height='104'/></div><span class='video-time'>${runtime[$i]}</span><button class='yt-uix-button yt-uix-button-size-small yt-uix-button-default yt-uix-button-empty yt-uix-button-has-icon addto-button video-actions spf-nolink hide-until-delayloaded addto-watch-later-button-sign-in yt-uix-tooltip' type='button' onclick=';return false;' title='Watch Later' role='button'><span class='yt-uix-button-icon-wrapper'><img src='https://s.ytimg.com/yts/img/pixel-vfl3z5WfW.gif' title='Watch Later' class='yt-uix-button-icon yt-uix-button-icon-addto yt-sprite'></span><img src='https://s.ytimg.com/yts/img/pixel-vfl3z5WfW.gif' class='yt-uix-button-arrow yt-sprite'></button></a></div><div class='yt-lockup-content'><h3 class='yt-lockup-title'><a href='$PREFIX/watch.shs?v=${id[$i]}' class='yt-uix-tile-link yt-ui-ellipsis yt-ui-ellipsis-2 yt-uix-sessionlink spf-link' dir='ltr'>${title[$i]}</a></h3><div class='yt-lockup-meta'><ul class='yt-lockup-meta-info'><li>by <b><a href='/user/PewDiePie' class='yt-uix-sessionlink spf-link g-hovercard'>PewDiePie</a></b></li><li>1 day ago</li><li>2,824,318 views</li></ul></div><div class='yt-lockup-description yt-ui-ellipsis yt-ui-ellipsis-2' dir='ltr'>THE DESCRIPTION GOES HERE!</div><div class='yt-lockup-badges'><ul class='yt-badge-list'><li class='yt-badge-item'><span class='yt-badge'>New</span></li><li class='yt-badge-item'><span class='yt-badge'>HD</span></li></ul></div></div></div></li>"
done
cat webroot/yt/webarchive/search_bottom.htm
else
echo "search for something will 'ya?"
fi