从youtube链接获取视频ID

时间:2015-12-28 13:19:23

标签: javascript hyperlink youtube

我有这句话:

token = videos.results[i].titlemay_link.split("?v=")[1];

videos.results [i] .titlemay_link = youtube视频的链接分割只会返回代码。

现在问题是我得到的一些youtube链接是这样的链接:

https://www.youtube.com/watch?v=1zO9nWgI_LY&feature=youtu.be

所以得到的输出是:

1zO9nWgI_LY&feature=youtu.be

这不会在嵌入播放器中加载视频,我怎么能摆脱

&feature=youtu.be

谢谢!

2 个答案:

答案 0 :(得分:6)

token = videos.results[i].titlemay_link.split("?v=")[1];
token = token.split("&")[0];

但是在大​​多数情况下这都不够,因为youtube网址很多次变得复杂,这里有一个更加粗鲁的方法来获取youtube视频ID

function youtube_parser(url){
    var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
    var match = url.match(regExp);
    return (match&&match[7].length==11)? match[7] : false;
}

这些是支持的网址类型

http://www.youtube.com/watch?v=0zM3nApSvMg&feature=feedrec_grec_index
http://www.youtube.com/user/IngridMichaelsonVEVO#p/a/u/1/QdK8U-VIH_o
http://www.youtube.com/v/0zM3nApSvMg?fs=1&hl=en_US&rel=0
http://www.youtube.com/watch?v=0zM3nApSvMg#t=0m10s
http://www.youtube.com/embed/0zM3nApSvMg?rel=0
http://www.youtube.com/watch?v=0zM3nApSvMg
http://youtu.be/0zM3nApSvMg

答案 1 :(得分:1)

获得token后再添加一个条件并使用 .contains 进行检查,如下所示:

if(token.contains('&'))
   token=token.split('&')[0];