Change search suggestions to match what is seen at youtube.com
This commit is contained in:
parent
e9156ee499
commit
24a8df7c49
|
@ -48,15 +48,23 @@ public class YoutubeSuggestionExtractor extends SuggestionExtractor {
|
||||||
List<String> suggestions = new ArrayList<>();
|
List<String> suggestions = new ArrayList<>();
|
||||||
|
|
||||||
String url = "https://suggestqueries.google.com/complete/search"
|
String url = "https://suggestqueries.google.com/complete/search"
|
||||||
+ "?client=" + "firefox" // 'toolbar' for xml
|
+ "?client=" + "youtube" //"firefox" for JSON, 'toolbar' for xml
|
||||||
|
+ "&jsonp=" + "JP"
|
||||||
+ "&ds=" + "yt"
|
+ "&ds=" + "yt"
|
||||||
+ "&hl=" + URLEncoder.encode(contentCountry, CHARSET_UTF_8)
|
+ "&hl=" + URLEncoder.encode(contentCountry, CHARSET_UTF_8)
|
||||||
+ "&q=" + URLEncoder.encode(query, CHARSET_UTF_8);
|
+ "&q=" + URLEncoder.encode(query, CHARSET_UTF_8);
|
||||||
|
|
||||||
String response = dl.download(url);
|
String response = dl.download(url);
|
||||||
|
// trim JSONP part "JP(...)"
|
||||||
|
response = response.substring(3, response.length()-1);
|
||||||
try {
|
try {
|
||||||
JsonArray collection = JsonParser.array().from(response).getArray(1);
|
JsonArray collection = JsonParser.array().from(response).getArray(1, new JsonArray());
|
||||||
for (Object suggestion : collection) suggestions.add(suggestion.toString());
|
for (Object suggestion : collection) {
|
||||||
|
if (!(suggestion instanceof JsonArray)) continue;
|
||||||
|
String suggestionStr = ((JsonArray)suggestion).getString(0);
|
||||||
|
if (suggestionStr == null) continue;
|
||||||
|
suggestions.add(suggestionStr);
|
||||||
|
}
|
||||||
|
|
||||||
return suggestions;
|
return suggestions;
|
||||||
} catch (JsonParserException e) {
|
} catch (JsonParserException e) {
|
||||||
|
|
Loading…
Reference in New Issue