In meiner Android-Anwendung habe ich ein eingebettetes YouTube-Video.YouTube-Video-ID mit Parametern abrufen
Ich erhalte die Youtube-Video-ID von der ursprünglichen URL wie folgt:
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;
}
Diese ganz gut für eine Original-URL wie dies funktioniert: http://www.youtube.com/watch?v=A7ry4cx6HfY
Als ich tun, dass das Video geladen ist und spielte perfekt in Ordnung, aber die Qualität ist sehr schlecht. (240p oder sogar schlechter, denke ich)
So vom googling, ich weiß, dass Sie nur einen Parameter wie &vq=large
oder &vq=hd1080
hinzufügen müssen, um 480p/1080p zu erhalten.
Aber wenn ich eine URL wie diese http://www.youtube.com/watch?v=A7ry4cx6HfY&vq=hd1080 verwende, wird der Parameter ignoriert und die Qualität ist immer noch schlecht.
Wie kann ich das Video in besserer Qualität bekommen? Natürlich unter der Annahme, dass das Video in dieser Qualität verfügbar ist. Warum wird mein Parameter ignoriert?
Ich sehe keine Methode in YouTube API, die Video ID aus URL extrahiert – CommonMan
Das ist richtig, aber ich brauchte nur die ID für den Versuch, Zugriff auf die qualitativ hochwertigeren Versionen des Videos zu bekommen. Mit der YouTube API brauchst du das nicht mehr, da du auf alle Qualitätsvarianten zugreifen kannst –