一键下载你的youtube视频 (2)

4.下载字幕
对于国内的同学来说,有可能需要字幕,那么youtube-dl也支持字幕下载。

# 下载字幕 $ youtube-dl --write-sub <url> # 下载该视频所有可用的字幕 $ youtube-dl --write-sub --all-subs <url> # 下载自动生成的字幕(仅限youtube) $ youtube-dl --write-auto-sub <url>

5.字幕选择和转换
对于国内大多数播放器来说,youtube下载的vtt字幕并不能正确加载,而如果能转换成srt字幕就完美了,youtube-dl自然也支持这种功能啦,还可以选择对应语言的字幕进行下载呢:

# 选择英文字幕并转换成srt格式,同时下载视频 $ youtube-dl --sub-lang en --convert-subs srt --write-sub <url>

6.下载视频列表
如果你一个视频列表需要下载,youtube-dl也是支持的,用法没啥不同:

$ youtube-dl <palylist_url>

youtube-dl 会识别你的url是单个视频还是视频列表,并进行下载。

下载视频自定义文件名:

# 使用 -o 参数 $ youtube-dl -o "%(upload_date)s-%(title)s.%(ext)s" <url>

上述命令指定下载的视频文件采用 上传日期 + 视频名称+视频扩展名 作为文件名。更多参数请看

组合上面所说的指定视频质量,下载字幕,转换字幕等命令在一起:

$ youtube-dl -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best" --sub-lang en --convert-subs srt -o "%(upload_date)s-[%(title)s].%(ext)s" --write-sub https://www.youtube.com/watch?v=dfnCAmr569k

这样下载下来的视频,就可以直接享用了

对了,本地下载需要你的代理开启全局模式。如果不想开启全局模式的话,需要在每一条命令后面加上代理设置:--proxy "https://127.0.0.1:1080"

嵌入youtube-dl

youtube-dl不但是一个很好的命令行工具,而且还支持嵌入代码使用,下面看一个简单的示例:

from __future__ import unicode_literals import youtube_dl class MyLogger(object): def debug(self, msg): print(msg) def warning(self, msg): print(msg) def error(self, msg): print(msg) def my_hook(d): if d['status'] == 'finished': print('Done downloading, now converting ...') ydl_opts = { 'format': 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best', 'outtmpl':'%(upload_date)s-[%(title)s].%(ext)s', 'writeautomaticsub':True, 'subtitleslangs':'en', 'logger': MyLogger(), 'progress_hooks': [my_hook], } with youtube_dl.YoutubeDL(ydl_opts) as ydl: ydl.download(['https://www.youtube.com/watch?v=dfnCAmr569k'])

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpywsg.html