有没有办法从youtube链接获取视频ID。
我在PHP脚本中有一种方法,但我需要在javascript中使用它。
这是我的php脚本
function get_youtube($url){
parse_str( parse_url( $url, PHP_URL_QUERY ), $my_array_of_vars );
return $my_array_of_vars['v'];
}
例如,我有一个youtube视频链接
http://www.youtube.com/watch?v=fWNaR-rxAic&list=RD029I9Ar6upx34
然后我得到 V 变量的内容= fWNaR-rxAic
答案 0 :(得分:7)
如果视频是有效的YouTube视频网址,则以下函数会返回视频的视频ID。
function matchYoutubeUrl(url){
var p = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/;
return (url.match(p)) ? RegExp.$1 : false ;
}
答案 1 :(得分:2)
试试这段代码
/*Function youtubeLinkParser parses youtube link for Video ID*/
function youtubeLinkParser(url) {
var regExp = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=|\?v=)([^#\&\?]*).*/;
var match = url.match(regExp);
if (match && match[2].length == 11) {
return match[2];
} else {
return null;
}
}
答案 2 :(得分:1)
Youtube链接的格式如下:
http://www.youtube.com/watch 参数 = <强> VIDEO_ID 强>&安培; bunch_of_other_stuff
现在,我错误地认为所有视频都有手表?v =
事实证明可以有一个手表?list =并且v =接近结束。
对于我所知道的所有人来说,参数可以是v或list或其他东西。没关系。
所以这排除了?v =(这是在freaktechnik的irc.mozilla.org:8443上的#jetpack频道上指出的)。我们留下了v =
另一点是,几乎所有处理此的部分都假设长度为11个字符。为什么?只是因为它现在是 ?
假设您有自己的网址,且网址为video_url
。您只需使用两个分割即可获得video_id。我可以分两次进行,因为我花了几个小时使用JavaScript,但我确信更有经验的人可以做得更好。
编辑:
video_id = video_url.split("v=")[1];
ampersand_pos = video_id.indexOf("&");
if (ampersand_pos != -1) {
video_id = video_id.substring(0, ampersand_pos)
}
试试吧。它考虑到了这一点:
的YouTube(点)的COM /观看列表= WL2358B031ED8642DE&安培; V = FyUrrAqso-M
还有这个:
的YouTube(点)的COM /观看V = hUgCuFiZozc&安培;特征= C4-概述&安培;列表= UUyNpwxYpMdYpw8CNqqv3Bdw
答案 3 :(得分:0)
我找到了一种不使用正则表达式的简单方法。 注意:这适用于所有类型的可播放网址。
我做了一个函数来帮你:
function getLink(url){
fetch('www.youtube.com/oembed?url=' + url).then(res => {
var thumbnailUrl = res.thumbnail_url;
var id = thumbnail_url.split('vi/')[1].substring(0, 11);
return id;}
)
}
console.log(getLink(your_url));
// here replace 'your_url' with your specified youtube url.
所有这一切都是,它使用 youtube api 并将您的 url 作为参数传递,而 youtube 会处理 url 的类型,因此您不必担心。接下来的事情是,该函数然后从该 api 中获取 'thumbnail_url' 数据,然后相应地拆分缩略图的 url 以找到视频的 ID。