手把手教你用youtube-dl下载YOUTUBE视频
前言
最近寒假了,在家给孩子找点英语的视频,学校教的大多是 Super Simple Songs
的内容,就想着把视频下载下来放到ipad里面让他平时在家自己看看。
注意:可以与下一篇文章 yt-dlp
一起阅读。
方法
在网上Google了一番,这边介绍2种我自己试过的方法:
第一种:使用在线下载平台
搜索 Youtube Downloader Online
这类的有很多类似网站,这边推荐一个 Youtube Video Downloader
第二种:使用本地工具youtube-dl
这边推荐 youtube-dl
,这个方法的前提是你有一个能上youtube的网络环境,以及Ubuntu操作环境,其他操作环境,可以去官网或者Github找相对应的文档。
官网:http://ytdl-org.github.io/youtube-dl/
Github:https://github.com/ytdl-org/youtube-dl
环境配置
Ubuntu直接使用以下命令安排 youtube-dl
即可。
1 | sudo apt install youtube-dl ffmpeg |
操作步骤
获取目标地址音视频列表
1 | youtube-dl -F [url] |
例如:
1 | youtube-dl -F https://www.youtube.com/watch?v=c3v0rJqyCTM |
返回结果如下:
第一列是格式的代号,第二列是文件格式,第三列是音频和视频分辨率等,第四列是视频/音频编码格式及文件大小等详情。
然后我们使用youtube-dl -F
下载选中的格式的代号,例如
1 | youtube-dl -F 249 https://www.youtube.com/watch?v=c3v0rJqyCTM //要下载播放列表也是同样,会自动下载列表中所有视频 |
这样我们就可以直接下载音视频了,但是下载下来的为生肉,也就是没有字幕。
下载字幕
youtube-dl
是可以下载字幕的,命令为:
1 | $ youtube-dl -h |
可以看到,youtube-dl
是支持字幕下载的,其中:
- write-sub 下载up主自己上传的字幕(非youtube自动生成)
- write-auto-sub 下载youtube自动生成的字幕
- all-subs 下载所有字幕(有点夸张,可能用于采集吧)
- list-subs 列出所有可以下载的字幕,包括语言以及格式
- sub-format FORMAT 选择下载的字幕格式,如果没有你选定的格式,youtube会选择另外一个格式下载
- sub-lang LANGS 选择下载字幕的语言
所以我们可以看见,本身youtube-dl
的字幕下载功能就很强大。
只下载字幕的命令为:
1 | youtube-dl --write-sub --skip-download [url] //下载单独的 vtt 字幕文件,而不下载视频 |
下载并同时嵌入字幕
当然也可以一步到位,直接使用--write-sub
下载,并使用--embed-subs
嵌入:
1 | youtube-dl --write-sub --embed-subs --sub-lang en_US,en-US,en https://www.youtube.com/watch?v=c3v0rJqyCTM |
下载视频列表中的视频
使用参数 -cit [list url]
,如下:
1 | youtube-dl -cit https://www.youtube.com/playlist?list=PLdkj6XH8GYPQW9uX_3JFR-2bFKz3VIjz9 |
其中PLdkj6XH8GYPQW9uX_3JFR-2bFKz3VIjz9
便是视频列表的代码。
一般在YouTube中打开一个视频列表,网页会播放其默认index的视频,网址类似这样:
https://www.youtube.com/playlist?list=PLdkj6XH8GYPQW9uX_3JFR-2bFKz3VIjz9
其中?list=
后面的PLdkj6XH8GYPQW9uX_3JFR-2bFKz3VIjz9
即为视频列表代码。
如果想要下载的是正在更新的列表,可以使用--playlist-start
--playlist-end
参数指定开头和结尾,例如:
1 | youtube-dl -f 299+140 -cit --playlist-start 3 https://www.youtube.com/playlist?list=PLdkj6XH8GYPQW9uX_3JFR-2bFKz3VIjz9 |
总结
如果你是个懒人,那么使用下面这条命令就足够了。
自动合并视频以及音频:
1 | youtube-dl --write-sub --embed-subs --sub-lang en,zh-Hans https://www.youtube.com/watch?v=c3v0rJqyCTM |