我需要在查询中获取 100 多个页面



我想从Youtube上获取所有可能的视频信息。我知道限制页面是 100。

我做下一个代码:

         ArrayList<String> videos  = new ArrayList<>();
         int i = 1;
         String peticion = "http://gdata.youtube.com/feeds/api/videos?category=Comedy&alt=json&max-results=50&page=" + i;
         URL oracle = new URL(peticion);
             URLConnection yc = oracle.openConnection();
             BufferedReader in = new BufferedReader(new InputStreamReader(
                                         yc.getInputStream()));
             String inputLine = in.readLine();
             while (in.readLine() != null) 
             {
                 inputLine = inputLine + in.readLine();
             }
             System.out.println(inputLine);
             JSONObject jsonObj = new JSONObject(inputLine);
             JSONObject jsonFeed = jsonObj.getJSONObject("feed");
             JSONArray jsonArr = jsonFeed.getJSONArray("entry");
             while(i<=100)
             {
                 for (int j = 0; j < jsonArr.length(); j++) {
                     videos.add(jsonArr.getJSONObject(j).getJSONObject("id").getString("$t"));
                     System.out.println("Numero " + videosTotales + jsonArr.getJSONObject(j).getJSONObject("id").getString("$t"));
                     videosTotales++;
                 }
                 i++;
             }

程序完成后,每个类别有 5000 个视频,但我需要更多,更多,但限制是 page = 100。

那么,如何获得超过 1000 万个视频呢?

谢谢!

这 5000 个也是唯一的 id 吗?我看到使用了max-results=50,但在您的网址中没有使用起始索引参数。每个请求可以获得的结果有限制。在某个时间间隔内可以发送的请求数量也有限制。通过检查响应的状态代码和任何错误消息,您可以找到这些限制,因为它们可能会随时间变化。

除了类别参数,还要使用其他一些参数。例如,您可以改变 q 参数(与某些关键字一起使用)和/或顺序参数以获得不同的结果集。有关可用参数,请参阅文档。

请注意,您使用的是已弃用的 api 版本 2。有一个 api 版本 3。

相关内容

  • 没有找到相关文章

最新更新