鉴于 Youtube 将 1080P+ 画质的内容的音视频进行了分离。
之前的不少 Youtube 下载工具下载 1080P+ 画质都有一定程度的缺陷,现在 Youtube-dl 可以完美解决这个问题。
What is it?
来一段官网的介绍:
youtube-dl is a command-line program to download videos from YouTube.com and a few more sites. It requires the Python interpreter, version 2.6, 2.7, or 3.2+, and it is not platform specific. It should work in your Unix box, in Windows or in Mac OS X. It is released to the public domain, which means you can modify it, redistribute it or use it however you like. The project is currently being developed at GitHub.
翻译下来大概的意思:
Youtube-dl 是一个命令行程序,用于从 YouTube.com 和其他视频网站下载视频。其运行需要Python解释器,要求版本 2.6, 2.7 或 3.2+,并且它是全平台兼容的软件。
它可以在您的 Unix,Windows 或 Mac OS X 机器中运行。该项目已开源,这意味着您可以对其进行修改,重新分发或随意使用它。该项目目前正在 GitHub 上开发。
该工具支持断点续传,下载某个视频中途关闭后,下次下载同一个视频,进度会恢复。
文件下载位置保存在命令行的当前目录,要想切换保存位置,请使用 cd 命令切换到其他目录。
如果您电脑上已经安装了 Ffmpeg,youtube-dl 还会自动合并音视频。
安装
参考 https://www.runoob.com/python/python-install.html 安装 Python 3(Windows 系统记得勾选 Add Python 3.x to Path
以及安装 pip 选项)
前往 http://ffmpeg.org/download.html 下载安装 FFmpeg ,并将解压后的 bin 目录设置为环境变量。
使用 pip 安装 youtube-dl
pip install youtube-dl |
使用
设置代理
鉴于国内的万里长城问题,这个要拿来作为第一位开讲了。
可以直接设置本次命令行的代理:
Windows: set https_proxy=http://127.0.0.1:1080
Linux or Mac: export https_proxy=http://127.0.0.1:1080
** 如不想使用全局代理,可以在每次需要代理的时候,
在每次 youtube-dl 命令后附上 --proxy "https://127.0.0.1:1080"
如: youtube-dl -F [url] --proxy "https://127.0.0.1:1080"
列举视频所有格式
youtube-dl -F [url] |
或者
youtube-dl --list-formats [url] |
这是一个列清单参数,执行后并不会下载视频,但能知道这个目标视频都有哪些格式存在,下一步进行下载的格式选择。
举例:输入 youtube-dl -F https://www.youtube.com/watch?v=UyJ8Qbh_LH0
将出现以下回应
[youtube] UyJ8Qbh_LH0: Downloading webpage |
选取格式下载
可以选择单视频,单音频,也可以选择视频 + 音频 合并。
下载指定质量的视频和音频并自动合并:youtube-dl -f [format code] [url]
(请注意该 f 为小写)
通过上一步获取到了所有视频格式的清单,最左边一列就是编号对应着不同的格式.
由于 YouTube 的 1080p 及以上的分辨率都是音视频分离的,所以我们需要分别下载视频和音频,可以使用 247+251
(或 bestvideo+bestaudio
)这样的组合.
如果系统中安装了 FFmpeg 的话, youtube-dl 会自动合并下下好的视频和音频, 然后自动删除单独的音视频文件。
举例:
输入 youtube-dl -f 247+251 https://www.youtube.com/watch?v=UyJ8Qbh_LH0
或输入 youtube-dl -f bestvideo+bestaudio https://www.youtube.com/watch?v=UyJ8Qbh_LH0
将出现以下回应
[youtube] UyJ8Qbh_LH0: Downloading webpage |
其他命令
下载字幕
youtubd-dl --write-sub [url] //这样会下载一个vtt格式的英文字幕和mkv格式的1080p视频下来 |
更多命令参见项目 github 首页: https://github.com/rg3/youtube-dl
命令集合
只是简单下载视频的话,一直输入命令未免太过繁琐。附上可以免输入的批处理脚本和 shell 脚本。
(注:下载位置,代理等请自行核对修改)
windows 机器复制下方批处理脚本,以文本方式保存,修改后缀为 .bat
保存。
@echo off |
Linux or Mac 复制下方 shell 脚本,以文本方式保存,修改后缀为 .sh
保存。
|