返回
Featured image of post 从Youtube下载音频和视频的方法

从Youtube下载音频和视频的方法

Youtube是Google的视频网站,也是目前全球用户量最大的视频网站之一,在youtube上观看视频有很多种方式,比如网页版的,app版的,而且在安卓和iOS平台上都非常流畅,不过有些时候我们希望下载下来观看:

  • 视频下载到本地,在断网时也可以看了
  • 视频下载到本地,可以跳过烦人的广告

那么有什么方法下载youtube的视频到本地呢,今天大可就来介绍给你。

本期视频教程链接 https://youtu.be/SMTnZjAYgL4,欢迎观看+订阅+评论

Youtube-dl

是的,国外已经有高人做了这款下载软件,这款软件背后有一个非常曲折但结局算不错的故事,有兴趣的朋友可以看 这里

简单的说,它的用途就是从youtube下载视频,不过它非常强大,下载视频是最基本的,包括批量下载,除此以外,还可以只下载音频(喜欢听歌的朋友有福了),可以指定音频/视频的格式,比如视频mp4/mkv/mov等等,音频mp3/aac等等,还可以下载字幕文件、指定字幕文件的语言,可以指定视频的分辨率,可以指定代理,指定所在国家,指定登陆用户名,等等等等,现在让大可带朋友们来使用一下

在哪里下载

从Google搜索Youtube-dl也可以的,或者直接点 这里,这是它的官网 https://youtube-dl.org/,看上去比较简陋。

如何安装

根据不同的操作系统,作者也给出了不同的安装方法

Windows系统

下载对应的 exe文件,不过同时需要安装 Microsoft Visual C++ 2010 Service Pack 1 Redistributable Package (x86) ,并且无需单独安装Python

MacOS 或 Linux系统

这两个系统就比较统一了 首先,确保python已经安装,版本3.2以上。关于Python的安装可以参考(https://docs.python.org/zh-cn/3.7/using/index.html),然后确认下版本

> python --version

会显示如下(我的版本是3.7.7)

Python 3.7.7

现在来安装youtube-dl,注意命令行中大写的字母O不是数字0

> sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
> sudo chmod a+rx /usr/local/bin/youtube-dl

这样就安装完了,来试一下运行

> youtube-dl -v

你会看到有类似的输出:

[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2021.06.06
[debug] Python version 3.7.7 (CPython) - Darwin-20.5.0-x86_64-i386-64bit
[debug] exe versions: ffmpeg 4.4, ffprobe 4.4
[debug] Proxy map: {}
Usage: youtube-dl [OPTIONS] URL [URL...]

youtube-dl: error: You must provide at least one URL.
Type youtube-dl --help to see a list of all options.

OK,可以了!

开始下载

下载视频

启动一个命令行终端,在MaxOS里是Terminal.app, 在Windows系统里Win+R,cmd 我们先来打开一个视频,比如 这个视频,然后在视频窗口的地址栏复制视频的url地址,在命令行里执行:

> youtube-dl https://www.youtube.com/watch?v=czofQZd5yh8

接下来你会看到一个文字模式的下载界面

等下载完成后,可以看到新下载的文件MacOS最常用的六组快捷方式-czofQZd5yh8.mkv,文件名默认是以视频名称+视频id为格式的,这里我们没有指定视频输出格式,所以默认为mkv格式,我们可以添加一个参数来修改视频格式

# 指定mp4格式:
youtube-dl https://www.youtube.com/watch?v=czofQZd5yh8 --merge-output-format mp4

# 指定mkv格式:
youtube-dl https://www.youtube.com/watch?v=czofQZd5yh8 --merge-output-format mkv

# 指定webm格式:
youtube-dl https://www.youtube.com/watch?v=czofQZd5yh8 --merge-output-format webm

# 指定flv格式:
youtube-dl https://www.youtube.com/watch?v=czofQZd5yh8 --merge-output-format flv

# 指定ogg格式:
youtube-dl https://www.youtube.com/watch?v=czofQZd5yh8 --merge-output-format ogg

下载音频

有时候我们只想听声音,比如视频里非常好听的背景音乐,那么可以用以下命令来下载

# 从视频中抽取音频
youtube-dl https://www.youtube.com/watch?v=czofQZd5yh8 -x
# 默认会生成一个音频文件 `MacOS最常用的六组快捷方式-czofQZd5yh8.m4a`,格式是m4a

# 我们可以指定其他格式,如mp3,aac,wav等等
youtube-dl https://www.youtube.com/watch?v=czofQZd5yh8 -x --audio-format mp3

高级玩法

上面只介绍了youtube-dl最最基本的功能,还有很多高级玩法,可以查看自带的帮助来使用

下载字幕

有的视频本身自带字幕文件,有的视频是通过Youtube的Speed-to-Text自动生成的字幕,都可以下载,只要指定命令参数就可以

参数格式 参数说明
--write-sub 保存字幕文件
--write-auto-sub 保存Youtube自动生成的字幕
--all-subs 保存所有的字幕,如果你不知道选哪个字幕,就下载全部字幕
--list-subs 先看看该视频包含哪些字幕
--sub-format FORMAT 字幕文件的格式,一般用 srt
--sub-lang LANGS 指定字幕的语言,LANGS是语言码,可以通过–list-subs来查看

整个播放列表下载

一个连续剧,一个视频系列,通常会被放在一个播放列表里,当用户在线观看时,会一集一集连续播放,我们可以一次性下载整个播放列表里的视频,也是用参数指定:

参数格式 参数说明
--playlist-start NUMBER 指定开始的那个视频需要,默认是1,通常这个参数可以不设置
--playlist-end NUMBER 指定结尾的那个视频编号,默认是最后一个
--playlist-items 指定要下载的视频编号,比如-playlist-items 1,2,5,8 下载本播放列表中序号为1,2,5,8的视频
--max-downloads NUMBER 下载多少集后自动退出
--min-filesize SIZE 被下载的视频必须大于SIZE,SIZE可以用50m或者100k这种友好的可读性描述
--max-filesize SIZE 被下载的视频必须小于SIZE,同上
--min-views COUNT 被下载的视频观看数必须大于COUNT,COUNT是一个正整数
--max-views COUNT 被下载的视频观看数必须小于COUNT,COUNT是一个正整数

网络代理

有些情况下用户无法直接访问Youtube视频,这时可以使用代理服务器

参数格式 参数说明
--proxy URL 可以指定HTTP/HTTPS/SOCKS代理,使用SOCK5代理是要指定协议,如socks5://127.0.0.1:1080/
--socket-timeout SECONDS 指定连接超时,单位是秒
--source-address IP 指定客户端都ip地址,比如本机地址
-4, –force-ipv4 强制ipv4
-6, –force-ipv6 强制ipv6

突破地理位置限制

有了代理服务器并不意味着所有视频都可以访问了,Youtube对有些视频进行了特殊的地址位置限制

参数格式 参数说明
--geo-verification-proxy URL 这个代理地址专门用来验证地理位置的,上面那个–proxy是用来下载视频的
--geo-bypass 忽略地理位置验证, 启动了该参数后有些视频将无法下载
--geo-bypass-country CODE 强制对某个国家的视频忽略地址位置验证,CODE是国家码,如us,au,hk,jp,sg等等

更多用法可以参考

> youtube-dl --help

好了,本次的介绍就到这里,有任何的反馈欢迎朋友们在博客或者youtube视频下方给我留言

最后更新于 2021-09-11 23:11 AEST
comments powered by Disqus
Built with Hugo + Theme Stack