a lot
This commit is contained in:
parent
0405a96e74
commit
00821b83ab
80
rss/youtube
80
rss/youtube
@ -2,6 +2,8 @@
|
||||
|
||||
set -e
|
||||
|
||||
argv0="$0"
|
||||
|
||||
id(){
|
||||
youtube-dl --skip-download --print-json --playlist-items 1 "$1" \
|
||||
| jq '.channel_id' \
|
||||
@ -9,15 +11,85 @@ id(){
|
||||
}
|
||||
|
||||
feedurl(){
|
||||
printf "https://www.youtube.com/feeds/videos.xml?channel_id=%b" "$1"
|
||||
printf "https://www.youtube.com/feeds/videos.xml?channel_id=%b\n" "$1"
|
||||
}
|
||||
|
||||
list_channels(){
|
||||
for file in "$(pig_pen)"/*
|
||||
do printf "%s\t%s\n" "$(xq '.feed.title' <"$file")" "$file"
|
||||
done
|
||||
}
|
||||
|
||||
usage(){
|
||||
printf "\
|
||||
Usage: %s
|
||||
list_channels
|
||||
list_videos [channel name]
|
||||
listen [video URL]
|
||||
refresh (channel name...)
|
||||
subscribe [channel URL]
|
||||
watch [video URL]
|
||||
" "$argv0" 1>&2
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
subscribe)
|
||||
pig_stow "$(feedurl "$(id "$2")")"
|
||||
list_channels)
|
||||
! str isvalue "$2" \
|
||||
|| usage
|
||||
list_channels | sort
|
||||
;;
|
||||
list_videos) # do something with youtube-dl?
|
||||
str isvalue "$2" \
|
||||
|| usage
|
||||
list_channels \
|
||||
| grep "$2" \
|
||||
| cut -f 2 \
|
||||
| xargs xq \
|
||||
'reduce .feed.entry[] as $item (
|
||||
{};
|
||||
. + { ($item.link."@href"): $item.title }
|
||||
)'
|
||||
;;
|
||||
listen)
|
||||
str isvalue "$2" \
|
||||
|| usage
|
||||
while str isvalue "$2"
|
||||
do youtube-dl "$2" -f bestaudio -o - \
|
||||
| mpv -
|
||||
shift
|
||||
done
|
||||
;;
|
||||
refresh)
|
||||
pig_feed
|
||||
if ! str isvalue "$2"
|
||||
then pig_feed # does this in bulk
|
||||
else
|
||||
while str isvalue "$2"
|
||||
do list_channels \
|
||||
| grep "$2" \
|
||||
| cut -f 2 \
|
||||
| xargs pig_latin \
|
||||
| jq '.feed_url' \
|
||||
| xargs pig_stow
|
||||
shift
|
||||
done
|
||||
fi
|
||||
;;
|
||||
subscribe)
|
||||
str isvalue "$2" && ! str isvalue "$3" \
|
||||
|| usage
|
||||
pig_stow "$(feedurl "$(id "$2")")"
|
||||
;;
|
||||
watch) # needs work
|
||||
str isvalue "$2" \
|
||||
|| usage
|
||||
while str isvalue "$2"
|
||||
do youtube-dl "$2" -f 18 -o - \
|
||||
| mpv -
|
||||
shift
|
||||
done
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
;;
|
||||
esac
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user