前言

下面介绍一种Windows平台,下载youtube视频的工具和方法,做个记录。

安装python

官方地址:https://www.python.org/

使用youtube-dl下载youtube视频
首页
使用youtube-dl下载youtube视频
点击下载按钮
使用youtube-dl下载youtube视频
安装
使用youtube-dl下载youtube视频
按Win+R键打开运行,输入cmd,再输入python并回车执行,如果出现如上界面,则代表安装成功

安装youtube-dl

1
2
pip install youtube-dl //直接安装youtube-dl
pip install --upgrade youtube-dl //安装youtube-dl并更新
安装完之后,输入youtube-dl,如果出现下面的提示,则表明youtube-dl已经安装好啦
使用youtube-dl下载youtube视频

安装ffmpeg

FFmpeg主要用来合并视频分段以及对视频重新编码/封装,与youtube-dl配合使用;不是必须的,但建议安装。

官网地址: https://ffmpeg.org/download.html

官方提供了两个下载地址,分别是www.gyan.dev和github, 这里选www.gyan.dev页面下载。
使用youtube-dl下载youtube视频

下载之后解压出来,将会看到这么一堆文件夹
使用youtube-dl下载youtube视频
电脑 -> 属性 -> 高级系统设置
使用youtube-dl下载youtube视频
点击环境变量
使用youtube-dl下载youtube视频
找到path配置项
使用youtube-dl下载youtube视频
点击新建,把ffmpeg解压后的bin目录加入进去
使用youtube-dl下载youtube视频

打开Win+R,输入cmd,回车,输入以下命令:

1
ffmpeg -version

如果出现如下图所示的版本号信息,则表明FFmpeg安装成功了,你可以在命令提示行中任意文件夹下运行FFmpeg。
使用youtube-dl下载youtube视频

开启系统代理

如果客户端代理软件没有代理全局流量,则需在下载命令前加入代理地址,如果设置了全局代理,则不需要增加代理配置项。

1
2
3
4
5
# 本地启动stunnel加密通道,监听1080端口,但没有设置全局代理的情况
youtube-dl.exe --proxy socks5://127.0.0.1:1080 -F https://www.youtube.com/watch?v=Kn2FRWKqMT8

# 本地启动clash,并打开全局代理
youtube-dl.exe -F https://www.youtube.com/watch?v=Kn2FRWKqMT8

下载youtube视频

  • 在保存了youtube-dl.exe命令的目录内,启动命令行。

  • 查看视频所有类型,只看不下载

1
2
3
youtube-dl -F [url]
或者
youtube-dl --list-formats [url]

这是一个列清单参数,执行后并不会下载视频,但能知道这个目标视频都有哪些格式存在,这样就可以有选择的下载啦!
使用youtube-dl下载youtube视频

  • 下载指定质量的视频和音频并自动合并
1
youtube-dl -f [format code] [url]

通过上一步获取到了所有视频格式的清单,最左边一列就是编号对应着不同的格式.
由于YouTube的1080p及以上的分辨率都是音视频分离的,所以我们需要分别下载视频和音频,可以使用137+251这样的组合。
如果系统中安装了ffmpeg的话, youtube-dl 会自动合并下载好的视频和音频, 然后自动删除单独的音视频文件。

1
.\youtube-dl.exe -f 137+251 https://www.youtube.com/watch?v=Kn2FRWKqMT8
使用youtube-dl下载youtube视频

下载完成后,可以在当前目录中,看到完整视频
使用youtube-dl下载youtube视频

  • 下载字幕
    youtube-dl –write-sub [url] //这样会下载一个vtt格式的英文字幕和mkv格式的1080p视频下来
1
2
3
4
5
youtube-dl --write-sub --skip-download [url] //下载单独的vtt字幕文件,而不会下载视频

youtube-dl --write-sub --all-subs [url] //下载所有语言的字幕(如果有的话)

youtube-dl --write-auto-sub [url] //下载自动生成的字幕(YouTube only)
  • 下载视频列表
    youtube-dl -f [format code] [palylist_url] //这种方式可以下载制定清晰度的mp4视频
1
2
3
4
5
youtube-dl [playlist_url] //下载视频列表,这种方式下载的视频可能是mkv格式或者webm格式

youtube-dl -cit [playlist_url] //下载视频列表,这种方式下载的视频可能是mkv格式或者webm格式

youtube-dl --yes-playlist [url] //当链接为视频列表,则下载该列表视频,跟上面的一样,可能是mkv或者webm格式
  • 下载Vimeo视频

Vimeo的视频下载起来比较方便,因为没有分离,可以直接下载1080p带音频的视频
命令与下载YouTube的基本一致;

youtube-dl支持的网站很多,大家可以从作者整理的这个列表里查看支持的网站(不过由于有的网站接口算法升级,可能当初支持的网站现在不能很好的支持了),如果您要下载的视频网站现在不能用youtube-dl下载的,不妨试试另外一个同样基于Python开发的下载工具You-Get~

youtube-dl官网:https://yt-dl.org/
youtube-dl支持的下载网站:https://ytdl-org.github.io/youtube-dl/supportedsites.html
GitHub项目:https://github.com/rg3/youtube-dl/

本文参考: https://www.jianshu.com/p/6bae57859325