我下载了 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