aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuru Prasad Srinivasa <gurupras@buffalo.edu>2016-10-30 00:49:09 -0400
committerGuru Prasad Srinivasa <gurupras@buffalo.edu>2016-10-30 00:49:17 -0400
commit0ef87f93a6e93abbdcf4cc7d949ed6938ab79e11 (patch)
tree4fd0a51799797dc8e15e8cbe6a75e93901b8bbed
parenta3ed3093429d5306a89566215207d42a476392d8 (diff)
downloadplyr-0ef87f93a6e93abbdcf4cc7d949ed6938ab79e11.tar.lz
plyr-0ef87f93a6e93abbdcf4cc7d949ed6938ab79e11.tar.xz
plyr-0ef87f93a6e93abbdcf4cc7d949ed6938ab79e11.zip
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.
-rw-r--r--src/js/plyr.js19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/js/plyr.js b/src/js/plyr.js
index dd14f767..4ebb060a 100644
--- a/src/js/plyr.js
+++ b/src/js/plyr.js
@@ -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
function _init() {
// Bail if the element is initialized
@@ -3287,6 +3300,12 @@
plyr.type = media.getAttribute('data-type');
plyr.embedId = media.getAttribute('data-video-id');
+ switch(plyr.type) {
+ case 'youtube':
+ plyr.embedId = parseYoutubeVideoId(plyr.embedId);
+ break;
+ }
+
// Clean up
media.removeAttribute('data-type');
media.removeAttribute('data-video-id');