sxmo-utils/scripts/appscripts/sxmo_youtube.sh
Anjandev Momi 6b9233b965 youtube: keep search history
resolves #50
2020-08-18 21:27:18 -05:00

45 lines
1 KiB
Bash
Executable file

#!/usr/bin/env sh
HISTORY_FILE="$XDG_CONFIG_HOME"/sxmo/youtubehistory.tsv
menu() {
pidof "$KEYBOARD" || "$KEYBOARD" &
HISTORY="$(tac "$HISTORY_FILE" | nl | sort -uk 2 | sort -k 1 | cut -f 2)"
SEARCHTERMS="$(
printf %b "Close Menu\n$HISTORY" |
dmenu -p "Yt Search" -c -l 10 -fn Terminus-20
)"
pkill "$KEYBOARD"
[ "Close Menu" = "$SEARCHTERMS" ] && exit 0
printf %b "$SEARCHTERMS\n" >> "$HISTORY_FILE"
IDIOTRESULTS="$(youtube-cli "$SEARCHTERMS")"
FMTRESULTS="$(
echo "$IDIOTRESULTS" |
grep -Ev '^(Channelid|Atom feed|Channel title|Published|Viewcount|Userid):' |
sed -E 's/^(URL|Duration):\s+/\t/g' |
tr -d '\n' |
sed 's/===/\n/g' |
gawk -F'\t' '{ print $3 " " $1 " " $2}'
)"
PICKED="$(
printf %b "Close Menu\n$FMTRESULTS" |
dmenu -c -l 10 -fn Terminus-20
)"
[ "Close Menu" = "$PICKED" ] && exit 0
URL="$(echo "$PICKED" | awk -F " " '{print $NF}')"
}
video() {
menu
st -e mpv -ao=alsa -v --ytdl-format='[height<420]' "$URL"
}
audio() {
menu
st -e mpv -ao=alsa -v --no-video "$URL"
}
$1