如何使用 youtube-dl 下载棘手的字幕?

如何使用 youtube-dl 下载棘手的字幕?

我正在尝试下载此流的字幕(https://live.performa.intio.tv/media/30e671d3-0bd2-46db-b70d-6fb4cb6be350/master-allsubs.m3u8),使用 youtube-dl。

在 m3u8 文件中,字幕被列为媒体资源

#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="German",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="deu",URI="subs-deu.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",DEFAULT=NO,AUTOSELECT=NO,FORCED=NO,LANGUAGE="eng",URI="subs-eng.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Italian",DEFAULT=NO,AUTOSELECT=NO,FORCED=NO,LANGUAGE="ita",URI="subs-ita.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="French",DEFAULT=NO,AUTOSELECT=NO,FORCED=NO,LANGUAGE="fra",URI="subs-fra.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Japanese",DEFAULT=NO,AUTOSELECT=NO,FORCED=NO,LANGUAGE="jpn",URI="subs-jpn.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Russian",DEFAULT=NO,AUTOSELECT=NO,FORCED=NO,LANGUAGE="rus",URI="subs-rus.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Spanish",DEFAULT=NO,AUTOSELECT=NO,FORCED=NO,LANGUAGE="spa",URI="subs-spa.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Chinese",DEFAULT=NO,AUTOSELECT=NO,FORCED=NO,LANGUAGE="zho",URI="subs-zho.m3u8"

但是任何下载尝试都会失败,例如 youtube-dl --write-sub --skip-download "https://live.performa.intio.tv/media/30e671d3-0bd2-46db-b70d-6fb4cb6be350/master-allsubs.m3u8" 没有返回任何错误,但也没有创建字幕文件。有什么想法吗?

答案1

使用ffmpeg对于每个字幕播放列表(subs-XXX.m3u8 链接),然后将它们添加到您下载的视频中。

例如英文字幕:

  1. 下载:ffmpeg -i "https://live.performa.intio.tv/media/30e671d3-0bd2-46db-b70d-6fb4cb6be350/subs-eng.m3u8" subs-eng.srt

  2. 将它们添加到您的视频中:ffmpeg -i downloaded.mp4 -i subs-eng.srt -c copy -c:s mov_text outfile.mp4

不幸的是,使用这种方法您必须对链接到的 8 种语言中的每一种重复此操作;带有 for 循环的 bash 脚本可能是执行此操作的方法。

相关内容