You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pytube 15.0.0无法获取YouTube字幕问题求助

解决Pytube 15.0.0获取YouTube字幕为空的问题

问题原因

Pytube 15.0.0版本对字幕相关API做了调整,原有的yt.captions字典不再被填充,改用caption_tracks属性存储字幕轨道列表,直接访问yt.captions['a.en']会触发KeyError。

解决方案

改用caption_tracks属性获取字幕轨道,通过语言代码匹配目标字幕(自动生成字幕的代码为a.en),再调用对应的方法生成SRT格式内容。

修正后的示例代码

import pytube

yt = pytube.YouTube('https://www.youtube.com/watch?v=pvDOnqGbghU')

# 获取所有可用字幕轨道
caption_tracks = yt.caption_tracks

# 查找目标语言的字幕(自动生成英文用'a.en',手动字幕用'en')
target_caption = None
for track in caption_tracks:
    if track.code == 'a.en':
        target_caption = track
        break

if target_caption:
    # 生成SRT格式字幕
    srt_captions = target_caption.generate_srt_captions()
    print(srt_captions)
else:
    print("未找到目标语言的字幕轨道,请确认视频是否提供该语言字幕或自动生成字幕")

补充说明

  • 自动生成的字幕语言代码格式为a.xx(如a.en对应英文自动字幕),手动上传的字幕代码为xx(如en对应英文手动字幕)
  • 若caption_tracks为空,说明该视频没有任何可用字幕,无法提取

内容的提问来源于stack exchange,提问作者Alexander Bormotov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 20:46:14