4

我正在开发一个简单的视频应用程序,它将触发一个使用Youtube Api V3从特定频道获取任何新视频更新的意图。

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

问题:它返回给我一个未更新结果的列表。

URL 中的示例: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之前上传。所以在上面的情况下我希望(在我指定按日期顺序排序的 URL 中)3-2-1,或 2-1,或只有 1 的结果。但奇怪的是,我得到的是 3-1。2 将在可能再过半小时后到达。我的意思是,如果延迟是一个问题,至少它应该以正确的顺序出现在列表中?

预期的解决方案:要获得按日期准确排序的搜索结果,这样每当我尝试重新查询视频时,我只需要获取在检索到最后一个视频后发布的内容。不像我的例子那样从昨天开始得到所有东西。

感谢您的宝贵时间,我真的在寻找解决方案。

4

1 回答 1

0

所以首先,API 的 V3 目前是实验性的,我不建议在它被签署之前使用它,什么不是。

其次,我从不喜欢客户端库,而是更喜欢直接进行 API 调用,这样你就可以确保调用是以你想要的方式进行的。因此,例如,这是一个简单的调用,可以按照发布顺序从我的频道中检索视频:http://gdata.youtube.com/feeds/api/videos?orderby=published& author= ahmednuaman

我建议现在使用此方法并查看交互式 API 演示 ( http://gdata.youtube.com/demo/index.html ) 来准备您的通话并确认测试正在返回数据你渴望。

于 2013-05-10T13:36:19.230 回答