Python 尝试从 youtube api 获取数据时出错

标签 python api youtube youtube-api youtube-data-api

我有一个问题,我试图让 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:标签”。

尝试让它打印整个“片段”部分,给我除了“标签”和“类别ID”之外的所有内容

我认为问题归结为: 在数据表中哪里可以找到“tags”元素?

最佳答案

根据 Google 文档 ( https://developers.google.com/youtube/v3/docs/search#resource ),从搜索端点获取的 JSON 对象snippet 没有 tags 成员。因此,收到 KeyError 异常的代码表现出正确的行为。

要访问视频资源 ( https://developers.google.com/youtube/v3/docs/videos#snippet.tags[] ) 的 tags 属性,您必须在视频端点 ( https://developers.google.com/youtube/v3/docs/videos/list ) 上为您感兴趣的每个视频进行单独的 API 调用。

附录:您可以通过将这些视频(仅在一次 API 调用中)指定为参数 id 作为您感兴趣的视频,从而减少在视频端点上多次调用 API 的次数以逗号分隔的视频 ID 列表 ( https://developers.google.com/youtube/v3/docs/videos/list#id )。

关于Python 尝试从 youtube api 获取数据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55365769/

相关文章:

javascript - 从 JavaScript 中的 Instagram API 获取总点赞和评论

javascript - 使用 YouTube API 构建允许 YouTube 搜索的页面

api - ISRC 查询跟踪

youtube - 在我的网站上嵌入其他人的youtube视频

python - 在使用 lxml 进行解析之前,是否应该从 suds 输出中删除 XML 声明?

python - 从 Python 的子进程调用 scp 不适用于文件列表\{a,b,c\}

python - 消除Python中的重音符号

python - 设置seaborn/matplotlib始终使用edgecolor ='k'参数

streaming - 在桌面应用程序上流式传输 youtube 视频的最佳方式

html - 向右浮动时嵌入的 youtube 视频无法播放