Java получить первый результат YouTube из условия поиска - PullRequest
0 голосов
/ 05 февраля 2020

В настоящее время я пытаюсь запрограммировать бота в Discord, используя Java, и сейчас пытаюсь заставить его играть музыку c, используя предоставленный поисковый запрос.

Для этого мне нужно получите идентификатор видео первого результата и включите его в правильную форму URL. Я уже пытался сделать это через API данных YouTube v3 и подошел довольно близко, но по какой-то причине он вызывает исключение.

Это мой код до сих пор. (взято из здесь )

if(!isValidURL(identifier)) {   //checks if the provided argument should be interpreted as a search term
            try { 
                String keyword = identifier;
                keyword = keyword.replace(" ", "+");

                String url = "https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=1&order=rating&q=" + keyword + "&key=MY_KEY";

                Document doc = Jsoup.connect(url).timeout(1000).get();  //May throw IOException, hence the try/catch

                String getJson = doc.text();
                JSONObject jsonObject = (JSONObject) new JSONTokener(getJson ).nextValue();

                identifier = "https://www.youtube.com/watch?v=" + jsonObject.getString("videoId");  //finished URL
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

И это сообщение об ошибке. (UnsupportedMimeTypeException)

org.jsoup.UnsupportedMimeTypeException: Unhandled content type. Must be text/*, application/xml, or application/xhtml+xml. Mimetype=application/json; charset=UTF-8, URL=https://www.googleapis.com/youtube/v3/search?part=snippet...
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:770)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:705)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:295)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:284)
...