Youtube Загрузите список видео. Ошибка FileNotFound

Я пытаюсь получить список видео, загруженных на мой канал YouTube, используя следующие

Https://www.googleapis.com/youtube/v3/search?part=snippet&channelId {MY_CHANNEL_ID} & maxResults = 50 & key = {MY_APP_ID}

Я создал приложение в Google App Console и генерирую APP ID для этого же. Но когда я пытаюсь получить к нему доступ через приложение для Android, получая ошибку java.io.FileNotFoundException

Я также дал идентификатор приложения и SHA1. Если я пытаюсь получить доступ через ключ веб-браузера без каких-либо других ограничений, он работает хорошо и возвращает весь список видео, но в случае Android он не работает.

@Override protected String doInBackground(Void... voids) { HttpURLConnection urlConnection = null; String urlString = "https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=UCrF362wkcVnjqqPRsSEzvgg&maxResults=50&key=AIzaSyAiAFjZb1eVdRxVWnymrhuAb1iDlmYupu8"; //urlString = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=PLTqSMwQKOhUhl7gm7h6YwX6XPYr0ViBtu&key=AIzaSyAiAFjZb1eVdRxVWnymrhuAb1iDlmYupu8"; String jsonString = new String(); URL url = null; try { url = new URL(urlString); urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setReadTimeout(10000 /* milliseconds */); urlConnection.setConnectTimeout(15000 /* milliseconds */); urlConnection.setDoOutput(true); urlConnection.connect(); BufferedReader br=new BufferedReader(new InputStreamReader(url.openStream())); char[] buffer = new char[1024]; StringBuilder sb = new StringBuilder(); String line; while ((line = br.readLine()) != null) { sb.append(line+"\n"); } br.close(); jsonString = sb.toString(); System.out.println("JSON: " + jsonString); } catch (MalformedURLException e) { e.printStackTrace(); } catch (ProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return jsonString; } 

Журнал ошибок

 BasicNetwork.performRequest: Unexpected response code 403 for https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=UCrF362wkcVnjqqPRsSEzvgg&maxResults=50&key=AIzaSyAiAFjZb1eVdRxVWnymrhuAb1iDlmYupu8 05-13 15:28:26.607 19118-19151/com.jeevanmulmantra W/System.err: java.io.FileNotFoundException: https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=UCrF362wkcVnjqqPRsSEzvgg&maxResults=50&key=AIzaSyAiAFjZb1eVdRxVWnymrhuAb1iDlmYupu8 

Введите описание изображения здесь

Не смотря на настройки API-консоли, я не могу сказать точно. Но, глядя на HTTP-ответ, похоже, что ваш IP-адрес может быть заблокирован сервером авторизации Google. Следовательно, он отправляет вам код 403 статуса неавторизованного запроса HTTP.

Перейдите в свою консоль API и выберите переключатель « Нет » из раздела « Ограничения по ключевым словам». Затем повторите попытку. Он должен работать.

Это не совсем то, что вы просите, но я поделюсь своим опытом.

У меня была аналогичная ситуация пару месяцев назад. Находясь на линии, я пришел к выводу, что опция api для YouTube для Android просто не работает. У меня получилось более удобное решение для моего развития:

Я получил ключ YT api для веб-сайта и связал его с соответствующим доменом.

Я создал php-файл, который получает плейлист с youtube два раза в день, используя настройку curl и cron на сервере. Файл списка воспроизведения в формате json затем записывается на веб-сервер (обновляется два раза в день).

Приложение Android подключается к моему серверу с использованием YT и получает от него «кешированный» список воспроизведения json.

Этот параметр резко снижает влияние на потребление квот, потому что все обращения к плейлисту идут на сайт.

Если вас интересует эта опция, я могу поделиться php, используемым для получения списка воспроизведения.