python - 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
需要那种类型的输出
这是标题 这是第二行
解决方案
输出是字符串,所以你可以使用 .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']))
推荐阅读
- postgresql - Kafka-connect 无法按照模式解析日期
- java - Java:在运行时将 Json 对象解析为子类
- python - 如何检查 Odoo 9 qweb 报告模板中 id 列表的长度?
- c++ - 我可以拥有抽象类的 .cpp 文件吗?
- c# - 我在 C# 中的 Kitty 问题上得到无效回报
- jquery - 仅使用一项功能显示多个时区
- python - Python statsmodel VARMAX 结果
- r - 在 R 脚本中选择了未定义的列
- python - 使用 numpy 清理和连接包含特殊字符的 2D 掩码字符串数组
- angular - 使用量角器在 GraphQL API 响应中测试数据