环境
- windows 10 64bit
- youtube-dl
简介
youtube-dl
是一个命令行工具,专门用来下载 youtube
视频,同时也支持其它一些主流网站,如 tiktok.com
、ted.com
、nba.com
等等,大家可以到链接 https://github.com/ytdl-org/youtube-dl/tree/master/youtube_dl/extractor 去看看具体支持的站点,每个文件对应一个站点支持,文件名即是站点名。
youtube-dl
的运行需要 python
的环境,在 windows
、linux
和 macos
上都可以运行,代码开源。
youtube-dl
官网地址: https://youtube-dl.org/
youtbue-dl
源码托管地址: https://github.com/ytdl-org/youtube-dl
安装youtube-dl
如果是 windows
系统的话,直接下载 exe
文件,地址是: https://yt-dl.org/latest/youtube-dl.exe,可以保存在相应目录(除了 C:\Windows\System32
),然后将此目录设置到系统环境变量 PATH
中
如果是 linux
或者 macos
系统
# 使用curl下载
sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl
# 使用wget
sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl
如果你的系统中已有 python
的开发环境,那可以这样安装,适用于所有平台
pip install --upgrade youtube-dl
youtube-dl基本使用
这里以下载本人 youtube
频道上的一个视频为例,地址是: https://www.youtube.com/watch?v=e6MbVG8GO6s&lc=Ugydt8F8ECTvTxQEByx4AaABAg, 最简单也是最基础的下载命令是
youtube-dl "https://www.youtube.com/watch?v=e6MbVG8GO6s&lc=Ugydt8F8ECTvTxQEByx4AaABAg"
这里需要注意,要在下载链接加上双引号,下载 url
中经常会包含各种特殊字符,这样做是为了解析时不会出错。下载完成后,本地文件名与站点上的文件名一致
使用 ffmpeg
工具查看视频信息
可以发现,视频分辨率是1920×1080,也就是之前上传的分辨率,封装格式刷 mkv
,编码格式已经是 youtube
转码后的格式了
youtube-dl进阶
下载后重命名
使用参数 -o
youtube-dl "https://www.youtube.com/watch?v=e6MbVG8GO6s&lc=Ugydt8F8ECTvTxQEByx4AaABAg" -o output
这里没办法指定封装格式。如果是 -o output.mp4
,最后下载的文件就是 output.mp4.mkv
批量下载
如果下载链接是一个播放列表,那整个播放列表里的视频都会被下载,如果只想下载播放列表中的几个连续视频,可以指定开始和结束的序列号
youtube-dl.exe --playlist-start 31 --playlist-end 36 "https://www.youtube.com/watch?v=Ye018rCVvOo&list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J"
如果是独立的下载链接,可以按照如下方法进行。
创建一个 txt
文本文件( file.txt
),将视频的地址按照一行一个的方式保存起来,如下
然后执行命令
youtube-dl -a file.txt
下载指定分辨率
首先通过命令查看视频的信息,只查看,不下载
youtube-dl -F "https://www.youtube.com/watch?v=e6MbVG8GO6s&lc=Ugydt8F8ECTvTxQEByx4AaABAg"
可以看到最左边的一列是一个数字,代表着不同格式,而且,注意看,youtube
将音频和视频进行了分离。所以,
youtube-dl -f 134 "https://www.youtube.com/watch?v=e6MbVG8GO6s&lc=Ugydt8F8ECTvTxQEByx4AaABAg"
下载后的视频只有视频,而没有音频
如果想下载完整的话,就需要这样,这里需要用到 ffmpeg
的工具,有了它,youtube-dl
就会自动将音视频进行合并
(base) PS C:\Users\xugaoxiang\Desktop> youtube-dl -f 134+139 "https://www.youtube.com/watch?v=e6MbVG8GO6s&lc=Ugydt8F8ECTvTxQEByx4AaABAg"
[youtube] e6MbVG8GO6s: Downloading webpage
[youtube] e6MbVG8GO6s: Downloading MPD manifest
Destination: 在google colab上进行yolov5模型训练,免费使用GPU资源-e6MbVG8GO6s.f134.mp4
100% of 7.78MiB in 00:06
[dashsegments] Total fragments: 118
Destination: 在google colab上进行yolov5模型训练,免费使用GPU资源-e6MbVG8GO6s.f139.m4a
100% of 6.74MiB in 03:09
[ffmpeg] Merging formats into "在google colab上进行yolov5模型训练,免费使用GPU资源-e6MbVG8GO6s.mp4"
Deleting original file 在google colab上进行yolov5模型训练,免费使用GPU资源-e6MbVG8GO6s.f134.mp4 (pass -k to keep)
Deleting original file 在google colab上进行yolov5模型训练,免费使用GPU资源-e6MbVG8GO6s.f139.m4a (pass -k to keep)
-f
除了可以使用 id
,还可以使用如下参数,含义很清楚,就不用解释了
-f best
-f worst
-f bestvideo
-f worstvideo
-f bestaudio
-f worstaudio
使用代理
如果你的网络不是全局的话,那就需要使用代理了,命令如下
youtube-dl --proxy 127.0.0.1:1089 "https://www.youtube.com/watch?v=e6MbVG8GO6s&lc=Ugydt8F8ECTvTxQEByx4AaABAg"