blob: f24318ddb42d03b4675c81e138513961485842bc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#! /bin/zsh
[ ! -z "$2" ] && url="$2" \
|| url=$(printf '%s' "$(xclip -o -sel c)")
[[ "$url" != *'http://'* ]] && [[ "$url" != 'https://'* ]] && exit 1
CHOICES=('Play' 'Record' 'Clip' 'Download' 'aDownload' 'Open' 'Clipboard')
[ ! -z "$1" ] && selected="$1" \
|| selected="$(echo "${CHOICES[@]}" | tr ' ' '\n' | rofi -dmenu -i)"
case "$selected" in
"${CHOICES[1]}")
[[ "$url" = *"&list="* ]] && playlist="$(echo "$url" | awk -F '&list=' '{print $2}')" \
&& url="https://www.youtube.com/playlist?list=$playlist"
setsid -f mpv "$url" > /dev/null 2>&1 ;;
"${CHOICES[2]}")
setsid -f mpv --stream-record="$HOME/$(date '+%Y-%m-%d—%T.mkv')" "$url" > /dev/null 2>&1 ;;
"${CHOICES[3]}")
from="$(echo -n | dmenu -p 'From (00:00/n)')"
[ -z "$from" ] && exit 1
to="$(echo -n | dmenu -p 'To (00:00/n)')"
[ -z "$to" ] && exit 1
filename="$(echo -n | dmenu -p 'Filename')"
[ -z "$filename" ] && exit 1
ffmpeg -n \
-ss "$from" \
-to "$to" \
-i "$(yt-dlp -f b --get-url "$url")" \
"$HOME/$filename.mp4" ;;
"${CHOICES[4]}")
yt-dlp -f 'bestvideo[height<=1080][ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' \
-o "$HOME/%(title)s.%(ext)s" \
--embed-chapters \
"$url" ;;
"${CHOICES[5]}")
yt-dlp -f 'bestaudio/best' \
-o "$HOME/%(title)s.%(ext)s" \
--embed-thumbnail \
--extract-audio \
--audio-format mp3 \
--embed-chapters \
"$url" ;;
"${CHOICES[6]}") setsid -f xdg-open "$url" > /dev/null 2>&1 ;;
"${CHOICES[7]}") printf '%s' "$url" | xclip -r -sel c ;;
'') exit 0 ;;
*) exit 1 ;;
esac
|