youtube-dl - 从 YouTube 下载带字幕的视频 - 教程

youtube-dl - 从 YouTube 下载带字幕的视频 - 教程

我下载了 Python 和 youtube-dl,在桌面上保存了文件 yt-dl.py。我的目标是下载带字幕的视频。我打开 cmd,写入 cd Desktop,按下回车键,将文件 yt-dl.py 拖到 cmd 上,然后我不知道如何下载带字幕的视频(我只知道如何下载不带字幕的视频:拖放文件后,我在视频链接后输入一个空格)。我可以使用什么命令来下载带字幕的视频?(图中有一个错误:文件是 yt-dl.py 而不是 yt-dll.py) 在此处输入图片描述

感谢您的时间。

PS 我尝试了命令 --write-srt --sub-lang en 'http://www.youtube.com/watch?v=RHy9_RQbrnQ' 发现于如何从 YouTube 下载带字幕的视频?但它不起作用。我使用的链接是https://www.youtube.com/watch?v=DW5jfjN-5RI&t=1s代替http://www.youtube.com/watch?v=RHy9_RQbrnQ


在文件 yt-dl.py 中有https://raw.githubusercontent.com/rg3/youtube-dl/2012.02.27/youtube-dl

答案1

根据 youtube-dl 的 Readme 文件(您以文件 yt-dl.py 运行的程序),--write-srt不是一个选项,但--write-sub确实如此。包含所有选项的 Readme 文件可在此处获取:https://github.com/rg3/youtube-dl/blob/master/README.md#readme

我成功使用 下载了带字幕的视频yt-dl.py --sub-lang en --convert-subs srt --write-sub <youtube url>--sub-lang en选择英文字幕,--convert-subs srt将字幕转换为常见的 SubRib (.srt) 格式,--write-sub将字幕写入 .srt 文件,它<youtube url>只是 YouTube 视频页面的 URL/网址。

一个例子:yt-dl.py --sub-lang en --convert-subs srt --write-sub https://www.youtube.com/watch?v=sWAN0FwfD5M

如果你使用 Windows 可执行文件,启动 DOS 提示符,导航到您的 youtube-dl.exe 文件并写入例如:youtube-dl.exe --sub-lang en --convert-subs srt --write-sub https://www.youtube.com/watch?v=sWAN0FwfD5M--convert-subs如果您没有ffmpeg安装该程序,该命令将不起作用。如果是这种情况,您必须省略此选项,youtube-dl 将输出 .vtt 字幕。

答案2

参见字幕选项 (https://github.com/ytdl-org/youtube-dl/#subtitle-options)和后处理选项(https://github.com/ytdl-org/youtube-dl/#post-processing-options

我在 Fedora 29 上的示例。youtube-dl --help (youtube-dl --version 2019.08.13)

youtube-dl -ci -f "bestvideo[ext=mp4]"+"bestaudio[ext=m4a]" --write-sub --embed-subs --merge-output-format mp4 --proxy socks5://127.0.0.1:1080/ https://www.youtube.com/watch?v=psI7E_J1zPo

-c, --continue 强制恢复部分下载的文件。默认情况下,youtube-dl 将在可能的情况下恢复下载。

~

-i, --ignore-errors 出现下载错误时继续,例如跳过播放列表中不可用的视频

~

-f, --format FORMAT 视频格式代码,查看“格式选择”获取所有信息(需要安装 ffmpeg 或 avconv)

~

--write-sub 写入字幕文件

~

--embed-subs 在视频中嵌入字幕(仅适用于 mp4、webm 和 mkv 视频)

~

--proxy URL 使用指定的 HTTP/HTTPS/SOCKS 代理。要启用 SOCKS 代理,请指定适当的方案。例如 socks5://127.0.0.1:1080/。传入空字符串 (--proxy "") 可直接连接

~

--merge-output-format FORMAT 如果需要合并(例如 bestvideo+bestaudio),则输出到指定的容器格式。mkv、mp4、ogg、webm、flv 之一。如果不需要合并,则忽略

參考文獻:

https://ytdl-org.github.io/youtube-dl/index.html

https://github.com/ytdl-org/youtube-dl/blob/master/README.md

相关内容