2013-04-30 58 views
4

我正在开发一个简单的视频应用程序,它将触发意图从特定频道获取任何新视频更新,使用Youtube Api V3Youtube API不返回更新结果

search.setKey(Constant.DEVELOPER_KEY); 
search.setChannelId(channelID); 
search.setOrder("date"); 
search.setPublishedAfter(new DateTime(yesterday)); 
search.setType("video"); 
search.setFields("items(id/kind,id/videoId,snippet/title,snippet/publishedAt)"); 
search.setMaxResults((long) 50); 
SearchListResponse searchResponse = search.execute(); 

List<SearchResult> searchResultList = searchResponse.getItems(); 

问题:它返回我不更新的结果列表。

实例网址:https://www.googleapis.com/youtube/v3/search?part=snippet&order=date&type=video&channelId=UC52X5wxOL_s5yw0dQk7NtgA&key=your_api_key&maxResults=50

问题描述:

  1. 几天监督这一行为,我发现,首先,总有一些其他的视频,我能找到在这个频道上转到Youtube网站本身。视频只需要30分钟或60分钟就可以进入我的搜索结果。

  2. 那么延迟对我来说确实很好,我不明白的是,有时候会说视频1,视频2和视频3,其中1在2之前上传,2在3之前上传。所以在上面的例子中,我期望得到(在我指定的按日期desc排序的URL)3-2-1或2-1,或者只有1的结果。但是我得到的奇怪的是,3-1。 2会在稍后的半小时后到来。我的意思是,如果延迟是一个问题,至少它应该以正确的顺序出现在列表中?

预期的解决方案:要让将由准确日期进行排序,这样每当我试图重新查询影片,我只是把我的最后一个视频检索后所发表的检索结果。不是像我的例子那样,从昨天开始就得到了一切。

谢谢你的时间,我真的在寻找解决方案。

+0

对于任何需要截屏的人,请参阅Ahmed回答的评论部分。 – 2013-05-12 03:04:03

回答

0

因此,首先API的V3目前是实验性的,我不会推荐使用它,直到它已经签署,并且不会。其次,我从来不是客户端库的粉丝,更愿意直接进行API调用,这样你就可以确保按照你想要的方式进行调用。因此,例如,下面是一个简单的调用,可以按照他们发布的顺序从我的频道中检索视频:http://gdata.youtube.com/feeds/api/videos?orderby=published&author=ahmednuaman

我建议现在使用此方法,并查看交互式API演示(http://gdata.youtube.com/demo/index.html )酝酿您的电话并确认测试正在返回您所需的数据。

+0

感谢您的回复,但首次尝试尝试此API时,仍然得到不正确的结果。这是我从YouTube http://i.imgur.com/KAfxP3l.png看到的,这里是我从API http://i.imgur.com/dHG5gEP.png获得的内容。正如你所看到的,我的第一个结果实际上是指向频道上的第二个视频。这是我所做的API调用http://gdata.youtube.com/feeds/api/videos?orderby=published&author=AssociatedPress – 2013-05-11 02:27:08

+0

啊,它可能是一个关于视频分发限制的案例:http:// apiblog。 youtube.com/2011/12/understanding-playback-restrictions.html?m=1 – 2013-05-11 05:22:51

+0

并非如此,因为您可以看到我所监视的内容,如果您没有注意到的话,我还提到过我使用了直接API调用。这些视频最终会在后面列入结果列表中。现在包括您的示例API调用,以前排除的视频 – 2013-05-11 07:50:52