当给定视频ID时,如何使用YouTube Java客户端API获取视频的评论?

当给定视频ID时,如何使用YouTube Java客户端API获取视频的评论?,java,youtube,youtube-data-api,Java,Youtube,Youtube Data Api,我正在寻找编写代码,以视频ID作为输入,并检索相应视频上的评论。这是一个例子。我试过这个密码 String videoId = "id"; YouTube.Comments.List list2 = youtube.comments().list(Arrays.asList("snippet")); list2.setId(Arrays.asList(videoId)); list2.setKey(apiKey);

我正在寻找编写代码,以视频ID作为输入,并检索相应视频上的评论。这是一个例子。我试过这个密码

    String videoId = "id";
    YouTube.Comments.List list2 = youtube.comments().list(Arrays.asList("snippet"));
    list2.setId(Arrays.asList(videoId));
    list2.setKey(apiKey);
    Comment c = list2.execute().getItems().get(0);
但是我在最后一行得到了一个
索引outofboundsexception
,因为
getItems
返回一个空的
列表。我将
videoId
设置为一个有效的YouTube视频ID(我已经成功地从中获取了视图、标题等视频数据),我认为这会起作用,但显然我错了。除非我错过了一些东西,否则我在
视频
课程的文档中找不到任何关于获取评论数据的内容,所以我再次向so寻求帮助

编辑:根据stvar的注释,我尝试将上述代码的第二行更改为

YouTube.CommentThreads.List list2 = youtube.commentThreads().list(Arrays.asList("snippet"));
当然,将
c
的类型更改为
CommentThread

这就是我应该使用的
CommentThreads
API,对吗?无论哪种方式,这都会返回一个空列表…

以下是完整的Java代码,用于检索任何给定视频的所有评论(顶级和回复):

列表获取\u评论\u回复(
YouTube、字符串apiKey、字符串commentId)
{
YouTube.Comments.List请求=YouTube.Comments()
.list(Arrays.asList(“id”,“snippet”))
.setParentId(commentId)
.setMaxResults(100)
.setKey(apiKey);
列表回复=新建ArrayList();
字符串pageToken=“”;
做{
CommentListResponse=请求
.setPageToken(pageToken)
.execute();
addAll(response.getItems());
pageToken=response.getNextPageToken();
}while(pageToken!=null);
回复;
}
列出获取视频的评论(
YouTube、字符串apiKey、字符串videoId)
{
YouTube.CommentThreads.List请求=YouTube.CommentThreads()
.list(Arrays.asList(“id”、“代码段”、“回复”))
.setVideoId(videoId)
.setMaxResults(100)
.setKey(apiKey);
列表注释=新建ArrayList();
字符串pageToken=“”;
做{
CommentThreadListResponse=请求
.setPageToken(pageToken)
.execute();
for(CommentThread注释:respose.getItems()){
CommentThreadReplies=comment.getReplies();
if(回复!=null&&
回复。getComments().size()=
comment.getSnippet().getTotalReplyCount())
responses.setComments(获取\u comment\u回复(
youtube、apiKey、comment.getId();
}
comments.addAll(response.getItems());
pageToken=response.getNextPageToken();
}while(pageToken!=null);
返回评论;
}

您必须调用
get\u video\u comments
,将您感兴趣的视频ID传递给它。返回的列表包含该视频的所有顶级评论;每个顶级注释都有其
回复
属性,其中包含所有关联的注释回复。

您没有执行正确的API调用。请阅读描述检索给定视频的所有评论(顶级和回复)所需的API的。在阅读您链接的答案后,我第二次尝试获取数据,编辑了该问题。