随着越来越多的视频网站不再提供下载选项,想来不少人应该都有下载在线视频的需求,这里我想推荐一款开源免费但功能强大的视频下载工具——youtube-dl。少数派此前介绍了 IINA 这款播放器,IINA 的在线视频功能就是通过 youtube-dl 实现的。youtube-dl 虽然名字带有 Youtube,但实际上可以支持许多视频网站,Vimeo、Tumblr 乃至优酷、腾讯视频或是哔哩哔哩上面的视频都可以通过它下载。youtube-dl 同时提供了丰富的选项,可以选择下载的画质、格式或者下载字幕等等。但作为一款命令行软件,没有 GUI 可能让不少人对其望而却步或是无从入手,希望这篇文章能够帮助大家熟悉并上手这款软件。
这篇文章将会介绍如何安装 youtube-dl、如何实现最基本的视频下载、如何进行文件下载位置等一系列设置以及如何通过 Automator 简化下载过程。
如何安装 youtube-dl在安装 youtube-dl 之前,我想先介绍一下 OS X 下的一款著名包管理应用 —— Homebrew。它就类似命令行软件的 App Store,通过这款软件可以很方便地实现命令行软件的安装、管理与更新。 Homebrew 的安装也很方便,只需要打开终端,将下面的命令复制进去并回车,就可以等待 Homebrew 自行安装完毕了。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装 Homebrew 后,我们即可进行 youtube-dl 的安装了,仍然只需要将下面的命令复制进终端,youtube-dl 就会自动安装完毕。
brew install youtube-dl
安装好 youtube-dl 后,我们就可以进行在线视频的下载了,不过有部分视频网站比如 Youtube,高画质的视频和音频是分开的,只使用 youtube-dl 的话会将视频和音频分别下载成两个文件。好在 youtube-dl 也提供了解决方案,我们只需要下载另一个命令行工具 —— ffmpeg 即可,在下载后 youtube-dl 会自动调用 ffmpeg 将视频与音频合成一个文件。ffmpeg 的安装仍然通过 Homebrew 进行,只需要执行下面这个命令即可:
brew install ffmpeg
到此为止,youtube-dl 的安装过程已经完全结束,只需要这样短短三步,不过在开始下载之前,我想首先介绍一下如何对 youtube-dl 进行更新。因为部分视频网站会不定时进行调整,避免被下载视频,因此有时我们需要更新 youtube-dl 以便继续进行视频下载。更新 youtube-dl 我想介绍两种方法,一种是单独更新 youtube-dl,另一种是直接更新 Homebrew 管理的所有软件。单独更新 youtube-dl 的命令如下:
brew upgrade youtube-dl
而假如不指定 youtube-dl,即可更新 Homebrew 管理的所有软件了,命令如下:
brew upgrade
如何下载在线视频通过 youtube-dl 下载视频的过程也如安装一样简单,首先我们复制下来视频的网址,然后在前面加上 youtube-dl输入终端即可等待下载完成,需要注意的是,视频地址前需要插入一个空格。下载过程中 youtube-dl 会显示下载进度和速度,下载和合并视频文件完成后只需要回车确认就可以完成整个过程了。youtube-dl 会自动下载最高画质的视频,默认的下载文件格式是 mp4,而下载地址是我们开启终端的位置,假如打开终端后我们没有进行其他操作,那么这个位置就是我们用户的主文件夹。另外,对于 Youtube 一类的网站,因为高清视频和音频是分开的,所以 youtube-dl 会调用 ffmpeg 合并两个文件,这个过程默认的输出文件是 mkv 格式。
上面这样说可能不够直观,那么接下来我们通过一个例子来看一遍下载的过程。首先复制下来视频地址,然后在前面加上 youtube-dl输入终端,接下来我们就会看到 youtube-dl 显示出了下载进度。
复制视频地址将命令输入终端显示下载进度当下载和合并视频完成后会等待回车确认,这个地方确实有一点不够人性化,因为没有任何直观的提示,再次回车后就会显示下载完成了,同时我们可以在用户的主文件夹内找到下载的视频。等待回车确认下载完成在主文件夹内可以找到视频文件只需要这样简单地复制地址并加几个字母输入终端,再回车两下就可以完成视频的下载了。不过 youtube-dl 的功能并不仅限于此,它还可以用于下载多个视频或者下载整个视频列表。下载多个文件只需要在第一个视频地址后面插入空格,然后加上第二个视频的地址即可。将多个视频地址输入终端下载完成后的多个视频文件