介绍youtube-dl 是一个命令行工具,对我所知的大部分视频网站有不错的支持,你可以选择下载视频,或是将视频流直接导出到自己想使用的播放器中,也可以以JSON的形式获取可下载资源的URL。使用方便、足够简洁,这是我在这里推荐的理由。

安装Youtube-dl工具

Youtube-dl 通过 PyPi 分发,如果你的系统安装有 pip3 pip ,请直接使用:

pip install --upgrade youtube_dl # 或pip3

如果你是 macOS 用户,也可以使用:

brew install youtube-dl

或者curl命令

curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl

或者curl命令

wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl

curl命令和curl命令下载后需要指定其执行权限:

chmod a+rx /usr/local/bin/youtube-dl

我还是推荐pip安装,看你喜欢

利用 Youtube-dl 下载

普通下载

通过 Youtube-dl下载视频十分简洁,例如你需要下载http://www.bilibili.com/video/av11728123/ 只需直接使用 URL 即可::

youtube-dl 'http://www.bilibili.com/video/av11728123/'

你会得到这样的结果:

[BiliBili] 11728123: Downloading webpage
[BiliBili] 11728123: Downloading video info page
[download] Destination: 【全明星freestyle】音浪-11728123.mp4
[download] 100% of 9.07MiB in 00:01

如果你不进行任何特殊的指定,它会分析网页、自动选择默认画质并下载至Destination显示的文件中。

高阶下载

1.输出文件的名字,注意后缀:

# 1
youtube-dl -o 'youname.mp4' http://www.bilibili.com/video/av11728123/
# 2
youtube-dl 'http://www.bilibili.com/video/av11728123/' -o 'youname.mp4'

你可以利用 %(title)s等参数(参考 Python 的字符串形式)将文件命名,例如:

youtube-dl 'http://www.bilibili.com/video/av11728123/' -o '%(title)s.%(ext)s'
# 下载至文件:【全明星freestyle】音浪.mp4

当然,你还可以在下载视频时附加更多详细信息,可用的参数就有:标题上传者名称(频道名称)视频上传日期等:

youtube-dl -o '%(title)s by %(uploader)s on %(upload_date)s in %(playlist)s.%(ext)s' http://www.bilibili.com/video/av11728123/

2.下载多个视频
有时,我们需要一次从 Youtube 上下载多个不同的视频,此时我们只需用 空格 将多个 URL 分隔开即可:

youtube-dl <url1> <url2>

或者,您可以将要下载视频的 URL 全部放在文本文件中,并将其作为参数传递给 Youtube-dl 也行:

youtube-dl -a url.txt

3.使用代理下载
youtube-dl 提供了使用代理的参数,你可以简单地将自己代理的地址填入:


youtube-dl --proxy 127.0.0.1:1087 'https://www.youtube.com/watch\?v\=_fc_TLg3eQ4'
# 成功通过ss在国内下载某不存在网站的视频

如果你不清楚如何使用自己的代理网址,请询问你的代理提供商。

4.只下载(视频中的)音频
Youtube-dl 允许我们仅从 Youtube 视频下载其音频,例如:

youtube-dl -x https://www.youtube.com/watch?v=iJvr0VPsn-s

默认情况下,Youtube-dl 将以 Ogg(opus)格式保存音频,如果想以任何其他格式下载音频,例如 mp3 请运行:

youtube-dl -x --audio-format mp3 https://www.youtube.com/watch?v=iJvr0VPsn-s

5.下载带有描述、元数据、注释、字幕和缩略图的视频
要下载视频及其他详细信息,如:说明、元数据、注释、字幕和缩略图等,请使用以下命令:

youtube-dl --write-description --write-info-json --write-annotations --write-sub --write-thumbnail https://www.youtube.com/watch?v=iJvr0VPsn-s

6.列出所有可用的音/视频格式
Youtube 网站上的视频和音频会被自动转码成多种音/视频格式,要查看某个视频或播放列表所有可下载的音/视频格式,请使用以下命令:

youtube-dl --list-formats https://www.youtube.com/watch?v=iJvr0VPsn-s

或者笔者常用的简写方式:

