ytd (744B)
1 #!/bin/bash 2 3 is_playlist=0 4 is_audio=0 5 is_search=0 6 7 while getopts ":pas" arg; do 8 case $arg in 9 p) is_playlist=1;; 10 a) is_audio=1;; 11 s) is_search=1;; 12 *) echo "Unknown option -${OPTARG}";; 13 esac 14 done 15 16 shift $((OPTIND-1)) 17 18 url=$* 19 20 get_url() { 21 if [[ -z "${url}" ]]; then 22 echo "Give the search criteria to download." >&2 23 read -r url 24 url="${url}" 25 fi 26 27 if [ "${is_search}" -eq 1 ]; then 28 url="ytsearch:${url}" 29 fi 30 echo "${url}" 31 } 32 33 get_args() { 34 if [ "${is_audio}" -eq 1 ]; then 35 echo "-x -f bestaudio" 36 fi 37 } 38 39 url="$(get_url)" 40 args="$(get_args)" 41 42 if [ "${is_playlist}" -eq 1 ]; then 43 yt-dlp ${args} -i -o "%(playlist_index)s - %(title)s.%(ext)s" "${url}" 44 else 45 yt-dlp --no-playlist ${args} -o "%(title)s.%(ext)s" "${url}" 46 fi