Python YouTube API订户计数不正确,因为频道名称相同
代码: 这没关系: 输入:谷歌 输出:谷歌有9640000个订户!呜呼 这是而不是: 输入:Markiplier 输出:Markiplier拥有84900个订户!呜呼!(实际上,他的主频道拥有2780万用户)Python YouTube API订户计数不正确,因为频道名称相同,python,google-api,youtube,youtube-api,youtube-data-api,Python,Google Api,Youtube,Youtube Api,Youtube Data Api,代码: 这没关系: 输入:谷歌 输出:谷歌有9640000个订户!呜呼 这是而不是: 输入:Markiplier 输出:Markiplier拥有84900个订户!呜呼!(实际上,他的主频道拥有2780万用户) 我遇到了同名频道的不幸问题。如何防止这种情况发生?你必须承认YouTube网站的以下特点:它(通过设计)允许非常相同的名称——在你的例子中是Markiplier——成为一个频道的自定义URL,同时也是另一个频道的(传统)用户名 请阅读这篇文章,回答一个非常相关的问题。从这里,您将很好地了解
我遇到了同名频道的不幸问题。如何防止这种情况发生?你必须承认YouTube网站的以下特点:它(通过设计)允许非常相同的名称——在你的例子中是
Markiplier
——成为一个频道的自定义URL,同时也是另一个频道的(传统)用户名
请阅读这篇文章,回答一个非常相关的问题。从这里,您将很好地了解这两个(有时令人困惑)概念之间的区别:频道用户名和频道自定义URL
具体地说,如果您使用我的Python3公共脚本,您将看到有两个不同的通道显示我刚才描述的w.r.t.名称Markiplier
:
import requests
import json
key = 'key' #api key
url = 'https://www.googleapis.com/youtube/v3/channels?part=statistics&key='+ key +'&forUsername='
youtuber = input('What\'s the name of the youtuber: ') #get youtuber name
url += youtuber.lower() #youtuber name all lowercase
r = requests.get(url) #get data from youtuber channel webpage
try:
subs = json.loads(r.text)['items'][0]['statistics']['subscriberCount']
except:
print('Your youtuber doesn\'t exist ):')
exit()
print(youtuber,"has",subs,"subscribers! Woohoo!")
请注意,youtube search.py
需要一个有效的API键作为命令行选项--app key
的参数传递给它,或者作为环境变量youtube\u DATA\u app\u key
传递给它。(使用命令行选项--help
获取简要的帮助信息。)
以下URL上的进一步API端点查询:
https://www.googleapis.com/youtube/v3/channels?id=UCxubOASK0482qC5psq89MsQ,UC7_YxT-KID8kRbqZo7MyscQ&part=id,snippet,statistics&fields=items(id,snippet(title,description,customUrl),statistics(subscriberCount))&maxResults=2&key=…
将确认您所经历的差异:
{
“项目”:[
{
“id”:“UCXUBOASK0482QC5PSK89MSQ”,
“片段”:{
“标题”:“markiplier”,
“说明”:“我将不再更新此频道!我的所有新视频都将上载到markiplierGAME!请重新订阅该频道以保持我的视频的最新状态!”
},
“统计”:{
“subscriberCount”:“85000”
}
},
{
“id”:“UC7_YxT-KID8kRbqZo7MyscQ”,
“片段”:{
“标题”:“Markiplier”,
“描述”:“欢迎来到Markiplier!在这里您可以找到一些有趣的游戏视频、原创喜剧小品、动画模仿和其他娱乐节目!如果这听起来像您喜欢的频道,请立即订阅!\n\n慈善募捐总额▶ $3,000,000+",
“customUrl”:“markiplier”
},
“统计”:{
“subscriberCount”:“27800000”
}
}
]
}
现在,为了总结我的观点,w.r.t.你的问题——我遇到了一个不幸的问题,即同名频道。我如何防止这种情况发生?--,我注意到:
channel.list
端点,并使用相应的forUsername
参数进行查询$ python3 youtube-search.py --user-name Markiplier
UCxubOASK0482qC5psq89MsQ
$ python3 youtube-search.py --custom-url Markiplier
UC7_YxT-KID8kRbqZo7MyscQ