首页 > 解决方案 > Pytube 字幕生成问题

问题描述

我有 YouTube 链接。我需要从视频中提取字幕。我的代码是 -

from pytube import YouTube
yt = YouTube('https://youtu.be/.....')
caption =yt.captions.get_by_language_code('en')
print(caption.generate_srt_captions())
 
Output = > 00:00:01 --> 00:00:02
This is caption ex..
00:00:03--> 00:00:04
This is second line

需要那种类型的输出

这是标题 这是第二行

标签: pythonpytube

解决方案


输出是字符串,所以你可以使用 .split('\n')。我制作了简单的 for 循环来遍历每一行,并且只将时间和标题保存到字典中。这不是最好的解决方案,但它有效。

from pytube import YouTube


caption_list = []
index = 0
yt = YouTube('https://youtu.be/.....')
caption = yt.captions.get_by_language_code('en')
for line in str(caption.generate_srt_captions()).split('\n'):
    if index == 0:
        caption_list.append({})
    if index in (1, 2):
        caption_list[len(caption_list)-1][('time', 'caption')[index-1]] = line
    index += 1
    if line == '':
        index = 0
for dic in caption_list:
    print('{} : {}'.format(dic['time'], dic['caption']))

推荐阅读