通过 python 和 youtube-dl.exe 批量下载 youtube 视频

Windows 版

先下载安装python,并正确设置环境变量,一般情况下,安装的时候,勾选上 add python to path 即可。

下载python  https://www.python.org/downloads/

打开CMD

依次输入以下命令

python -m pip install --upgrade pip
pip install youtube-dl
pip install --upgrade youtube-dl

安装完成后,输入 youtube-dl 可以看一下是否正常安装

 

安装ffmpeg

打开这里,根据系统,手动下载安装  https://ffmpeg.zeranoe.com/builds/

解压出来,比如我下载的时候是  ffmpeg-20200422-2e38c63-win64-static ,打开100多兆
重命名文件夹为 ffmpeg ,移动到C盘根目录

给ffmpeg添加一个环境变量

此电脑 - 属性 - 高级系统设置 - 高级 - 最下面的环境变量

下面的系统变量 - 下滑,找到path选项,点击编辑

在编辑环境变量中,点击新建,输入以下内容,最后确定保存

C:\ffmpeg\bin

关掉CMD,重新打开CMD,输入以下内容,看一下ffmpeg是否正确安装

ffmpeg -version

出现了一大堆内容后,表示正确安装。

开始下载前某个软件要设置为全局代理,这个不多说。

PAC模式需要每个都添加这个命令

  --proxy "https://127.0.0.1:1080"

或者

  --proxy 127.0.0.1:1080

 

剩下的就是几个Youtubedl 的命令了

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

youtube-dl -F [url]

这是一个列清单参数,执行后并不会下载视频,但能知道这个目标视频都有哪些格式存在

youtube-dl --list-formats [url]

下载指定质量的视频和音频并自动合并

youtube-dl -f [format code] [url]

 

通过上一步获取到了所有视频格式的清单,最左边一列就是编号对应着不同的格式.
由于YouTube的1080p及以上的分辨率都是音视频分离的,所以我们需要分别下载视频和音频,可以使用137+140这样的组合.

youtube-dl -f 137+140 [url]

 

好像1080P分辨率的视频基本都会选 137+140 ,一个是1080P的mp4视频,一个是m4a的音频,下载最后合并

比如这样,下载单个高清视频

youtube-dl -f 137+140 https://www.youtube.com/watch?v=FsjnZq1cn0I

 

如果系统中安装了ffmpeg的话, youtube-dl 会自动合并下下好的视频和音频, 然后自动删除单独的音视频文件。

如果视频没有1080P,只有720P的版本,720P一般都是包含音频的,一般情况下号码是22,直接下载即可,比如这样

youtube-dl -f 22 https://www.youtube.com/watch?v=GAZ33sFnCSQ

 

下载字幕的代码

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 --format "bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio/best" --merge-output-format mp4 视频列表网址

 

最后cmd界面这样表示正在下载了

 

如果提示 HTTP Error 403: Forbidden 错误,运行一下下面的代码

youtube-dl --rm-cache-dir

 

youtube-dl 的github https://github.com/ytdl-org/youtube-dl

思羽布丁的黑苹果动力QQ群:15971419
思羽布丁 » 通过 python 和 youtube-dl.exe 批量下载 youtube 视频