yt_dl.sh - dotfiles - These are my dotfiles. There are many like it, but these are mine.
 (HTM) git clone git://jay.scot/dotfiles
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
       yt_dl.sh (2215B)
       ---
            1 #!/bin/sh
            2 
            3 # Instead of using tools like ytcc we can just use yt-dlp directly
            4 # with a simple shell script without the need for python dependencies
            5 # etc.
            6 #
            7 # Jay Scott <me@jay.scot>
            8 
            9 # user config
           10 savepath="/home/jay/media/videos"
           11 cachedir="${HOME}/.cache/yt_dl"
           12 notify="echo \"%(title)s\" | mail -s 'YT: %(channel)s' jay"
           13 
           14 # static config
           15 yt="yt-dlp"
           16 baseurl="https://www.youtube.com/playlist?list="
           17 
           18 main() {
           19 
           20         mkdir -p "${cachedir}"
           21 
           22         $1 "mre_steve" "UU2I6Et1JkidnnbWgJFiMeHA"
           23         $1 "harald_baldr" "UUKr68ZJ4vv6VloNdnS2hjhA"
           24         $1 "dale_philip" "UUKygRpISlqs5TufcT3JtRng"
           25         $1 "simon_wilson" "UUQCrKxBj5Id79syQEsY2Qxg"
           26         $1 "hexdsl" "UURE3NFNtdjR96-H4QG4U1Fg"
           27         $1 "distrotube" "UUVls1GmFKf6WlTraIb_IaJg"
           28         $1 "brodie_robertson" "UUld68syR8Wi-GY_n4CaoJGA"
           29         $1 "pppeter" "UUnHEz9DZ6EAof1-DaQGD_Xw"
           30         $1 "bald_and_bankrupt" "UUxDZs_ltFFvn0FDHT6kmoXA"
           31         $1 "vagrant_holiday" "UUgNqlRGqHdxNRPR6ycynWhw"
           32         $1 "chris_ramsay" "UUrPUg54jUy1T_wII9jgdRbg"
           33         $1 "c90adventures" "UUVqpNG1R72i21jh-nAxEk4A"
           34         $1 "abroad_in_japan" "UUHL9bfHTxCMi-7vfxQ-AYtg"
           35         $1 "quin69" "UUpNBjjE8y8eFPhDU4YzYmKA"
           36         $1 "clawd00d" "UUdQ3VoDGjjl3NsfB3V0mPng"
           37         $1 "serpentza" "UUl7mAGnY4jh4Ps8rhhh8XZg"
           38         $1 "preach_gaming" "UUXJL3ST-O0J3nqzQyPJtpNg"
           39         $1 "indigo_traveller" "UUXulruMI7BHj3kGyosNa0jA"
           40         $1 "sidenote" "UURvWwMPr2SmSG7rXXzeEUdA"
           41         $1 "dave_snider" "UU7uO9V1Frl_wPd9d1qOm_RQ"
           42         $1 "bright_sun_films" "UU5k3Kc0avyDJ2nG9Kxm9JmQ"
           43         $1 "tuxfoo" "UUWpoyqSBIXtylRLFgP3PFfg"
           44         $1 "liamtheterrible" "UULF5Au9oV9G4qbyTKJmUcWWJg"
           45         $1 "mentourpilot" "UULFwpHKudUkP5tNgmMdexB3ow"
           46         $1 "will_whereabouts" "UULFvaxWoGczo5olB3lgC6Nr6A"
           47         $1 "linus_tech_tips" "UULFXuqSBlHAE6Xw-yeJA0Tunw"
           48         $1 "auto_alex" "UULFqWFLuBLPiaeNzYAek6BOmA"
           49         $1 "zac" "UULFcjx6m03fZwtRBFn1Cf7kKQ"
           50         $1 "openbsdguy" "UULFqGmpMaWCpLe7hpnNnU09TA"
           51 }
           52 
           53 get_video() {
           54         echo "fetching ... $1"
           55         $yt -q --restrict-filename --download-archive \
           56                 "${cachedir}/${1}" "${baseurl}${2}" -o \
           57                 "${savepath}/${1}/%(playlist_index)s_%(title)s.%(ext)s" \
           58                 --exec "$notify"
           59 }
           60 
           61 catchup() {
           62         echo "catching up ... $1"
           63         $yt --flat-playlist --get-id \
           64                 "${2}" | sed 's/.*/youtube &/' >"${cachedir}/${1}"
           65 }
           66 
           67 case $1 in
           68 -m)
           69         main catchup
           70         exit
           71         ;;
           72 -n)
           73         catchup "$2" "$3"
           74         exit
           75         ;;
           76 
           77 *)
           78         main get_video
           79         exit
           80         ;;
           81 esac