Вопрос по jquery, javascript – как получить идентификатор видео YouTube из URL

14

Я пытаюсь проверить, является ли URL-адрес действительным URL-адресом для видео на YouTube, и получить из него идентификатор видео YouTube, поэтому для этого я использую простую функцию разделения JavaScript, однако это имеет некоторые незначительные недостатки, поскольку YouTube имеет несколько URL-адресов. ; с.

Я просматривал другие потоки stackoverflow, но все они поддерживают только один конкретный URL, который мне не нужен.

Мне нужно что-то, что соответствует всем этим URL:

http(s)://www.youtu.be/videoID

http(s)://www.youtube.com/watch?v=videoID

(и, необязательно, любые другие короткие URL-адреса, которые сценарий автоматически определяет, содержит ли он видео на YouTube)

Будем очень благодарны за любые идеи, которые могут быть обработаны браузером быстро / эффективно!

Error: User Rate Limit ExceededJavascript REGEX: How to get youtube video id from URL? HackedByChinese
Error: User Rate Limit Exceeded xorinzor
Error: User Rate Limit Exceededgithub.com/lingtalfi/video-ids-and-thumbnails/blob/master/… ling

Ваш Ответ

5   ответов
8

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded xorinzor
5

var url = 'http://www.youtu.be/543221'; 
         //http://www.youtube.com/watch?v=SNfYz6Yw0W8&feature=g-all-esi would work also
var a = url.split("v=")[1];
a = a != undefined ? a : url.split("youtu.be/")[1];
b = a.split("&")[0];

Error: User Rate Limit Exceeded xorinzor
Error: User Rate Limit Exceeded
0

Error: User Rate Limit Exceeded
$url = "http://www.youtube.com/watch?v=YzOt12co4nk&feature=g-vrec"; preg_match('/v=([0-9a-zA-Z]+)/', $url, $matches); $vid = $matches[1];
Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded xorinzor
48

var url = "...";
var videoid = url.match(/(?:https?:\/{2})?(?:w{3}\.)?youtu(?:be)?\.(?:com|be)(?:\/watch\?v=|\/)([^\s&]+)/);
if(videoid != null) {
   console.log("video id = ",videoid[1]);
} else { 
    console.log("The youtube url is not valid.");
}

/
(?:https?:\/{2})? // Optional protocol, if have, must be http:// or https://
(?:w{3}\.)?      // Optional sub-domain, if have, must be www.
youtu(?:be)?  // The domain. Match 'youtu' and optionally 'be'. 
\.(?:com|be) // the domain-extension must be .com or .be
(?:\/watch\?v=|\/)([^\s&]+) //match the value of 'v' parameter in querystring from 'watch' directory OR after root directory, any non-space value.
/
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded xorinzor
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded xorinzor
Error: User Rate Limit Exceeded
2

var url = "...";
var videoid = url.match((?:youtube(?:-nocookie)?\.com\/(?:[^\/\n\s]+\/\S+\/|(?:v|e(?:mbed)?)\/|\S*?[?&]v=)|youtu\.be\/)([a-zA-Z0-9_-]{11}));
if(videoid != null) {
    console.log("video id = ",videoid[1]);
} else { 
    console.log("The youtube url is not valid.");
}

Похожие вопросы