【问题标题】:Get more then 25 comments from a Video从视频中获得超过 25 条评论
【发布时间】:2013-09-13 15:45:19
【问题描述】:

问题

在我的应用程序中,每个请求的默认值 25 cmets 都超过了我的问题。我知道我必须设置max-results 参数,但是每当我尝试设置它时,应用程序就会崩溃,并显示GDataRequestExceptionExecution 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),但它也不起作用。

解决方案

问题是,检索到的提要是评论提要,但我使用了一种视频提要。这是更新的,现在可以使用的代码:

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));
}

【问题讨论】:

  • “没有 ?max-results=50 它可以完美运行。”:在这种情况下,响应不是“评论源”(这是您想要的),而是单个“视频条目”。
  • 啊,我认得那种字符串。如果它应该是名为 GComments 的参数的值,那么我认为它将被忽略。
  • GComments 是在 API 控制台中设置的应用程序的名称,此字符串是开发密钥。密钥不再有效,我只是忘了删除它。

标签: c# youtube-api google-api


【解决方案1】:

最大结果可以是 50。 您检索 cmets 的 url 错误。在 videoId 后添加“cmets”,如:

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

如果您期望更多 cmets,请将 start-index 更改为 Advance。

或者检查响应以获取 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'/>

【讨论】:

  • 这是有道理的,但是你知道,我必须如何自定义我的代码来获取 cmets 吗?因为它现在不适用于我的代码,所以我得到了同样的例外。
  • 我不使用那种代码语言 (c#)。但我看到第一行的网址是错误的。第 2 行是什么意思:new YouTubeRequestSettings("GComments","***").为什么在第 3 行提到视频:request.Retrieve
  • 谢谢,它现在有效,将更新我的问题以显示解决方案
【解决方案2】:

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

【讨论】:

  • 我知道这并不能回答您关于如何检索超过 25 个 cmets 的问题,但 API 文档没有提及检索到的 cmets 的默认限制?
猜你喜欢
  • 2017-01-06
  • 1970-01-01
  • 1970-01-01
  • 2012-03-20
  • 2015-09-24
  • 2016-08-03
  • 2023-03-09
  • 2012-03-08
  • 2010-12-13
相关资源
最近更新 更多