从视频中获取超过25条评论

时间:2013-09-13 15:45:19

标签: c# youtube-api google-api

问题

我的问题是在我的应用程序中每个请求获得的默认值为25条评论。我知道我必须设置max-results参数,但每当我尝试设置它时,应用程序都会遇到GDataRequestException信息Execution of request failed。但网址看起来还不错:

http://gdata.youtube.com/feeds/api/videos/kpzWVicfdQk?max-results=50

使用过的代码:

string url = String.Format("http://gdata.youtube.com/feeds/api/videos/{0}?max-results=50", "kpzWVicfdQk");

YouTubeRequest request = new YouTubeRequest(new YouTubeRequestSettings("GComments","***"));
Video v = request.Retrieve<Video>(new Uri(url));
Feed<Comment> comments = request.GetComments(v);

没有?max-results=50它完美无缺。我也尝试将其设置为new Uri(url),但它也不起作用。

解决方案

问题是,检索到的Feed是评论Feed,但我使用了一种视频Feed。这是更新的,现在正在运行的代码:

void getComments()
{
    string url = String.Format("http://gdata.youtube.com/feeds/api/videos/{0}/comments?max-results={1}&start-index={2}", "kpzWVicfdQk", 50, 1);

    YouTubeRequest request = new YouTubeRequest(new YouTubeRequestSettings("GComments","AIzaSyB5d2gsN2G9xYftU3zFPKDg7kyBlrHni7A"));
    Feed<Comment> comments = request.Get<Comment>(new Uri(url));
}

2 个答案:

答案 0 :(得分:1)

max-results参数仅适用于查找多个视频的供稿(即,如果按关键字搜索视频,或最常用)。它限制了返回的视频数量。检索单个视频时该参数无效。

答案 1 :(得分:1)

最大结果可以是50。 您有错误的网址来检索评论。在videoId之后添加“comments”,如:

 http://gdata.youtube.com/feeds/api/videos/kpzWVicfdQk/comments?v=2&max-results=50&start-index=1

如果您希望获得更多评论,请将start-index更改为提前。

或者检查rel =“next”链接的响应,例如:

<link rel='next' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/kpzWVicfdQk/comments?start-index=51&amp;max-results=50&amp;direction=next&amp;v=2'/>