这个工具是用来取代youtube-dl的,因为youtube-dl基本上不可用了
yt-dlp不仅可以用来下载youtube视频,bilibili等流媒体网站都是可以使用的。
本文章内容都是关于yt-dlp在windows命令行中使用。
项目地址:https://github.com/yt-dlp/yt-dlp
安装步骤:
1.根据你的 Linux 发行版,手动安装 FFmpeg
sudo apt install ffmpeg # Debian/Ubuntu/Linux Mint 等系统
sudo dnf install ffmpeg # RHEL/Fedora/Alma Linux 等系统
sudo pacman -S ffmpeg # Arch/Manjaro/EndeavourOS 等系统2.将编译好的程序文件直接下载到系统路径中
wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp
chmod a+rx /usr/local/bin/yt-dlp3.查看版本
yt-dlp --version4.常用下载配置
直接下载
yt-dlp https://youtu.be/sKrT6mBrosc查看视频所有分辨率
先用-F参数查看有哪些分辨率
yt-dlp -F https://youtu.be/sKrT6mBrosc示例
root@dxipv6243-431269011855:~# yt-dlp --list-formats https://youtu.be/sKrT6mBrosc
[youtube] Extracting URL: https://youtu.be/sKrT6mBrosc
[youtube] sKrT6mBrosc: Downloading webpage
WARNING: [youtube] No supported JavaScript runtime could be found. Only deno is enabled by default; to use another runtime add --js-runtimes RUNTIME[:PATH] to your command/config. YouTube extraction without a JS runtime has been deprecated, and some formats may be missing. See https://github.com/yt-dlp/yt-dlp/wiki/EJS for details on installing one
[youtube] sKrT6mBrosc: Downloading android vr player API JSON
[info] Available formats for sKrT6mBrosc:
ID EXT RESOLUTION FPS CH │ FILESIZE TBR PROTO │ VCODEC VBR ACODEC ABR ASR MORE INFO
────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb2 mhtml 48x27 1 │ mhtml │ images storyboard
sb1 mhtml 80x45 1 │ mhtml │ images storyboard
sb0 mhtml 160x90 1 │ mhtml │ images storyboard
139 m4a audio only 2 │ 698.51KiB 49k https │ audio only mp4a.40.5 49k 22k low, m4a_dash
140 m4a audio only 2 │ 1.81MiB 130k https │ audio only mp4a.40.2 130k 44k medium, m4a_dash
251 webm audio only 2 │ 1.86MiB 133k https │ audio only opus 133k 48k medium, webm_dash
160 mp4 256x144 30 │ 372.25KiB 26k https │ avc1.4d400c 26k video only 144p, mp4_dash
134 mp4 640x360 30 │ 1.28MiB 92k https │ avc1.4d401e 92k video only 360p, mp4_dash
18 mp4 640x360 30 2 │ ≈ 3.08MiB 221k https │ avc1.42001E mp4a.40.2 44k 360p
136 mp4 1280x720 30 │ 2.74MiB 197k https │ avc1.4d401f 197k video only 720p, mp4_dash
137 mp4 1920x1080 30 │ 8.64MiB 620k https │ avc1.640028 620k video only 1080p, mp4_dash
下载指定分辨率
①只下载音频
找m4a格式,列表越靠后越清晰。比如ID:140 | EXT:m4a | audio only
yt-dlp --list-formats https://youtu.be/sKrT6mBrosc
yt-dlp -f140 https://youtu.be/sKrT6mBrosc②下载音频转换成mp3(加上-x –audio-format参数)
yt-dlp -f140 -x --audio-format mp3 https://youtu.be/sKrT6mBrosc③下载视频(带音频)
ID:22 | EXT:mp4 | 1280*720
yt-dlp -f22 https://youtu.be/sKrT6mBrosc④下载指定分辨率视频+音频(为了方便就直接下载mp4格式了)
1080及以上分辨率的音频和视频是分开的,所以一般会音频和视频一起下载
yt-dlp -f299+140 https://youtu.be/sKrT6mBrosc⑤指定文件名下载(用-o参数)
yt-dlp -o "zhangxuefeng.%(ext)s" https://youtube.com/watch?v=qLkiaFXpcxw比如下载视频,命名为zhangxuefeng,%(ext)s是一个变量(占位符),会根据实际下载到的格式,自动把这个占位符替换成正确的后缀。如果下的是 mp4,文件名就是 zhangxuefeng.mp4;如果下的是 webm,就是 zhangxuefeng.webm。
这里记录下,用ipv6only的vps(境内)通过 SSH 隧道地址实现yt-dlp下载,不想每次都加一堆命令,把他写入yt-dlp配置文件
yt-dlp 自动、永久地使用那个加密的 SSH 隧道(1080 端口),这样就不用每次在命令后面手动打 --proxy 参数了。
你可以通过修改 yt-dlp 的配置文件来实现。请在 IPv6-only VPS 上按以下步骤操作:
创建配置目录(如果还没创建)
mkdir -p ~/.config/yt-dlp写入永久代理变量
执行以下命令,将 SSH 隧道地址和我们之前调优的“长文件名截断”规则一起写入:cat <<EOF > ~/.config/yt-dlp/config # 1. 自动使用本地 SSH 隧道 (SOCKS5) --proxy "socks5://127.0.0.1:1080" # 2. 自动解决文件名过长报错 (截断前50字符) -o "%(title).50s [%(id)s].%(ext)s" # 3. 优先下载高清格式并合并 (需要已安装 ffmpeg) --merge-output-format mp4 EOF直接用yt-dlp https://xxxxxx下载
评论区: