我正在使用YouTube V3接口检查视频是否有字幕。我在本例中使用的示例视频是ID TM3sNH7c5B4。
我的请求看起来像这样:
def get_youtube_caption_info(client, video_id):
caption_request = client.captions().list(
part='snippet,id',
videoId=video_id,
)
caption_response = caption_request.execute()
return bool(caption_response.get('items'))客户端的配置如下:
client = googleapiclient.discovery.build('youtube', 'v3', developerKey="XXXXXXXXXXXXXX")
即使YouTube视频播放器没有显示任何字幕选项,它仍然为该视频返回True:

我添加了一个调试器,下面是caption_response对象的样子:
{'etag': 'NdGxn_2Z1vhRrxgcbKpxtLQFSRs',
'items': [{'etag': 'tOfKO2jRztEqtGHfb_d6vQK_iKU',
'id': 'Gu_N5R6RDRgeXbUUjChlxQGFyZrSXyjtBetX-fj5KDE=',
'kind': 'youtube#caption',
'snippet': {'audioTrackType': 'unknown',
'isAutoSynced': False,
'isCC': False,
'isDraft': False,
'isEasyReader': False,
'isLarge': False,
'language': 'en',
'lastUpdated': '2020-10-06T10:28:19.545342Z',
'name': '',
'status': 'serving',
'trackKind': 'asr',
'videoId': 'TM3sNH7c5B4'}}],
'kind': 'youtube#captionListResponse'}看起来视频播放器应该显示一个自动字幕的选项,但那里什么都没有。这是YouTube方面的一个bug,还是我漏掉了什么?
发布于 2021-10-02 10:44:54
我曾经使用过Youtube Data API,但是很久以前,所以我不记得太多了。
当我试图下载带有字幕的视频的字幕时,我永远得不到这些字幕。直到后来我才意识到,许多频道不提供“公共”使用的字幕,即它属于私人数据,没有他们的许可,你不能通过你的应用程序/脚本访问它们。
所以尝试一些随机的频道和视频。下面是为数不多为我返回标题的videoID之一: p6X_5rkkA-I
视频Link
https://stackoverflow.com/questions/69351389
复制相似问题