В моем приложении для Android у меня встроенное видео YouTube.Получение идентификатора видео YouTube, включая параметры
Я получаю ID видео YouTube из исходного URL следующим образом:
private String extractYoutubeId(String url) {
String video_id = "";
if (url != null && url.trim().length() > 0 && url.startsWith("http")) {
String expression = "^.*((youtu.be" + "\\/)"
+ "|(v\\/)|(\\/u\\/w\\/)|(embed\\/)|(watch\\?))\\??v?=?([^#\\&\\?]*).*";
CharSequence input = url;
Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
String groupIndex1 = matcher.group(7);
if (groupIndex1 != null && groupIndex1.length() == 11)
video_id = groupIndex1;
}
}
return video_id;
}
Это прекрасно работает для оригинального URL, как это: http://www.youtube.com/watch?v=A7ry4cx6HfY
Когда я делаю, что видео загружается и играл отлично, но качество очень плохое. (240p или еще хуже, я думаю)
Так что из поиска в Google я просто хочу добавить параметр &vq=large
или &vq=hd1080
, чтобы получить 480p/1080p.
Но когда я использую такой URL-адрес http://www.youtube.com/watch?v=A7ry4cx6HfY&vq=hd1080, параметр игнорируется, а качество по-прежнему плохое.
Как я могу получить видео в лучшем качестве? Конечно, предполагая, что видео доступно по этому качеству. Почему мой параметр игнорируется?
Я не вижу никакого метода в API YouTube, который извлекает идентификатор видео с URL – CommonMan
Это правильно, но мне нужен только идентификатор, чтобы попытаться получить доступ к более качественным версиям видео. С API YouTube вам больше не нужно, поскольку вы можете получить доступ ко всем вариантам качества –