-
Notifications
You must be signed in to change notification settings - Fork 0
/
ytdl-fzf
80 lines (78 loc) · 2.02 KB
/
ytdl-fzf
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/bin/bash
usage_br () {
echo "uso: ytdl-fzf <formato> <url>"
echo ""
echo "formatos:"
echo " a para áudio."
echo " v para vídeo."
echo " a+v ou v+a para áudio e vídeo junto."
echo ""
echo "exemplo:"
echo ""
echo "ytdl-fzf a+v https://www.youtube.com/watch?v=Wb3UrJjAac4"
}
usage_us () {
echo "usage:"
echo ""
echo "ytdl-fzf <format> <url>"
echo ""
echo "formats:"
echo ""
echo " a for audio."
echo " v for video."
echo " a+v or v+a for audio and video together."
echo ""
echo "example:"
echo ""
echo "ytdl-fzf a+v https://www.youtube.com/watch?v=Wb3UrJjAac4"
}
id_path=$HOME/.cache/ytids.txt
yt-dlp -F "$2" > "$id_path"
if [[ $1 = "a" ]]
then
audio_format=$(echo -e "aac\nalac\nflac\nm4a\nmp3\nopus\nvorbis\nwav" | fzf --reverse)
yt-dlp -x --audio-format "$audio_format" "$2"
elif [[ $1 = "v" ]]
then
video_menu=$(sed -e '1,/-$/d' -e 's/ .*//g' < "$id_path" | fzf --reverse --preview "cat '$id_path'")
if [[ ${#video_menu} -gt 0 ]]
then
video_format=$(echo -e "avi\nflv\nmkv\nmov\nmp4\nwebm" | fzf --reverse)
if [[ ${#video_format} -gt 0 ]]
then
yt-dlp -f "$video_menu" --recode-video "$video_format" "$2"
else
exit
fi
else
exit
fi
elif [[ $1 = "a+v" || $1 = "v+a" ]]
then
video_menu=$(sed -e '1,/-$/d' -e 's/ .*//g' < "$id_path" | fzf --reverse --preview "cat '$id_path'")
if [[ ${#video_menu} -gt 0 ]]
then
audio_menu=$(sed -e '1,/-$/d' -e 's/ .*//g' < "$id_path" | fzf --reverse --preview "cat '$id_path'")
if [[ ${#audio_menu} -gt 0 ]]
then
video_format=$(echo -e "avi\nflv\nmkv\nmov\nmp4\nwebm" | fzf --reverse)
if [[ ${#video_format} -gt 0 ]]
then
yt-dlp -f "$video_menu"+"$audio_menu" --recode-video "$video_format" "$2"
else
exit
fi
else
exit
fi
else
exit
fi
else
if locale -a | grep -q ^pt_BR
then
usage_br
else
usage_us
fi
fi