#!/bin/bash if [[ "${get_data[v]}" ]]; then if [[ "${get_data[v]}" == '18l' || "${get_data[v]}" == '5eFdt6Y_34E' ]]; then uploader='MyMusicGroup' title='█▬█ █ ▀█▀ Jeden Osiem L - Jak Zapomnieć (Oficjalny Teledysk)' url='https://f.sakamoto.pl/videoplayback_.flv' meta[title]="$title" source templates/head.sh else cd temp video=$(haruhi-dl --write-pages --cookies ${cfg[_cookies]} -J "http://youtube.com/watch?v=${get_data[v]}") if [[ $video == '' ]]; then # okay who did this video=$(haruhi-dl --write-pages --cookies ${cfg[_cookies]} -J "http://youtube.com/watch?v=${get_data[v]}") if [[ $video == '' ]]; then # seriously WHO DID THIS return fi fi cd .. #echo "http://youtube.com/watch?v=${get_data[v]}" > /dev/stderr channel_id=$(jq -r '.channel_url' <<< "$video" | sed -s 's/http:\/\/www.youtube.com\/channel\///') uploader=$(jq -r '.uploader' <<< "$video") title=$(jq -r '.title' <<< "$video") meta[title]="$title" source templates/head.sh IFS=$'\n' urls=($(jq -r '.formats[] | select(.format_id == "22" or .format_id == "18").url' <<< "$video")) unset IFS if [[ ${urls[1]} != '' ]]; then url=${urls[1]} else url=${urls[0]} fi fi echo "

" source "${cfg[namespace]}/webroot/player_flash.shs" # echo "

$title

Uploaded by $uploader on $(date -d "$(echo $video | jq -r '.upload_date' | sed -E 's/..../&-/;s/....-../&-/')" "+%d %B %Y")
$(echo $video | jq -r '.view_count') views
$(echo $video | jq -r '.like_count') likes, $(echo $video | jq -r '.dislike_count') dislikes.
" if [[ ${cookies[sh_session]} ]]; then if [[ $(grep $(session_get_username "${cookies[sh_session]}") storage/faves | grep "${get_data[v]}") == '' ]]; then echo "Add to favourites
" else echo "Remove from favourites
" fi if [[ $(grep $(session_get_username "${cookies[sh_session]}") storage/subscribed | grep "$channel_id") == '' ]]; then echo "Subscribe to $uploader!
" else echo "Unsubscribe from $uploader
" fi else echo "Log in to add this video to your favourites and/or subscribe to this channel!
" fi echo "

Description:
$(echo "$video" | jq -r '.description' | sed -E 's/$/
/g')
"; vid="$(cat "temp/${get_data[v]}_https_-_"*"watch"*".dump")" vid_json="$(tr -d '\n' <<< "$vid" | grep -Poh "ytInitialData.*?" | sed 's/ytInitialData = //;s/<\/script>//')" echo "

Recommended

" jq -r '.contents.twoColumnWatchNextResults.secondaryResults.secondaryResults.results[] | .compactAutoplayRenderer.contents[0].compactVideoRenderer, .compactVideoRenderer | if .videoId != null then "
"+.title.simpleText+"
" else empty end' <<< "$vid_json" #for i in $(grep -ohE "watch\?v\=[A-zaz0-9]{11}" <<< "$vid" | cut -c 9-19 | uniq); do # echo "

"; #done vid="$(curl -s "https://www.youtube.com/watch?v=${get_data[v]}" -c cookiejar_)" # broken comment support, we need this for now echo "

Comments

" cont="$(echo "$vid" | grep -Poh 'continuation":".*?"' | sed -E 's/.*":"//g;s/"//g')" CSRF="$(echo "$vid" | grep -Poh 'XSRF_TOKEN":".*?"' | sed -E 's/XSRF_TOKEN":"//g;s/"//g;s/\\u00/%/g')" comments="$(curl -vvv 'https://www.youtube.com/comment_service_ajax?action_get_comments=1&pbj=1&ctoken='"$cont"'&continuation='"$cont" -H 'Accept: */*' -H 'Accept-Language: en-US,en;q=0.5' --compressed -H 'X-YouTube-Client-Name: 1' -H 'X-YouTube-Client-Version: 2.20201105.01.01' --data-raw 'session_token='"$CSRF" -b cookiejar_)" IFS=$'\n' comment_nick=($(jq -r '.response.continuationContents.itemSectionContinuation.contents[].commentThreadRenderer.comment.commentRenderer.authorText.simpleText' <<< "$comments")) comment_published=($(jq -r '.response.continuationContents.itemSectionContinuation.contents[].commentThreadRenderer.comment.commentRenderer.publishedTimeText.runs[0].text' <<< "$comments")) comment_likes=($(jq -r '.response.continuationContents.itemSectionContinuation.contents[].commentThreadRenderer.comment.commentRenderer.likeCount' <<< "$comments")) comment_avatar=($(jq -r '.response.continuationContents.itemSectionContinuation.contents[].commentThreadRenderer.comment.commentRenderer.authorThumbnail.thumbnails[1].url' <<< "$comments")) unset IFS x=$(jq '.response.continuationContents.itemSectionContinuation.contents[].commentThreadRenderer.comment.commentRenderer.contentText.runs | map(.text)' <<< "$comments") IFS=']' for i in $x; do comment_text+=($(echo "$i]" | jq -r 'join("")')) # sincerely, fsck [] shell expansion done for (( i=0; i<${#comment_nick[@]}; i++ )); do echo "
${comment_nick[$i]} | ${comment_published[$i]} | ${comment_likes[$i]} liked
${comment_text[$i]}

" done if [[ "${get_data[playlist]}" ]]; then playlist=$(haruhi-dl --cookies ${cfg[_cookies]} -j --flat-playlist "https://www.youtube.com/playlist?list=${get_data[playlist]}") IFS=$'\n' video_title=($(jq -r '.title' <<< $playlist)) video_id=($(jq -r '.id' <<< $playlist)) for (( i=0; i<${#video_id[@]}; i++ )); do if [[ "${video_id[$i]}" == "${get_data[v]}" ]]; then next="${video_id[$((i+1))]}" break fi done [[ "$next" == '' ]] && next='dQw4w9WgXcQ' echo "" echo "

Playlist

" for (( i=0; i<${#video_id[@]}; i++ )); do echo "
${video_title[$i]}

" done fi echo "" else source templates/head.sh echo "pls add ?v param i'm still WiP" fi