Edit 221015: 如果遇到一些 youtube-dl 不支持的網址,可以嘗試用 yt-dlp,來下載,比如 arte.tv 的視頻。可以用傳統的 pip 安裝:pip install yt-dlp
也可以直接允許可執行文件。使用方法類似 youtube-dl。
之前用過一些在線提取和轉換YouTube視頻的服務,近來發現這些提取或轉換的鏈接要求ip一致,那就無法用洋蔥網絡下載了。好在發現youtube-dl這麼個好工具,不僅能下載單集視頻還能下載視頻列表;不僅能單獨下載字幕還能把字幕合入視頻,非常強大。目前用的這幾個參數,記錄一下。
#安裝youtube-dl sudo dnf install youtube-dl ##單個視頻下載 #查看可下載的視頻,注意audio only的視頻,沒有伴音的哦 youtube-dl https://www.youtube.com/watch?v=qU52CFGTGu0 -F #下載編號為22的視頻 youtube-dl --proxy socks5://127.0.0.1:9150 qU52CFGTGu0 -f 22 #續傳中斷的視頻 youtube-dl --proxy socks5://127.0.0.1:9150 qU52CFGTGu0 -f 22 --continue #列出所有字幕 youtube-dl --proxy socks5://127.0.0.1:9150 qU52CFGTGu0 --list-subs #只下載字幕而不下載視頻 youtube-dl --all-subs --skip-download --proxy socks5://127.0.0.1:9150 https://www.youtube.com/watch?v=qU52CFGTGu0 #使用aria2搭配proxychains實現多進程下載 sudo dnf install aria2 proxychains-ng proxychains4 youtube-dl -f mp4 --external-downloader aria2c --external-downloader-args '-c -j4 -x 4 -s 4 -k 5M' lW0ugxbtIEE ##視頻列表下載 #將視頻列表中的視頻連接輸出到文本文件 youtube-dl -j --flat-playlist "https://www.youtube.com/playlist?list=PLATwx1z00HsdanKZcTMQEc-n_Bhu_aZ76" | jq -r '.id' | sed 's_^_https://youtu.be/_' > list.log #從文件里讀取視頻地址並下載,下載過的會保存於done.txt不會重複下載 youtube-dl -f mp4 --external-downloader aria2c --external-downloader-args '-c -j5 -x 5 -s 5 -k 10M --max-download-limit 1024k' --batch-file list.log --download-archive done.txt #下載分辨率是 1080 的最佳畫質音視頻 yt-dlp --format "bv*[height=1080]+ba/b" qU52CFGTGu0 #舊電視或機頂盒可能不支持 VP90 視頻編碼以及 opus 音頻編碼 #或者不識別默認的 webm 視頻文件,這時可以選擇較舊的 avc1(h264) 視頻編碼和 mp4a 音頻編碼來解決 yt-dlp qU52CFGTGu0 -F yt-dlp qU52CFGTGu0 -f 137+140
參考:youtube-dl批量下载时,跳过之前已经下载过的文件
Using yt-dlp in command line(網頁存檔)
本文更新於 2024/09/20。