拆分youtube视频url
Splitting youtube video url
我需要从youtube视频url获取id。我正在使用分割方法,但在控制台中它给出了以下错误
Uncaught TypeError: Cannot read property 'split' of undefined
我的视频网址是:https://www.youtube.com/embed/juIJGBxj-4w
id = url.split('/')[1].split('embed')[1];
正则表达式将从任何YouTube URL中提取视频ID它适用于缩短url (youtube .be)和嵌入url(youtube.com/embed/)
function extractVideoID(url){
var regExp = /^.*((youtu.be'/)|(v'/)|('/u'/'w'/)|(embed'/)|(watch'?))'??v?=?([^#'&'?]*).*/;
var match = url.match(regExp);
if ( match && match[7].length == 11 ){
return match[7];
}else{
alert("Could not extract video ID.");
}
}
例如youtube url为'https://www.youtube.com/watch?v=abcdefghij'
,我将用下面的代码分割它
id = url.split('?')[1].split('=')[1];
这个问题比看起来更复杂,因为所有的Youtube URL都不是以www.youtube.com/watch?v=.....
开头的,有些有www.youtu.be/...
或youtube.com/embed/...
的模式。
这是我使用的解析器,它每次对任何Youtube URL都有效:
videoId = url.match(/(?:https?:'/'/)?(?:www'.)?(?:youtube'.com'/(?:[^'/]+'/.+'/|(?:v|e(?:mbed)?)'/|.*[?&]v=)|youtu'.be'/)([^"&?'/ ]{11})/i)[0]
假设id
总是在最后出现。
function getId(url){
var splitedValue = url.split("/");
return splitedValue[splitedValue.length-1];
}
getId("https://www.youtube.com/embed/juIJGBxj-4w");
Output: juIJGBxj-4w
url = "https://www.youtube.com/embed/juIJGBxj-4w"
id = url.split('/');
var indexOfEmbed = id.indexOf("juIJGBxj-4w");
id[indexOfEmbed]
输出:"juIJGBxj-4w"
此解决方案适用于所有使用regex的url:
<我>我>
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]; // use console.log if your run code in browser console
} else {
//error
}
此解决方案适用于所有不含regex的url:
对于这种类型的url<我>我>
http://www.youtube.com/watch?v=u8nQa1cJyX8&a=GxdCwVVULXctT2lYDEPllDR0LRTutYfW
http://www.youtube.com/watch?v=u8nQa1cJyX8
<我>我>
var url ="http://www.youtube.com/watch?v=u8nQa1cJyX8&a=GxdCwVVULXctT2lYDEPllDR0LRTutYfW"
var video_id = window.location.search.split('v=')[1];// use url insted of window.location.search
Or
var video_id = url.split('v=')[1];
var ampersandPosition = video_id.indexOf('&');
if(ampersandPosition != -1) {
video_id = video_id.substring(0, ampersandPosition);
}
相关文章:
- 如何在javascript中解析Dailymotion视频Url
- 用于确定URL视频ID的正则表达式
- VideoJS:mp4在动态更改视频url时不起作用
- 如何使用jqueryjplayer的视频url创建缩略图
- 用字符串和数字写视频源URL的正确方式是什么
- 检查URL是否为YouTube视频
- 借助JS/Jquery函数,通过其URL加载youtube视频
- 如何在 HTML 视频结束后重定向到 URL
- 如何在使用视频JS时动态加载视频URL
- 使用 facebook graph API 在 facebook 上通过 URL 发布视频
- 如何在javascript w Ajax和JSON中使用v3 URL API获取Youtube视频标题
- 如何检测和转换来自纯文本URL的URL图像和视频
- Safari:无法从 blob URL 动态加载视频
- 使用Python和Regex从URL获取YouTube视频ID
- 如何使用从输入中插入的URL嵌入Youtube视频
- 如何从新的YouTube URL解析视频ID
- 获取嵌入式视频's使用javascript的URL
- 从Google Chrome浏览器在本地播放器中打开视频URL
- 使用Graph API Facebook获取视频源URL
- 尝试用jQuery在点击时切换iframe YouTube视频的URL