如何从网址获取 YouTube 视频 ID?

2022-08-29 23:54:55

我想用JavaScript(没有jQuery,纯JavaScript)从YouTube的URL中获取。v=id

示例 YouTube 网址格式

http://www.youtube.com/watch?v=u8nQa1cJyX8&a=GxdCwVVULXctT2lYDEPllDR0LRTutYfW

http://www.youtube.com/watch?v=u8nQa1cJyX8

或者网址中包含视频 ID 的任何其他 YouTube 格式。

这些格式的结果

u8nQa1cJyX8


答案 1

我对“jeffreypriebe”提供的正则表达式进行了增强,因为他需要一种YouTube URL,这是视频在浏览频道时的URL。

好吧,不,但这是我所武装的功能。

<script type="text/javascript">
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;
}
</script>

这些是受支持的 URL 类型

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&amp;hl=en_US&amp;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

可以在[http://web.archive.org/web/20160926134334/]http://lasnv.net/foro/839/Javascript_parsear_URL_de_YouTube 中找到


答案 2

我稍微简化了Lasnv的答案。

它还修复了WebDeb描述的错误。

在这里:

var regExp = /^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/;
var match = url.match(regExp);
if (match && match[2].length == 11) {
  return match[2];
} else {
  //error
}

这是一个正则表达式链接:http://regexr.com/3dnqv