W mojej aplikacji na Androida mam osadzony film z YouTube.Uzyskiwanie identyfikatora filmu wideo w YouTube, w tym parametrów
Dostaję identyfikator wideo YouTube z oryginalnego adresu URL w następujący sposób:
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;
}
Działa to dobrze dla oryginalnego url jak poniżej: http://www.youtube.com/watch?v=A7ry4cx6HfY
Kiedy robię, że film jest załadowany i grał doskonale, ale jakość jest bardzo zła. (240p lub nawet gorzej, myślę)
Tak więc z google, wiem, że wystarczy dodać parametr taki jak &vq=large
lub &vq=hd1080
, aby uzyskać 480p/1080p.
Ale kiedy używam adresu URL takiego jak ten http://www.youtube.com/watch?v=A7ry4cx6HfY&vq=hd1080 parametr jest ignorowany, a jakość nadal jest zła.
Jak mogę uzyskać wideo w lepszej jakości? Oczywiście zakładając, że film jest dostępny w tej jakości. Dlaczego mój parametr jest ignorowany?
Nie widzę żadnej metody w YouTube API, która pobiera identyfikator wideo z URL – CommonMan
To prawda, ale tylko potrzebne identyfikator dla próbuje uzyskać dostęp do wyższych wersjach jakościowych wideo. Dzięki API YouTube nie potrzebujesz już tego, ponieważ masz dostęp do wszystkich odmian jakości –