利用 Youtube DATA API 根据关键字检索 android 应用中的视频详细信息
Making use of Youtube DATA API to retrieve video details in android app based on keyword
我已广泛尝试通过下载示例 here.[=14=,利用 Youtube DATA API 根据关键字在 android 应用程序中检索 youtube 视频详细信息]
如我的问题 here 所述,它会导致大量导入复杂性、冲突和重复索引编制。
对于 android 应用程序,使用 Java 是否有更简单的方法?
是的!!
您可以根据文档 here 中列出的示例向 youtube 发出简单的 GET HTTP 请求。此 不需要任何 google api JAR 下载。
代码示例:
MakeHTTPRequest makeHTTPRequest = new MakeHTTPRequest();
String response = "";
String apiKey = MY_KEY; //Set your Android Key here
String query = "";
// input = input.replace(",","+");
if(input.contains(" "))
query = "https://www.googleapis.com/youtube/v3/search?part=snippet&q=%22"+input.replace(" ","+")+"%22&type=video&key="+apiKey;
else
query = "https://www.googleapis.com/youtube/v3/search?part=snippet&q=%22="+input+"%22&type=video&key="+apiKey;
try {
response = makeHTTPRequest.sendGet(query);
}
catch (Exception e){
e.printStackTrace();
}
System.out.println("Youtube results : "+response);
JSONObject responseJSON= null;
try {
responseJSON = new JSONObject(response);
JSONArray items = responseJSON.getJSONArray("items");
for(int i=0;i<items.length();i++){
System.out.println("Item "+i+" : ");
System.out.println("Title : "+items.getJSONObject(i).getJSONObject("snippet").get("title"));
System.out.println("Description : "+items.getJSONObject(i).getJSONObject("snippet").get("description"));
System.out.println("URL : https://www.youtube.com/watch?v="+items.getJSONObject(i).getJSONObject("id").getString("videoId"));
}
} catch (JSONException e) {
e.printStackTrace();
}
需要额外的东西:
得到你的API_KEY.
您需要下载 org.json jar 或任何其他用于 JSON 解析输出的支持 jar。
您还需要在 How to send HTTP request GET/POST in Java 上包含代码。
编辑 1:删除 videoCaption 参数以获得与 Youtube 网站匹配的结果。
编辑 2:如果你想搜索说一个短语 spice boat 那么输入应该用引号括起来,也就是说,变量
input = "%22spice+boat%22";
那搜索才真正准确。
我已广泛尝试通过下载示例 here.[=14=,利用 Youtube DATA API 根据关键字在 android 应用程序中检索 youtube 视频详细信息]
如我的问题 here 所述,它会导致大量导入复杂性、冲突和重复索引编制。
对于 android 应用程序,使用 Java 是否有更简单的方法?
是的!!
您可以根据文档 here 中列出的示例向 youtube 发出简单的 GET HTTP 请求。此 不需要任何 google api JAR 下载。
代码示例:
MakeHTTPRequest makeHTTPRequest = new MakeHTTPRequest();
String response = "";
String apiKey = MY_KEY; //Set your Android Key here
String query = "";
// input = input.replace(",","+");
if(input.contains(" "))
query = "https://www.googleapis.com/youtube/v3/search?part=snippet&q=%22"+input.replace(" ","+")+"%22&type=video&key="+apiKey;
else
query = "https://www.googleapis.com/youtube/v3/search?part=snippet&q=%22="+input+"%22&type=video&key="+apiKey;
try {
response = makeHTTPRequest.sendGet(query);
}
catch (Exception e){
e.printStackTrace();
}
System.out.println("Youtube results : "+response);
JSONObject responseJSON= null;
try {
responseJSON = new JSONObject(response);
JSONArray items = responseJSON.getJSONArray("items");
for(int i=0;i<items.length();i++){
System.out.println("Item "+i+" : ");
System.out.println("Title : "+items.getJSONObject(i).getJSONObject("snippet").get("title"));
System.out.println("Description : "+items.getJSONObject(i).getJSONObject("snippet").get("description"));
System.out.println("URL : https://www.youtube.com/watch?v="+items.getJSONObject(i).getJSONObject("id").getString("videoId"));
}
} catch (JSONException e) {
e.printStackTrace();
}
需要额外的东西:
得到你的API_KEY.
您需要下载 org.json jar 或任何其他用于 JSON 解析输出的支持 jar。
您还需要在 How to send HTTP request GET/POST in Java 上包含代码。
编辑 1:删除 videoCaption 参数以获得与 Youtube 网站匹配的结果。
编辑 2:如果你想搜索说一个短语 spice boat 那么输入应该用引号括起来,也就是说,变量
input = "%22spice+boat%22";
那搜索才真正准确。