新更新后 pytube 字幕选择问题

problem of pytube caption selection after new update

pytube 字幕的语言代码格式好像变了

from pytube import YouTube
video_link = r'https://www.youtube.com/watch?v=w7daiJHfjoY'
yt = YouTube(video_link)
print(yt.captions)

现在的结果是这样的:

{'a.de': <Caption lang="German (auto-generated)" code="a.de">, 'de.CcQ45jRV4-E': <Caption lang="German - deutsch" code="de.CcQ45jRV4-E">}

在我可以简单地提取字幕之前 yt.captions.get_by_language_code('de')

但是因为现在字幕的语言代码变成了de.CcQ45jRV4-E,所以我需要使用yt.captions.get_by_language_code('de.CcQ45jRV4-E')

虽然可以,但是不知道这个语言代码是不是固定的。 如何使用字符串通配符在Caption中获取我想要的字幕?就像是: yt.captions.get_by_language_code('de*')

谢谢。

遍历字幕:

from pytube import YouTube
video_link = r'https://www.youtube.com/watch?v=w7daiJHfjoY'
yt = YouTube(video_link)

for c in yt.captions:
    if "de." in c.code:
        caption = c
        break
print(caption)

这里假设“de”后面总是有一个点。对于更复杂的匹配,使用正则表达式,但我认为没有必要。