Added logic to parse youtube video id

This commit is targetted at solving issue#345 and adds
    functionality to parse youtube video IDs from various
    types of youtube video URLs.

    Other embed types like vimeo/soundcloud can be extended by
    following a similar structure as implemented in this commit.
This commit is contained in:
Guru Prasad Srinivasa 2016-10-30 00:49:09 -04:00
parent a3ed309342
commit 0ef87f93a6

View File

@ -3259,6 +3259,19 @@
} }
} }
// Taken from https://gist.github.com/takien/4077195
function parseYoutubeVideoId(url) {
var videoId;
url = url.replace(/(>|<)/gi,'').split(/(vi\/|v=|\/v\/|youtu\.be\/|\/embed\/)/);
if(url[2] !== undefined) {
videoId = url[2].split(/[^0-9a-z_\-]/i);
videoId = videoId[0];
} else {
videoId = url;
}
return videoId;
}
// Setup a player // Setup a player
function _init() { function _init() {
// Bail if the element is initialized // Bail if the element is initialized
@ -3287,6 +3300,12 @@
plyr.type = media.getAttribute('data-type'); plyr.type = media.getAttribute('data-type');
plyr.embedId = media.getAttribute('data-video-id'); plyr.embedId = media.getAttribute('data-video-id');
switch(plyr.type) {
case 'youtube':
plyr.embedId = parseYoutubeVideoId(plyr.embedId);
break;
}
// Clean up // Clean up
media.removeAttribute('data-type'); media.removeAttribute('data-type');
media.removeAttribute('data-video-id'); media.removeAttribute('data-video-id');