我正在使用Google API客户端调用YouTube数据和YouTube分析API,并获取视频统计信息。我已通过身份验证为所查询频道的所有者。
我只想将公共视频上传到频道中。我首先查询YouTube数据API,以获取uploads
播放列表中的视频列表,一旦有了video ids
列表,便为每个视频调用youtube Analytics API,并获取所需的统计信息。 / p>
我遇到的问题是,当我在uploads
播放列表中列出所有视频时,我得到了成千上万(!!!)个unlisted
视频,这些都是我不需要的。
我无法下载整个列表,然后检查状态以仅保留公共视频,因为数量太大并且我已经达到每日配额。这也是一种非常低效的方法。
是否可以针对特定的播放列表仅列出状态为public
的视频?
这是我目前使用的方法:
data = service.playlistItems().list(
part="snippet,status",
playlistId=playlistID,
maxResults="50",
).execute()
我在youtube API文档中找不到有关如何实现此目标的任何信息。
答案 0 :(得分:1)
您是否尝试过通过未通过身份验证来使用PlaylistItems端点,而是只使用API key参数?
我在这里假设-尽管不能自己检查-如果未通过身份验证,则端点响应将仅包含public的视频。
答案 1 :(得分:0)
根据the doc,用户可以通过两种方式访问任何给定的API端点:使用API密钥,或者使用OAuth令牌。
任何用户都可以向Google开发者的console请求API key,他将以key parameter的身份传递到他感兴趣的端点。如果使用Python API Client Library,则您的代码必须与this类似:
from googleapiclient.discovery import build
service = build(serviceName = 'youtube', version = 'v3', developerKey = DEVELOPER_KEY)
其中DEVELOPER_KEY是从Google获得的API密钥字符串。请注意,此类API密钥是用户的私人信息。
就是这样:使用API密钥代替OAuth。
答案 2 :(得分:0)