#! /dev/zsh # # this file: # https://dataswamp.org/~incal/conf/.zsh/dl rm-part () { rm -f **/*.(part|ytdl)(N) } alias rmp=rm-part dl-html () { dl $(xo) } dl_resume_all=".dl-all-str.txt" dl-resume-all () { local cmd=${1:-dl-all-both} local file=$dl_resume_all if [[ -f $file ]]; then local str=$(cat $file | head -n 1) if [[ $str ]]; then echo "[${cmd}] ${str}" $cmd $str else echo "Cannot resume all, ${dl_resume-all} is empty!" >&2 fi else echo "Cannot resume all, no ${dl_resume-all} file!" >&2 fi } dl_resume=".dl" dl-resume () { if [[ -f $dl_resume ]]; then rtorrent $(cat $dl_resume) elif [[ -f $dl_resume_all ]]; then dl-resume-all $1 # looks weird but should be like that else echo "Cannot resume, no ${dl_resume} or ${dl_resume_all} file" >&2 fi } dl () { local urls=${1:-$(<$DL_FILE)} echo $urls > $dl_resume if [[ $urls == magnet* ]]; then rtorrent ${=urls} elif [[ $urls == http* ]]; then echo "downloading ... $urls" dl-both $urls fi } dlxo () { dl $(xo) } dlp_opts=( --no-abort-on-error --no-colors --no-warnings -i -q ) dl-both () { local urls=${1:-$(<$DL_FILE)} yt-dlp $dlp_opts ${=urls} } dl-video () { local urls=${1:-$(<$DL_FILE)} yt-dlp $dlp_opts -f 'bestvideo' ${=urls} } dl-audio () { local urls=${1:-$(<$DL_FILE)} yt-dlp $dlp_opts -f 'bestaudio' ${=urls} } dl-small () { local urls=${1:-$(<$DL_FILE)} local size=${2:-800} yt-dlp $dlp_opts -f "best[filesize<=${size}M]" ${=urls} } dl-all-small () { local key=$@ dl-all dl-small $key } dl-1080-up () { local urls=${1:-$(<$DL_FILE)} yt-dlp $dlp_opts -f 'bestvideo[height>=1080]+bestaudio' ${=urls} } dl-720-up () { local urls=${1:-$(<$DL_FILE)} yt-dlp $dlp_opts -f 'bestvideo[height>=720]+bestaudio' ${=urls} } dl-720-down () { local urls=${1:-$(<$DL_FILE)} yt-dlp $dlp_opts -f 'bestvideo[height<=720]+bestaudio' ${=urls} } dl-480-up () { local urls=${1:-$(<$DL_FILE)} yt-dlp $dlp_opts -f 'bestvideo[height>=480]+bestaudio' ${=urls} } dl-2160 () { local urls=${1:-$(<$DL_FILE)} yt-dlp $dlp_opts -f 'bestvideo[height=2160]+bestaudio' ${=urls} } dl-1080 () { local urls=${1:-$(<$DL_FILE)} yt-dlp $dlp_opts -f 'bestvideo[height=1080]+bestaudio' ${=urls} } dl-720 () { local urls=${1:-$(<$DL_FILE)} yt-dlp $dlp_opts -f 'bestvideo[height=720]+bestaudio' ${=urls} } dl-480 () { local urls=${1:-$(<$DL_FILE)} yt-dlp $dlp_opts -f 'bestvideo[height=480]+bestaudio' ${=urls} } dl-480-na () { local urls=${1:-$(<$DL_FILE)} yt-dlp $dlp_opts -f 'bestvideo[height=480]' ${=urls} } dl-2160-video () { local urls=${1:-$(<$DL_FILE)} yt-dlp $dlp_opts -f 'bestvideo[height=2160]' ${=urls} } dl-1080-up-video () { local urls=${1:-$(<$DL_FILE)} yt-dlp $dlp_opts -f 'bestvideo[height>=1080]' ${=urls} } dl-720-up-video () { local urls=${1:-$(<$DL_FILE)} yt-dlp $dlp_opts -f 'bestvideo[height>=720]' ${=urls} } dl-720-video () { local urls=${1:-$(<$DL_FILE)} yt-dlp $dlp_opts -f 'bestvideo[height=720]' ${=urls} } dl-tt-video () { local urls=${1:-$(<$DL_FILE)} yt-dlp $dlp_opts -f 'bestvideo[height>=1920]' ${=urls} } dl-1080-video () { local urls=${1:-$(<$DL_FILE)} yt-dlp $dlp_opts -f 'bestvideo[height=1080]' ${=urls} } dl-all () { local fun=$1 shift local key=$@ local file=$dl_resume_all if [[ $fun == 'cat' ]]; then cat $file else echo $key >> $file local hits=$(printf '%s\t%s\r\n' /youtube.cgi $key | nc git.codemadness.org 70 | awk -F '\t' '/^h.*embed/ { sub("URL:", "", $2); print $2 }') $fun $hits fi } alias dac='dl-all cat' dl-all-1080-up () { local key=$@ dl-all dl-1080-up $key } dl-all-720-up () { local key=$@ dl-all dl-720-up $key } dl-all-720-down () { local key=$@ dl-all dl-720-down $key } dl-all-480-up () { local key=$@ dl-all dl-480-up $key } dl-all-both () { local key=$@ dl-all dl-both $key } dl-all-2160-video () { local key=$@ dl-all dl-2160-video $key } alias dl-all-4k-video=dl-all-2160-video dl-all-2160 () { local key=$@ dl-all dl-2160 $key } alias dl-all-4k=dl-all-2160 dl-all-1080 () { local key=$@ dl-all dl-1080 $key } dl-all-720 () { local key=$@ dl-all dl-720 $key } dl-all-480 () { local key=$@ dl-all dl-480 $key } dl-all-1080-up-video () { local key=$@ dl-all dl-1080-up-video $key } dl-all-tt-video () { local key=$@ dl-all dl-tt-video $key } dl-all-1080-video () { local key=$@ dl-all dl-1080-video $key } dl-all-720-up-video () { local key=$@ dl-all dl-720-up-video $key } dl-all-720-video () { local key=$@ dl-all dl-720-video $key } dl-up-down () { local key=$@ dl-all dl-2160 $key dl-all dl-1080 $key dl-all dl-720 $key } dl-all-video () { local key=$@ dl-all dl-video $key } dl-all-audio () { local key=$@ dl-all dl-audio $key } dl-music () { local songs=($@) local s local hit for s in $songs; do hit=$(printf '%s\t%s\r\n' /youtube.cgi $s | nc git.codemadness.org 70 | head -n 1 | awk -F '\t' '/^h.*embed/ { sub("URL:", "", $2); print $2 }') dl-audio $hit done }