有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java利用Youtube数据API基于关键字检索安卓应用中的视频细节

我已经广泛尝试使用Youtube数据API在安卓应用程序中基于关键字检索Youtube视频详细信息,方法是下载示例here

正如我在问题here中所描述的那样,它会导致大量的导入复杂性、冲突和重复的索引

在安卓应用程序中使用Java有没有更简单的方法


共 (1) 个答案

  1. # 1 楼答案

    是的,有

    您只需根据文档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. 您需要下载组织。jsonjar或用于json解析输出的任何其他支持jar

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

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

    编辑2:如果要搜索短语香料船,则输入应包含在引号中,即变量

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

    那么搜索就真的准确了