获取包含参数的YouTube视频ID

Phi*_*oda 6 youtube android video-streaming android-videoview

在我的Android应用程序中,我有一个嵌入式YouTube视频.

我从原始网址获取Youtube视频ID,如下所示:

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;
}
Run Code Online (Sandbox Code Playgroud)

这适用于这样的原始网址:http://www.youtube.com/watch?v = A7ry4cx6HfY

当我这样做时,视频加载并播放完美,但质量非常糟糕.(240p甚至更糟,我认为)

所以从谷歌搜索,我知道你只需要添加一个参数,如&vq=large&vq=hd1080获得480p/1080p.

但是当我使用这样的网址http://www.youtube.com/watch?v=A7ry4cx6HfY&vq=hd1080时,参数会被忽略,质量仍然很差.

如何才能获得质量更好的视频?当然,假设视频以该质量提供.为什么我的参数被忽略了?

Phi*_*oda 1

我通过使用官方的Android 版 Google Youtube API 解决了这个问题。

尝试自己实现视频获取可能不是最好的主意。使用 API 可以为您做到这一点,而且效果很好。

编辑

这里是 API 的链接: https: //developers.google.com/youtube/android/player/

  • 我在 YouTube API 中没有看到任何从 URL 中提取视频 ID 的方法 (10认同)