Android:从 URL 获取 YouTube 播放器的 YouTube 视频 ID

Android: Get youtubeVideo Id from URL for YouTubePlayer

尝试了下面的代码,但它不会处理像

这样的所有情况

1.)"https://youtu.be/zuf8A0udHrs"

2.)"https://www.youtube.com/watch?v=zuf8A0udHrs"

private boolean isValidUrl(String url) {

    if (url == null) {
        return false;
    }
    if (URLUtil.isValidUrl(url)) {
        // Check host of url if youtube exists
        Uri uri = Uri.parse(url);
        if ("www.youtube.com".equals(uri.getHost())) {
            return true;
        }
        // Other way You can check into url also like 
        //if (url.startsWith("https://www.youtube.com/")) {
            //return true;
        //}
    }
    // In other any case
    return false;
}

我认为您可以使用正则表达式来检查有效的 link。

String pattern = "http(?:s?):\/\/(?:www\.)?youtu(?:be\.com\/watch\?v=|\.be\/)([\w\-\_]*)(&(amp;)?‌​[\w\?‌​=]*)?";
        String link1 = "https://youtu.be/zuf8A0udHrs";
        String link2 = "https://www.youtube.com/watch?v=zuf8A0udHrs";

        if(link2.matches(pattern)) {
            System.out.println("YES");
        } else {
            System.out.println("NO");
        }