在Youtube上实现按关键字搜索

时间:2017-10-14 16:06:33

标签: java android youtube-api

我一直在努力为Youtube实现SearchByKeyword,因为我发现很难将几乎所有文档中使用的Java语言联系起来。我想

https://github.com/youtube/api-samples/blob/master/java/src/main/java/com/google/api/services/samples/youtube/cmdline/data/Search.java

与我想要的最相关,但我根本无法工作。我的困惑:

如何使用此Search类?例如点击一下按钮?我不确定我可以调用的构造函数在哪里并放入我想要搜索的关键字。
例如:代码的第90行

String queryTerm = getInputQuery();  

会打电话给     private static String getInputQuery()抛出IOException {

    String inputQuery = "";

    System.out.print("Please enter a search term: ");
    BufferedReader bReader = new BufferedReader(new InputStreamReader(System.in));
    inputQuery = bReader.readLine();

    if (inputQuery.length() < 1) {
        // Use the string "YouTube Developers Live" as a default.
        inputQuery = "YouTube Developers Live";
    }
    return inputQuery;
}  

我希望通过EditText.getText().toString()获取关键字,然后点击Button进行搜索。这将返回给我一个结果列表,我可以使用ArrayAdapter来查看。

我该怎么办?在此先感谢任何援助。我一直在寻找没有结果的日子的指导,有文件,但我无法将它们翻译成Android。请帮忙。

1 个答案:

答案 0 :(得分:1)

首先,这是你的endPoint = https://www.googleapis.com/youtube/v3/search?part=snippet&q=YOURKEYFORSEARCH&type=video&key=YOURAPIKEY;

private void yourQueryToYoutubeAPI(final String keyWord) {

    final  String yourApiKEY = "yourApiKey";
    final String endPoint = "https://www.googleapis.com/youtube/v3/search?part=snippet&q="+ keyWord+"&type=video&key=" + yourApiKEY;
    new Thread(new Runnable() {
        @Override
        public void run() {

            Object jsonResponse = null;

            try {

                HttpClient httpclient = new DefaultHttpClient();
                HttpGet request = new HttpGet();

                request.setURI(new URI(endPoint));
                HttpResponse response = httpclient.execute(request);
                InputStream content = response.getEntity().getContent();
                Reader reader = new InputStreamReader(content);
                Gson gson = new Gson();
                jsonResponse = gson.fromJson(reader, HashMap.class);

                //jsonRespose contains your query result you can see result with log for example
                Log.i("jsonResponse", "jsonResponse: " + jsonResponse.toString());

                content.close();


            } catch (Exception e) {
                e.printStackTrace();

            }
        }
    }).start();
}`

这将让您早日了解如何使用api,进行测试和更多测试。

您可以在此处找到有关可检索哪些阵营的更多信息:https://developers.google.com/youtube/v3/docs/search/list?hl=en

额外信息: 在搜索字段的每个查询中,它的成本为100。 你有一个初始限制为1,000,000,你可以在接近达到此限制时联系youtube,但我不确定你是否需要付费。

您可以在此处找到有关配额限制的更多信息: https://developers.google.com/youtube/v3/determine_quota_cost