1

我在理解与 youtube 的 API 相关的内容时遇到了一些麻烦 所以我的代码基本上很简单:

name  = input("enter the username: ")
key = "MY API KEY"


data = urllib.request.urlopen("https://www.googleapis.com/youtube/v3/channels? 
part=statistics&forUsername="+name+"&key="+key).read()
subs = json.loads(data)["items"][0]["statistics"]["subscriberCount"]

print(name + " has " + "{:,d}".format(int(subs)) + " subscribers!")

只是在给出特定的 YouTube 用户名后大喊订阅者的数量:问题是一些用户名(例如:Vsuase/Veritasium/Unbox Therapy)有很多订阅者,API-URL 给了我错误的数据

Vsause - 作为回报给我 72 个潜艇

Veritasium/Unbox Therapy - 根本不给我任何号码

但是,一个频道“Computerphile”给了我他们拥有的完全相同的潜艇。

为什么少数用户名有效而少数无效?

4

2 回答 2

0

出于某种原因,如果您从 forUsernae= --> id= 更改 URL,它会为您提供正确的数字。

TED 频道: https ://www.googleapis.com/youtube/v3/channels?part=statistics& id=UCAuUUnT6oDeKwE6v1NGQxug &key=AIzaSyDjnINqqxQlIg4kbXoPDVYOhHNfdmDbb9I

于 2019-02-23T14:23:07.660 回答
0

我使用YouTube Data API - Official DocumentationGoogle API Explorer中提供的try-it功能对两者进行了测试,在这两个站点,结果非常相似。

例如,当通过vsauceYouTube API 请求 YouTube 用户的统计信息时,在检查他的 YouTube 频道时的值subscriberCount是: 。1422081914,220,825

这是请求 YouTube 用户统计信息的示例vsauce (使用 try-it)

这是请求 YouTube 用户统计信息的演示vsauce (使用 Google API Explorer)

subscriberCount通过请求您在问题中提到的其他渠道,我没有看到值的任何差异。


1您需要考虑到某些频道的订阅人数变化比其他频道更多,并且这种结果在 API 的响应中也有所不同。

于 2019-02-22T17:49:36.973 回答