2014-03-30 367 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 
    }; 
}