在仅使用 youtube-dl 下载 YouTube 字幕时指定字幕选项



我想下载具有以下规格的YouTube播放列表的字幕:

  1. 只有英文版
  2. 在 srt 格式
  3. 只是字幕文件,而不是视频本身

我尝试了以下代码片段。但它正在下载所有可用语言和 vtt 格式的字幕。

ydl_opts = {
'allsubtitles': True,
'writesubtitles': True,
'convertsubtitles':True,
'skip_download':True,
'outtmpl': 'C:/Users/shrayani.mondal/Desktop/Personal/Python Projects/Speech to text/Subtitles/%(title)s.%(ext)s',
#'subtitlesformat': 'srt'
'subtitleslangs':'en',
'postprocessors': [{
'key': 'FFmpegSubtitlesConvertor',
'format': 'srt',
}],
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download(['https://www.youtube.com/watch?v=Lp7E973zozc&list=PLQltO7RlbjPJnbfHLsFJWP-DYnWPugUZ7'])

我的第二个目标是为没有字幕的视频使用自动生成的英文字幕。如何为此包含 if 语句?

# if convert vtt into srt:
# use postprocessors code snippet given below

ytdlp_option = {
"progress_hooks": [self.track_progress],
"logger": DownloadVideo.Logger(self),
"noplaylist": True,
"format": f'{self.selected_file.get(VIDEO, {}).get("format_id")}+{self.selected_file.get(AUDIO, {}).get("format_id")}',
"paths": {"home": self.video_download_path},
"outtmpl": {"default": f"{self.video_file_path}.{self.output_extension}"},
"postprocessors": [
{
"key": "FFmpegSubtitlesConvertor",
"format": "srt",
}
]
"writesubtitles": True,
"subtitlesformat": "vtt"
"subtitleslangs": ["en"],

}

您只能使用这种方式下载字幕。

youtube-dl --write-sub --write-auto-sub --skip-download YOURLINK

默认下载字幕语言为英语。 更多选项有在此链接或YouTube-DL --帮助(在此处输入链接描述(

默认字幕格式为VTT。 您可以转换为SRT吗? 尝试使用YouTube-DL或简单地在互联网上转换器。