如何使用Regex和JS检索youtube播放列表id

How to retrieve a youtube playlist id using Regex and JS

本文关键字:youtube 播放列表 id 检索 JS 何使用 Regex      更新时间:2023-09-26

我正在尝试从youtube链接中检索播放列表id,如:

https://www.youtube.com/watch?v=hv_X327YUdI&list=SPGznEl712WelO6ZhS8lc2ssweLuQaCKld

https://www.youtube.com/playlist?list=SPGznEl712WelO6ZhS8lc2ssweLuQaCKld

并拒绝不属于youtube的链接。

所以在这种情况下,结果将是:

SPGznEl712WelO6ZhS8lc2ssweLuQaCKld

我是这样做的:

这个函数验证链接是否来自youtube:

    function youtube_validate(url) {
        var regExp = /^(?:https?:'/'/)?(?:www'.)?youtube'.com(?:'S+)?$/;
        return url.match(regExp)&&url.match(regExp).length>0;
    }

这个函数检索播放列表id

  //get playlist id from url
    function youtube_playlist_parser(url){
        var reg = new RegExp("[&?]list=([a-z0-9_]+)","i");
        var match = reg.exec(url);
        if (match&&match[1].length>0&&youtube_validate(url)){
            return match[1];
        }else{
            return "nope";
        }
    }    

好的,我想你已经提取了链接:

var link = 'https://www.youtube.com/watch?v=hv_X327YUdI&list=SPGznEl712WelO6ZhS8lc2ssweLuQaCKld';
var reg = new RegExp("[&?]list=([a-z0-9_]+)","i");
var match = reg.exec(link);
alert(match[1]);

解释
[&?]       one of these characters
list=
(          capture group 1
 [A-Za-z0-9_]+  all characters that are in [A-Za-z0-9_], one or more times
)          close capture group 1

从url获取播放列表id

function playlist_id(url) {
    var VID_REGEX = /^.*(youtu.be'/|v'/|u'/'w'/|embed'/|watch'?v=|'&v=)([^#'&'?]*).*/
    var regPlaylist = /[?&]list=([^#'&'?]+)/;
    var match = url.match(regPlaylist);
    return match[1];
}

从播放列表url获取视频id

function video_id_from_playlist(url) {
    var VID_REGEX = /^.*(youtu.be'/|v'/|u'/'w'/|embed'/|watch'?v=|'&v=)([^#'&'?]*).*/
    var video_id = url.match(VID_REGEX)[2];
    return video_id ;
}

或视频id from url

function get_video_id(url) {
    url = url.split(/(vi'/|v=|'/v'/|youtu'.be'/|'/embed'/)/);
    return (url[2] !== undefined) ? url[2].split(/[^0-9a-z_'-]/i)[0] : url[0];
}

(?: youtube.com。(?: ' ? |,)(?:列表)=)((? ! videoseries) [a-zA-Z0-9_ -] )

(# 1)

一些播放列表id有"-"https://regexr.com/3h5gsnp:

https://www.youtube.com/watch?v=ldY6WNjEmGY&列表= RDw9pC-51IQ60&指数= 6

Sorry for German techno:>首先我发现