Почему использование функции «Поиск» в API данных YouTube так сильно расходует мою квоту? - PullRequest
0 голосов
/ 09 февраля 2019

Я пытался разработать приложение, которое возвращает первый результат видео по ключевому слову (а также получает информацию о его содержании).Это делается несколько раз за сеанс (скажем, как 30 раз).Если все, что я делаю, это каждый раз считываю данные из 1 результата (из раздела «Расчет использования квот» в их документах ), то почему я использую все 10000 моих ежедневных единиц снесколько тестовых прогонов моего приложения?

Вот мой конкретный код:

private class GetVideoDuration extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... params) {
            String sURL = "https://www.googleapis.com/youtube/v3/videos?id=" + params[0] + "&part=contentDetails&key=" + API_KEY;
            String var = null;

            try {
                // Connect to the URL using java's native library
                URL url = new URL(sURL);
                URLConnection request = url.openConnection();
                request.connect();

                // Convert to a JSON object to print data
                JsonParser jp = new JsonParser(); //from gson
                JsonElement root = jp.parse(new InputStreamReader((InputStream) request.getContent())); //Convert the input stream to a json element
                Log.d("rootJSON", root.toString());
                Log.d("urlJSON", url.toString());
                JsonObject video = null;
                try {
                    video = root.getAsJsonObject().get("items").getAsJsonArray().get(0).getAsJsonObject().get("contentDetails").getAsJsonObject();
                } catch (IndexOutOfBoundsException e) {
                    e.printStackTrace();
                    Log.e("Chief", "It looks like we've exceeded our quota for the day :(");
                }
                var = video.get("duration").getAsString();
            } catch (IOException e) {
                e.printStackTrace();
                // contDets = contentDetails
                Log.d("Error parsing contDets", e.getMessage());
                ERROR_STATE = true;
            }

            return var;
        }
    }

Мне известен вариант подать заявку на более высокую квоту, но кажется, что что-то не так.Любая помощь будет принята с благодарностью.

...