initial commit
This commit is contained in:
commit
6d33892049
|
@ -0,0 +1,73 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
max_results=${2:-10}
|
||||||
|
line_index=0
|
||||||
|
title=""
|
||||||
|
id=""
|
||||||
|
uploader=""
|
||||||
|
duration=""
|
||||||
|
video_titles=()
|
||||||
|
video_urls=()
|
||||||
|
|
||||||
|
mkdir -p "$HOME/.local/share/watchyt"
|
||||||
|
cd "$HOME/.local/share/watchyt"
|
||||||
|
|
||||||
|
mkfifo youtube_dl_output
|
||||||
|
youtube-dl --get-title --get-filename -o '%(id)s;%(duration)d;%(upload_date)s;%(uploader)s' ytsearch${max_results}:"$1" 2>/dev/null > youtube_dl_output &
|
||||||
|
|
||||||
|
while read line
|
||||||
|
do
|
||||||
|
case $line_index in
|
||||||
|
0)
|
||||||
|
title="$line"
|
||||||
|
;;
|
||||||
|
1)
|
||||||
|
id=$(echo "$line" | cut -d ';' -f 1)
|
||||||
|
duration=$(echo "$line" | cut -d ';' -f 2)
|
||||||
|
upload_date=$(echo "$line" | cut -d ';' -f 3)
|
||||||
|
uploader=$(echo "$line" | cut -d ';' -f 4)
|
||||||
|
|
||||||
|
video_titles+=( "$title" )
|
||||||
|
video_urls+=( "https://youtube.com/watch?v=$id" )
|
||||||
|
duration_minutes=$(( duration / 60 ))
|
||||||
|
duration_seconds=$(( duration % 60 ))
|
||||||
|
upload_date_formatted=$(date -d"$upload_date" +%d/%m/%Y)
|
||||||
|
entry_index=${#video_urls[@]}
|
||||||
|
echo "$(printf "%2d" $entry_index)) $title [$duration_minutes:$(printf "%02d" $duration_seconds)]"
|
||||||
|
echo " uploaded by \"$uploader\" on $upload_date_formatted"
|
||||||
|
echo ""
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
line_index=$(( line_index + 1))
|
||||||
|
line_index=$(( line_index % 2 ))
|
||||||
|
done < youtube_dl_output
|
||||||
|
|
||||||
|
rm youtube_dl_output
|
||||||
|
video_count="${#video_urls}"
|
||||||
|
if [ "$video_count" -eq "0" ]
|
||||||
|
then
|
||||||
|
echo "no videos found"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -n "please select video: "
|
||||||
|
read selection
|
||||||
|
|
||||||
|
case $selection in
|
||||||
|
(*[!0-9]*|'')
|
||||||
|
echo "invalid selection"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
(*)
|
||||||
|
if [ "$selection" -gt $(( video_count )) ]
|
||||||
|
then
|
||||||
|
echo "invalid selection"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
video_url="${video_urls[$(( selection - 1 ))]}"
|
||||||
|
youtube-dl --restrict-filenames -o '%(title)s.%(ext)s' "$video_url"
|
||||||
|
filename=$(youtube-dl -s --get-filename --restrict-filenames -o '%(title)s' "$video_url")
|
||||||
|
echo "filename: $filename"
|
||||||
|
vlc "$filename".* 2>/dev/null
|
||||||
|
;;
|
||||||
|
esac
|
Loading…
Reference in New Issue