youtube api返回的注释结果少于实体。
ex>真实评论总数: 103条
youtube api返回评论数: 86条
(首页评论总数: 50,第二页: 36)
我得到了第一页的评论,然后输入了“nextpageToken”来获得下一页的评论。但接口返回小于50(请求maxResults)。即使是评论总数也只有103条。
这是一种bug吗?
我用的是youtube api.commentThreads().list
import os
import googleapiclient.discovery
def main():
# Disable OAuthlib's HTTPS verification when running locally.
# *DO NOT* leave this option enabled in production.
os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"
api_service_name = "youtube"
api_version = "v3"
DEVELOPER_KEY = "YOUR_API_KEY"
youtube = googleapiclient.discovery.build(
api_service_name, api_version, developerKey = DEVELOPER_KEY)
request = youtube.commentThreads().list(
part="snippet",
maxResults=50,
videoId="GazFsfcijXQ"
)
response = request.execute()
print(response)
if __name__ == "__main__":
main()
第一个结果的#######part
{
"kind": "youtube#commentThreadListResponse",
"etag": "\"Bdx4f4ps3xCOOo1WZ91nTLkRZ_c/lHjDTm_13OMmcHL6osO0eXmp450\"",
"nextPageToken": "QURTSl9pMDRyOS1NcXNhbEwxeVlIVThfY1Q0RGFxaGFkNVRmREM3YmxOUGw4ZXpfUjd3Z1JxYWwxT19GQ180Nm1OMFdGbmJlX2lNV2hrODk4OGlMM0ZNTUVOeTUtbkFqbWU3Smd5aXhDRk9oc2t0SUpZdlJ3bGxOME1ldE5HUncxNmc=",
"pageInfo": {
"totalResults": 50,
"resultsPerPage": 50
},
我对nextpagetoken使用了相同的代码。
nextpageToken="QURTSl9pMU5ISGYyUkpxWmRzSnBRejJjUXpRYVVNQ1RTZThrNnMzUUV0X1NyYUtXNmkyb1lxeXhqaVBSRnhqNGlCYXZ4bkNlNTVoZEtTVVNIcklURVlXWWkwSU9pZ2lBXy1ILUtNcDhsX2dub1ZPSGJuWkttYXRPaURvRXV4MGdBMWs="
def main():
# Disable OAuthlib's HTTPS verification when running locally.
# *DO NOT* leave this option enabled in production.
os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"
api_service_name = "youtube"
api_version = "v3"
DEVELOPER_KEY = "YOUR_API_KEY"
youtube = googleapiclient.discovery.build(
api_service_name, api_version, developerKey = DEVELOPER_KEY)
request = youtube.commentThreads().list(
part="snippet",
maxResults=50,
pageToken = nextpageToken,
videoId="GazFsfcijXQ",
)
response = request.execute()
print(response)
if __name__ == "__main__":
main()
########第二个结果的一部分
{
"kind": "youtube#commentThreadListResponse",
"etag": "\"Bdx4f4ps3xCOOo1WZ91nTLkRZ_c/LXcTjLwg3AUlu8RNlb7nbrei05A\"",
"pageInfo": {
"totalResults": 36,
"resultsPerPage": 50
},
我希望所有评论的视频。评论数量少于100~200条。所以,我想我可以得到所有的评论,不管youtube api的软限制。
发布于 2019-07-02 16:57:03
请注意,对于涉及视频评论的内容,该应用编程接口将它们分成两类,并通过两个端点进行访问:CommentThreads和Comments。
根据documentation (重点是我的):
commentThread资源不一定包含对某个评论的所有回复,如果您想要检索某个特定评论的所有回复,则需要使用方法。还要注意的是,有些评论没有回复。
更明确地说,replies.comments[]
列表并不包含所有注释(再次强调是我的):
顶层评论的一个或多个回复的列表。列表中的每一项都是一个评论资源。
该列表包含有限数量的回复,除非列表中的项目数等于snippet.totalReplyCount属性的值,否则回复列表只是顶级注释可用回复总数的子集。
因此,我认为API工作正常。任何Youtube视频页面--比如GazFsfcijXQ --都会显示一个评论计数器,用来累计顶级评论和回复评论的数量。
https://stackoverflow.com/questions/56847925
复制相似问题