2014-03-30 53 views
0

Vimeo的共享视频链接看起来像:从视频链接获取YouTube或Vimeo的视频ID

http://vimeo.com/89491724

YouTube分享的视频链接看起来像:

http://youtu.be/GioRM0kU5m0

我希望人们能进入这个进入我的网站,我会使用它们的嵌入代码嵌入它,并用它们的值(存储在数据库中)替换最后一个(id)部分。

我可以通过取最后一个斜杠“/”后面的值来解析这些。我可以根据“vimeo”是否在字符串中来判断它们来自哪个站点。我的问题是,我是否通过这样做来解决任何安全问题?有没有人可以利用这个系统,任何人都可以想到的?

是否有任何图书馆用于验证,也许我不知道?

回答

1

是的,我有同样的问题,几个月前我做了这个函数来获得YouTube的和Vimeo视频ID ..

这里是您的解决方案..

function Getvideoid(videolink) 

var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/; 
var match = videolink.match(regExp); 

    if (match && match[7].length == 11) 
    { 
     alert("youtube video id : "+ match[7]);  
     return; 
    } 
    regExp = "vimeo\\.com/(?:.*#|.*/videos/)?([0-9]+)"; 
    match = videolink.match(regExp); 
    if(match) 
     { 
     var videoid = videolink.split('/')[videolink.split('/').length - 1]; 
     alert("vimeo video id :"+videoid); 
     } 

else 
    { 
    alert("Unknown url"); 
    } 

这里JSBIN链接 http://jsbin.com/zoxicoko/2/

+0

非常冷静的人的感谢! – user441521

0
function parseVideo(url) { 
    // - Supported YouTube URL formats: 
    // - http://www.youtube.com/watch?v=My2FRPA3Gf8 
    // - http://youtu.be/My2FRPA3Gf8 
    // - https://youtube.googleapis.com/v/My2FRPA3Gf8 
    // - Supported Vimeo URL formats: 
    // - http://vimeo.com/25451551 
    // - http://player.vimeo.com/video/25451551 
    // - Also supports relative URLs: 
    // - //player.vimeo.com/video/25451551 

    url.match(/(http:|https:|)\/\/(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/); 

    if (RegExp.$3.indexOf('youtu') > -1) { 
     var type = 'youtube'; 
    } else if (RegExp.$3.indexOf('vimeo') > -1) { 
     var type = 'vimeo'; 
    } 

    return { 
     type: type, 
     id: RegExp.$6 
    }; 
}