首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从带有错误时间戳的YouTube字幕中生成有效的时间戳?(使用管)

如何从带有错误时间戳的YouTube字幕中生成有效的时间戳?(使用管)
EN

Stack Overflow用户
提问于 2022-11-05 19:21:40
回答 1查看 45关注 0票数 0

使用pytube,我尝试下载一个YouTube视频,翻译字幕并将翻译后的字幕嵌入到视频中,然后下载到我的PC上。

这是我代码的一部分,修改后的代码很容易理解。

代码语言:javascript
复制
from pytube import YouTube as YT
yt = YT("https://www.youtube.com/watch?v=ZFGAz6vZx1E")

caption_code = ''
try:
  captions = yt.captions['en']
  caption_code = 'en'
except:
  try:
    captions = yt.captions['a.en']
    caption_code = 'a.en'
  except Exception as e:
    raise e

captions = yt.captions.get_by_language_code(caption_code)
test_captions(captions)
代码语言:javascript
复制
### just a function to test how's the cations are structured.
def test_captions(captions):
  caption_list = []
  index = 0

  for line in str(captions.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']))

在最初的YouTube视频中,标题开始于第1秒(应在00:00:01,000左右)

第一次下载带有时间戳的说明句:"00:01:20,000 -> 00:52:00,000 :发生了什么,约翰·艾尔德

从控制台可以看到,根据SRT时间戳惯例,字幕有错误的时间戳。

(在https://www.3playmedia.com/上解释的SRT时间戳惯例)

第一个时间戳基本上是说句子应该从1sr分钟20秒显示到52分钟,这显然是错误的。

是否有可能修复它,如果没有,我如何规范标题的时间戳以符合有效的SRT时间戳格式?

EN

回答 1

Stack Overflow用户

发布于 2022-11-18 21:39:16

当以xml形式生成标题时,您会注意到由于某种原因,时间乘以1000。

"t=“之后的时间是文本以秒为单位出现的时间,"d=”是文本结束时的时间。

所以我只是浪费了时间,除以1000,把它写成“小时:分钟:第二分钟”,把文字放到我的file.srt中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74330836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档