利用 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();
    }

需要额外的东西:

  1. 得到你的API_KEY.

  2. 您需要下载 org.json jar 或任何其他用于 JSON 解析输出的支持 jar。

  3. 您还需要在 How to send HTTP request GET/POST in Java 上包含代码。

编辑 1:删除 videoCaption 参数以获得与 Youtube 网站匹配的结果。

编辑 2:如果你想搜索说一个短语 spice boat 那么输入应该用引号括起来,也就是说,变量

input = "%22spice+boat%22";

那搜索才真正准确。