我遇到了一个问题,我正在尝试让Python通过Youtube API搜索视频,部分代码无法正常工作。当我尝试获取视频标签时,它给了我一个错误。
到目前为止,我已经使用了Google的示例“ 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:标签”。
试图使它打印整个“代码段”部分,除了“标签”和“类别”之外,给了我一切
我认为问题归结为: 我在数据表的哪里找到“标签”元素?
答案 0 :(得分:2)
根据Google的文档(https://developers.google.com/youtube/v3/docs/search#resource),从Search端点获取的JSON对象片段没有 tags 成员。因此,您的代码遇到KeyError异常时,表现出正确的行为。
要访问视频资源(https://developers.google.com/youtube/v3/docs/videos#snippet.tags[])的 tags 属性,您必须为在视频端点({{3} }。
附录:您可以通过在参数 id 中将这些视频(仅在一次API调用中)指定为相应视频,从而减轻在视频端点上针对感兴趣视频的API的调用次数视频ID s(https://developers.google.com/youtube/v3/docs/videos/list)的逗号分隔列表。