我希望从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。
那么,我怎样才能获得超过一千万的视频?
谢谢!
答案 0 :(得分:0)
那5000个也是唯一的id吗? 我看到你的网址中使用了max-results = 50,但没有使用start-index参数。 每个请求可以获得的结果有一个限制。您可以在一段时间间隔内发送的请求数量也有限制。通过检查响应的状态代码和任何错误消息,您可以找到这些限制,因为它们可能会及时更改。
除了category参数外,还可以使用其他一些参数。例如,您可以更改q参数(与某些关键字一起使用)和/或order参数以获取不同的结果集。 有关可用参数,请参阅文档。
请注意,您使用的是不推荐使用的api版本2。有一个api版本3.