diff --git a/server/modules/rendering/html-mediaplayers/renderer.js b/server/modules/rendering/html-mediaplayers/renderer.js index 67c19c89..18561ac5 100644 --- a/server/modules/rendering/html-mediaplayers/renderer.js +++ b/server/modules/rendering/html-mediaplayers/renderer.js @@ -1,5 +1,26 @@ +const rxYoutube = /^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/)|(?:(?:watch)?\?v(?:i)?=|&v(?:i)?=))([^#&?]*).*/ +const rxVimeo = /^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/ + module.exports = { init($, config) { - + $('oembed').each((i, elm) => { + const url = $(elm).attr('url') + const ytMatch = url.match(rxYoutube) + let src + if (ytMatch) { + src = `https://www.youtube.com/embed/${ytMatch[1]}` + } else { + const vmMatch = url.match(rxVimeo) + if (vmMatch) { + src = `https://player.vimeo.com/video/${vmMatch[5]}` + } else { + return + } + } + const newElm = $(`
+ +
`) + $(elm).parent().replaceWith(newElm) + }) } }