youtube-dl -F https://www.youtube.com/watch?v=iJvr0VPsn-s

Youtube-dl 列出了给定视频的所有可用格式,从左到右分别为:format code(视频格式代码)、extension(扩展名)、resolution(分辨率)和 note(注释)。当您想要以特定质量或格式下载视频时,先查看一下有哪些可用,会非常便利。

7.以某种质量和/或格式下载视频
默认情况下,Youtube-dl 将自主选择最佳质量的视频下载。 但是,也可以以特定的质量或格式来下载视频或播放列表。

  • best 选择最佳质量的音/视频文件
  • worst 选择质量最差的格式(视频和音频)
  • bestvideo 选择最佳质量的仅视频格式(例如DASH视频),可能无法使用。
  • worstvideo 选择质量最差的纯视频格式,可能无法使用。
  • bestaudio 选择最优质的音频格式,可能无法使用。
  • worstaudio 选择质量最差的音频格式,可能无法使用。

例如,如果要自动选择并下载最佳质量格式(音频和视频),只需使用以下命令:

youtube-dl -f best https://www.youtube.com/watch?v=iJvr0VPsn-s

同样,要以最佳质量仅下载音频,可执行:

youtube-dl -f bestaudio https://www.youtube.com/watch?v=iJvr0VPsn-s

您还可以组合使用以下不同的格式选项:

youtube-dl -f bestvideo+bestaudio https://www.youtube.com/watch?v=iJvr0VPsn-s

8.通过文件扩展名下载音/视频
以您的首选格式下载视频,例如 MP4,只需执行:

youtube-dl --format mp4 https://www.youtube.com/watch?v=iJvr0VPsn-s

或者

youtube-dl -f mp4 https://www.youtube.com/watch?v=iJvr0VPsn-s

某些视频可能无法以您的首选格式提供。 在这种情况下,Youtube-dl 将下载其他最佳可用格式。 例如,此命令将下载最佳质量的 MP4格式文件。 如果 MP4 格式不可用,则它将下载其他最佳可用格式。

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' https://www.youtube.com/watch?v=iJvr0VPsn-s

9.限制下载视频的大小
从 Youtube 播放列表下载多个视频时,您可能只想下载特定大小的视频。例如,此命令不会下载任何小于指定大小的视频,例如 100MB

youtube-dl --min-filesize 100M <playlist_url>

如果您不想下载大于给定大小的视频,可以这样:

youtube-dl --max-filesize 100M <playlist_url>

我们还可以用组合格式,选择运算符来下载特定大小的视频。例如,以下命令将下载最佳视频格式但不大于 100MB 的视频:

youtube-dl -f 'best[filesize<100M]' https://www.youtube.com/watch?v=iJvr0VPsn-s

10.按日期下载视频
Youtube-dl 允许我们按照上传日期来筛选和下载视频或播放列表,例如要下载 2019 年 8 月 1 日上传的视频,可以使用:

youtube-dl --date 20190801 <URL>

下载在特定日期或之前上传的视频:

youtube-dl --datebefore 20190801 <URL>

下载在特定日期或之后上传的视频:

youtube-dl --dateafter 20190101 <URL>

仅下载过去 6 个月内上传的视频:

youtube-dl --dateafter now-6months <URL>

下载特定时间段内(例如 2018 年 1 月 1 日至 2019 年 1 月 1 日)上传的视频:

youtube-dl --dateafter 20180101 --datebefore 20190101 <URL>

使用帮助

通过上述示例的介绍,相信已经能够满足绝大多数用户对 Youtube 视频下载和 youtube-dl 的使用需求了。有关更多详细信息,请参阅 Youtube-dl 帮助

youtube-dl --help


【腾讯云】星星海SA2云服务器618钜惠,1核2G 首年95元【点击查看】。


文章: 《youtube-dl:一个命令行视频下载利器》
联系方式:
文章链接:https://wxiou.cn/index.php/archives/30/
除特别注明外,文章均为Literature原创,转载时请注明本文出处及文章链接
Last modification:July 24th, 2020 at 05:42 pm
如果觉得我的文章对你有用,请随意赞赏