此文章发布于32
个月前,部分信息可能已经过时
,请自行斟酌确认。
软件介绍
yt-dlp
是一个基于现在已经停止活动的 youtube-dl
的分叉项目。这个项目的主要重点是增加新的功能和补丁,同时也保持与原项目的更新。
简单点说这个工具用来下载 YouTube
视频。
下载地址
https://github.com/yt-dlp/yt-dlp
使用方法
- 下载后解压到任意目录;
- 为方便使用添加到环境变量;
- 使用
命令提示符/Powershell
执行命令下载。
命令语法
yt-dlp [OPTIONS] [--] URL [URL...]
常用参数
# 查看帮助
yt-dlp -h
# 查看版本
yt-dlp --version
# 设置代理并下载指定视频转换成 mp4 格式
yt-dlp --proxy http://127.0.0.1:52180 https://www.youtube.com/watch?v=sOMPsNxO4cI --merge-output-format mp4
-F:查看视频格式构成
-f:指定格式下载
下载图示
示例讲解
转自:https://zhuanlan.zhihu.com/p/431013905
查看指定视频的格式构成:yt-dlp -F --proxy socks5://127.0.0.1:1080 https://www.youtube.com/watch?v=rrQJvPaPbFM
yt-dlp -F --proxy socks5://127.0.0.1:8080 https://www.youtube.com/watch?v=rrQJvPaPbFM
[youtube] rrQJvPaPbFM: Downloading webpage
[youtube] rrQJvPaPbFM: Downloading android player API JSON
[info] Available formats for rrQJvPaPbFM:
ID EXT RESOLUTION FPS | FILESIZE TBR PROTO | VCODEC VBR ACODEC ABR ASR MORE INFO
--- ---- ---------- --- - --------- ----- ----- - ----------- ----- --------- ---- ------- -----------------
139 m4a audio only | 1.25MiB 48k https | mp4a.40.5 48k 22050Hz low, m4a_dash
249 webm audio only | 1.32MiB 51k https | opus 51k 48000Hz low, webm_dash
250 webm audio only | 1.76MiB 68k https | opus 68k 48000Hz low, webm_dash
140 m4a audio only | 3.32MiB 129k https | mp4a.40.2 129k 44100Hz medium, m4a_dash
251 webm audio only | 3.53MiB 137k https | opus 137k 48000Hz medium, webm_dash
17 3gp 176x144 6 | 1.98MiB 77k https | mp4v.20.3 77k mp4a.40.2 0k 22050Hz 144p
160 mp4 256x144 25 | 2.34MiB 91k https | avc1.4d400c 91k 144p, mp4_dash
278 webm 256x144 25 | 2.33MiB 90k https | vp9 90k 144p, webm_dash
133 mp4 426x240 25 | 5.24MiB 204k https | avc1.4d4015 204k 240p, mp4_dash
242 webm 426x240 25 | 4.03MiB 157k https | vp9 157k 240p, webm_dash
134 mp4 640x360 25 | 10.53MiB 410k https | avc1.4d401e 410k 360p, mp4_dash
18 mp4 640x360 25 | 12.97MiB 505k https | avc1.42001E 505k mp4a.40.2 0k 44100Hz 360p
243 webm 640x360 25 | 6.97MiB 271k https | vp9 271k 360p, webm_dash
135 mp4 854x480 25 | 20.45MiB 797k https | avc1.4d401e 797k 480p, mp4_dash
244 webm 854x480 25 | 12.25MiB 477k https | vp9 477k 480p, webm_dash
136 mp4 1280x720 25 | 39.90MiB 1555k https | avc1.64001f 1555k 720p, mp4_dash
22 mp4 1280x720 25 | 1684k https | avc1.64001F 1684k mp4a.40.2 0k 44100Hz 720p
247 webm 1280x720 25 | 24.14MiB 941k https | vp9 941k 720p, webm_dash
137 mp4 1920x1080 25 | 85.85MiB 3347k https | avc1.640028 3347k 1080p, mp4_dash
248 webm 1920x1080 25 | 43.23MiB 1685k https | vp9 1685k 1080p, webm_dash
从结果中可知最佳画质视频 ID
为 mp4
格式的 137
和 webm
格式的 248
(纯视频无音轨),最佳音轨 ID 为 m4a
格式的 140
和 webm
格式的 251
(纯音轨无视频)。如果你认为 720p
已经满足需求,则只下载 ID22
也可(已经包含视频和音轨)。这里我们先选择 mp4
的视频和 m4a
的音轨进行合并。
下载
命令:yt-dlp -f 137+140 --proxy socks5://127.0.0.1:8080 https://www.youtube.com/watch?v=rrQJvPaPbFM --merge-output-format mp4 --external-downloader aria2c --downloader-args aria2c:"-x 16 -k 1M"
解释:
yt-dlp -f [下载ID] [代理配置] [视频链接] [合并语句] [外部下载器选择] [下载器参数]
-f [id] #选择下载内容,注意和 -F 区分。例子中使用137+140,如果你只下载720p则填写22就好,后面的合并语句可不填写。
--proxy #代理配置 见前文
--merge-output-format [合并输出格式] #例子中选择mp4作为输出格式
--external-downloader [下载器名称] #下载器选择 例子中选择aria2c
--downloader-args [下载器名称]:"[下载器配置]" #下载器配置语句 例子中 x 16 代表16线程下载 -k 1M 代表块大小为1M 但youtube不支持分块故此句可忽略
下载完成后 ffmpeg
合并视频和音轨,输出至你的 cmd
的当前路径。