我有一个问题,我正在尝试通过Youtube API让Python搜索视频,部分代码不起作用。当我尝试获取视频的标签时,它给了我一个错误。
到目前为止,我已经使用了谷歌"search_by_keyword"的例子。它运作良好。但是,我对其进行了一点更改。我想要的是 Python 给我带有该视频中标签的视频 ID。我尝试调试,通过使其打印表格的整个"代码段"部分,似乎在"代码段"中根本找不到"标签">
只添加了一点代码,其余的都是工作查找。
for search_result in search_response.get("items", []):
if search_result["id"]["kind"] == "youtube#video":
videos.append("%s (%s)" % (search_result["snippet"]["tags"],
search_result["id"]["videoId"]))
print ("Videos:n", "n".join(videos), "n")
在
videos.append("%s (%s)" % (search_result["snippet"]["tags"]
我希望它在这里给我视频的标签,但它只出现回溯错误"KeyError:标签"。
试图让它打印整个"片段"部分,给了我除了"标签"和"类别 id"之外的所有内容
我认为问题归结为:在哪里可以找到数据表中的"标签"元素?
根据Google的文档(https://developers.google.com/youtube/v3/docs/search#resource(,从搜索端点获取的JSON对象代码段没有标签成员。因此,获取 KeyError 异常的代码表现出正确的行为。
若要访问视频资源 (https://developers.google.com/youtube/v3/docs/videos#snippet.tags[]( 的 tags 属性,必须在视频终结点 (https://developers.google.com/youtube/v3/docs/videos/list( 上对感兴趣的每个视频进行单独的 API 调用。
附录:可以通过将这些视频(仅在一次 API 调用中(指定为参数 ID 作为逗号分隔的视频 ID 列表 (https://developers.google.com/youtube/v3/docs/videos/list#id(,可以缓解在视频终端节点上多次调用感兴趣的视频的 API 的情况。