function get_youtube_id(url) {
var p = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/; return (url.match(p)) ? RegExp.$1 : false;
} function vimeoEmbed(url, el) {
var id = false; $.ajax({ url: 'https://vimeo.com/api/oembed.json?url='+url, async: true, success: function(response) { if(response.video_id) { id = response.video_id; if(url.indexOf('autoplay=1') !== -1) var autoplay=1; else var autoplay=0; if(url.indexOf('loop=1') !== -1) var loop=1; else var loop=0; var theInnerHTML = '<iframe src="https://player.vimeo.com/video/'+id+'/?byline=0&title=0&portrait=0'; if(autoplay==1) theInnerHTML += '&autoplay=1'; if(loop==1) theInnerHTML += '&loop=1'; theInnerHTML += '" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>'; el.innerHTML = theInnerHTML; } } });
} function videoEmbed(videoEmbedTag) {
//check if this is an external url (that starts with https:// or http:// if (videoEmbedTag.getAttribute("src").indexOf("http://") == 0 || videoEmbedTag.getAttribute("src").indexOf("https://") == 0) { var youtube_id = get_youtube_id(videoEmbedTag.getAttribute("src")); if(youtube_id) { if(videoEmbedTag.getAttribute("src").indexOf('autoplay=1') !== -1) var autoplay=1; else var autoplay=0; if(videoEmbedTag.getAttribute("src").indexOf('loop=1') !== -1) var loop=1; else var loop=0; var theInnerHTML = '<iframe width="720" height="420" src="https://www.youtube.com/embed/' + youtube_id + '?rel=0&showinfo=0'; if(autoplay==1) theInnerHTML += '&autoplay=1'; if(loop==1) theInnerHTML += '&loop=1&playlist='+youtube_id+'&version=3'; theInnerHTML += '" frameborder="0" allowfullscreen></iframe>'; videoEmbedTag.innerHTML = theInnerHTML; } if(videoEmbedTag.getAttribute("src").indexOf('vimeo.com') !== -1) { //ask vimeo for the id and place the embed vimeoEmbed(videoEmbedTag.getAttribute("src"),videoEmbedTag); } }
}
function fillVideoEmbeds() {
var videoEmbedTags = document.querySelectorAll('.videoEmbed'); videoEmbedTags.forEach(function (videoEmbedTag) { videoEmbed(videoEmbedTag); });
}
$(document).ready(fillVideoEmbeds);