Fig*_*ire 5 python youtube-api youtube-data-api
我正在使用Youtube V3 Api和这里的代码片段来从我的YouTube频道中提取前十个视频.(同样的查询在google API资源管理器@ https://developers.google.com/apis-explorer/中完美运行)
url_start = "https://www.googleapis.com/youtube/v3/videos?" + \
"order=viewCount&part=snippet&forMine=true" + \
"&type=video&maxResults=10&key=MY_API_KEY"
data = requests.get(url_start).json()
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
{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''}]}}
Run Code Online (Sandbox Code Playgroud)
我知道密钥是有效的,因为如果我可以在没有forMine的情况下执行相同的查询
https://www.googleapis.com/youtube/v3/search?part=snippet&key=MY_API_KEY
Run Code Online (Sandbox Code Playgroud)
我从youtube获得了整体热门视频.有没有更好的方法来做到这一点或解决方法?
forMine参数仅适用于经过身份验证的用户(已使用您的应用程序完成 oAuth2 流程的用户),因此您的请求抱怨的缺少参数是所需的访问令牌。
如果您的目标是运行一个私有脚本来在任何给定时间向您显示前十个视频,那么您可以在应用程序中设置一个临时例程,该例程将允许您使用 oAuth2 手动进行身份验证并捕获刷新令牌;如果您存储它,那么在将来的请求中,刷新令牌可以获得访问令牌,而无需您手动授权。
如果您的目标是创建一个仪表板,以便您的用户可以看到他们自己的前十个视频,那么您只需将 oAuth2 身份验证连接到您的流程中,并在每个请求中发送访问令牌。Python 的gapi 客户端使这变得非常简单。
如果您想在没有forMine视频列表参数的情况下执行此操作,您可以返回搜索端点并传入用户频道 ID(当然,这需要提前知道它,而经过身份验证的方法将适用于任何用户)登录而您不必知道他们是谁):
https://www.googleapis.com/youtube/v3/search?order=viewCount&part=snippet&channelId={channel id here}&maxResults=25&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2666 次 |
| 最近记录: |