命令行工具 youtube-dl
因为想在网上下载Youtube视频。就深入研究了一下可以使用的工具。最终发现还是命令行工具比较靠谱,功能丰富,参数配置灵活。
工具叫做 youtube-dl 来自 https://github.com/ytdl-org/youtube-dl
网站有源代码,和使用说明。软件参数极其丰富
youtube-dl 存在的问题
因为youtube-dl下载时,速度非常缓慢,一般只能到60KB/s。
所以有位大神fork了该项目并重新改进了一版。改名叫做yt-dlp。https://github.com/yt-dlp/yt-dlp
测试发现yt-dlp速度远高于youtube-dl。在我的机器上能达到1.38MB/s。
使用yt-dlp后速度大大提升。
更快速版本 yt-dlp
安装方法
工具提供了exe文件下载,windows用户直接下载yt-dlp.exe文件。
这里是GitHub下载地址 https://github.com/yt-dlp/yt-dlp/releases
使用方法
1 先罗列格式信息
一般情况下视频是有多种分辨率可以提供下载的。
例如:https://www.youtube.com/watch?v=U3wMDDdQQWk
从上图可以看到,Youtube中的视频是分不同视频分辨率和不同音频分辨率存储的。下面的命令是演示如何罗列视频的视频信息和音频信息。
## 罗列视频的 视频信息和音频信息,用参数--list-formats
## 使用代理服务,用参数 --proxy socks5://127.0.0.1:7890
yt-dlp.exe https://www.youtube.com/watch?v=U3wMDDdQQWk --proxy socks5://127.0.0.1:7890 --list-formats
下图是罗列出来的视频和音频信息。和上图相比,分辨率基本吻合。但是文件格式更丰富一些,能看到有mp4,webm,m4a等等各种格式。
其中第一列绿色的ID列,就是格式编码,一会下载的时候就是指定他来选择对应的格式。
例如:第四行 ID=599,audio only说明是一个音频格式文件。大小3.26MB。
再例如: ID=597,是个视频文件,分辨率255*144,大小2.45MB。
这里注意,视频597是没有声音的,他就是图像,必须和音频配套在一起才能算是一个完整的视频。
2 选择格式,下载文件
--我根据列表选择了 编号是597(格式mp4 分辨率256*144这个)的视频信息
--同时让工具帮我选择一个质量最好的音频信息bestaudio(就是编号251),
--所以命令就是 -f 597+bestaudio 注意是使用+号将两种格式链接在一起。
--同上,需要使用代理服务,所以指定了 --proxy socks5://127.0.0.1:7890
yt-dlp.exe https://www.youtube.com/watch?v=U3wMDDdQQWk --proxy socks5://127.0.0.1:7890 -f 597+bestaudio
最终系统提示下载过程。并将我的视频和音频合成了mkv文件,保存在当前目录下。
默认参数
该工具因为参数比较多,所以可以把常用参数放置在conf文件中。当工具执行时就会优先从conf文件中读取参数。具体我没有研究。大概介绍如下