Python Youtube API错误v3-';未选择过滤器';

Python Youtube API错误v3-';未选择过滤器';,python,youtube-api,youtube-data-api,Python,Youtube Api,Youtube Data Api,我正在使用Youtube V3 Api,下面是从我的Youtube频道中提取前十名视频的代码片段。(同样的查询在谷歌API浏览器@中也能完美运行) 但我得到了这个错误: {u'error': {u'code': 400, u'message': u'No filter selected.', u'errors':[{u'locationType': u'parameter', u'domain': u

我正在使用Youtube V3 Api,下面是从我的Youtube频道中提取前十名视频的代码片段。(同样的查询在谷歌API浏览器@中也能完美运行)

但我得到了这个错误:

{u'error': {u'code': 400,
            u'message': u'No filter selected.',
            u'errors':[{u'locationType': u'parameter',
                        u'domain': u'youtube.parameter',
                        u'message': u'No filter selected.',
                        u'reason': u'missingRequiredParameter',
                        u'location': u''}]}}
我知道密钥是有效的,因为如果我可以不使用forMine进行相同的查询

https://www.googleapis.com/youtube/v3/search?part=snippet&key=MY_API_KEY
我从youtube上获得了最热门的视频。是否有更好的方法或解决方法?

该参数仅适用于经过身份验证的用户(通过应用程序的oAuth2流的用户),因此您的请求抱怨缺少的参数是所需的访问令牌

如果您的目标是运行一个私有脚本,在任何给定时间向您显示前十名视频,那么您可以在应用程序中设置一个临时例程,允许您手动使用oAuth2进行身份验证并捕获刷新令牌;如果您将其存储,则在将来的请求中,刷新令牌可以获得访问令牌,而无需手动授权

如果您的目标是创建一个仪表板,以便您的用户可以看到他们自己的前十名视频,那么您只需将oAuth2身份验证连接到您的流中,并在每个请求中发送访问令牌。Python的示例使这变得非常简单

如果您想在不使用视频列表的
forMine
参数的情况下执行此操作,您可以返回搜索端点并传入用户频道ID(当然,这需要事先知道它,而认证方法将适用于任何登录的用户,而您不必知道他们是谁):


目标是后者,只是随时用python从我自己的频道中获取前十名——我没有意识到您现在需要获取刷新令牌来进行特定查询。这是有用的注释我编辑了我的答案来详细阐述一下。。。如果您已经知道给定用户的频道ID,则可以不使用任何令牌来完成此操作。如果您不知道,则必须使用oAuth。谢谢@jlmcdonald,这很有效!我也有错误的通道ID-但它工作得很好,没有为简单数据获取和维护令牌的开销!
https://www.googleapis.com/youtube/v3/search?part=snippet&key=MY_API_KEY
https://www.googleapis.com/youtube/v3/search?order=viewCount&part=snippet&channelId={channel id here}&maxResults=25&key={YOUR_API_KEY}