Получить идентификатор YouTube и дополнительные переменные для встраивания с помощью JavaScript - PullRequest
0 голосов
/ 08 марта 2012

Итак, я видел множество сценариев для получения идентификатора YouTube с URL с помощью JavaScript, но я не могу найти или выяснить, как получить идентификатор вместе с какими-либо дополнительными переменными.У меня есть PHP-скрипт, который может это сделать, но я бы хотел сделать это с помощью JavaScript.Кто-нибудь знает, как этого добиться?

Я сомневаюсь, что это необходимо, но вот два сценария, которые я использую

JavaScript для идентификатора видео ...

url = $(this).text();
var regExp = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=)([^#\&\?]*).*/;
var match = url.match(regExp);
if (match&&match[2].length==11){
    alert(match[2]);
}else{
   alert("not youtube");
}

И PHP ...

if (preg_match('%(?:youtube\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $url, $match)) {
$youtubeid = $match[1];
$getyt = (parse_url($url));
}
if(strlen($getyt['fragment']) > 0) {
$addhash = '#' . $getyt['fragment'];
}
$embed = "http://www.youtube.com/embed/$youtubeid?wmode=opaque&autoplay=1$addhash";

PHP довольно хорош, за исключением того, что он работает только для хеш-тегов.Моя основная причина, по которой нужны дополнительные переменные, заключается в том, когда кто-то хочет указать время начала.Так что, если кто-нибудь скажет мне, как я могу получить URL-адрес и дополнительные параметры (или только указанное время начала видео), то я очень ценю это, потому что я абсолютно потерян.

1 Ответ

1 голос
/ 08 марта 2012

Это создает ассоциативный массив с именем video_parameters:

function extractParameters(url)
{
    var query = url.match(/.*\?(.*)/)[1];
    var assignments = query.split("&")
    var pair, parameters = {};
    for (var ii = 0; ii < assignments.length; ii++)
    { 
        pair = assignments[ii].split("=");
        parameters[pair[0]] = pair[1];
    }
    return parameters;
}

url = "http://www.youtube.com/watch?v=gkU&list=UUa3Q&feature=plcp";
video_parameters = extractParameters(url);

// video_parameters["v"]
// > "gkU"
// video_parameters["list"]
// > "UUa3Q"

См. Как получить значения строки запроса в JavaScript? для методов, которые обрабатывают специальные символы.

...