新更新后 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”后面总是有一个点。对于更复杂的匹配,使用正则表达式,但我认为没有必要。
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”后面总是有一个点。对于更复杂的匹配,使用正则表达式,但我认为没有必要。