我需要在查询中获得超过100页

时间:2013-10-04 08:53:05

标签: youtube youtube-api

我希望从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个视频,但我需要更多,更多,但限制是页面= 100。

那么,我怎样才能获得超过一千万的视频?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

除了category参数外,还可以使用其他一些参数。例如,您可以更改q参数(与某些关键字一起使用)和/或order参数以获取不同的结果集。 有关可用参数,请参阅文档。

请注意,您使用的是不推荐使用的api版本2。有一个api版本3.