bash/fedilives/peertube.sh
2023-03-16 15:46:53 +03:00

61 lines
1.2 KiB
Bash

#!/usr/bin/env bash
: "${1?How to use: $0 PT_VIDEO_LINK}"
link="$1"
### Get HTML
wget "$link" -O /tmp/videohtml
### Variables
videolink=$( grep "meta property" /tmp/videohtml | grep "og:video:url" \
| sed 's/.*href="//' | sed 's#" />##')
chatver=$( grep 'peertube-plugin-livechat' /tmp/videohtml | grep 'version'\
| sed 's#.*npmName..:..peertube-plugin-livechat.....name..:..livechat.....version..:..##' \
| sed 's#.....description.....PeerTube plugin livechat: offers a way.*##' )
instance=$(echo "$videolink" | sed 's#https://##' | sed 's#/videos/watch/.*##')
videoid=$(echo $videolink | sed 's#.*videos/watch/##')
### Delete html
rm /tmp/videohtml
### Functions
function live()
{
xdg-open https://"$instance"/plugins/livechat/"$chatver"/router/webchat/room/"$videoid" &
mpv --no-terminal https://"$instance"/static/streaming-playlists/hls/"$videoid"/0.m3u8 &
exit 0
}
function nolive()
{
mpv --no-terminal --ytdl-format=best "$videolink" &
exit 0
}
### Choose
echo
echo "Is it live? (Y/n)"
read -r is_live
echo
case "$is_live" in
"" | "y")
live
;;
"n")
nolive
;;
* )
echo "Ты, блять, дурак что ли? Белым по чёрному написано y или n"
;;
esac
exit 0