diff --git a/bigbluebutton-html5/imports/ui/components/external-video-player/service.js b/bigbluebutton-html5/imports/ui/components/external-video-player/service.js index 30d17ea1b9dac54a6784a072ec733758f60edeb5..89555690221beb0972618763b9250ea6247cb687 100644 --- a/bigbluebutton-html5/imports/ui/components/external-video-player/service.js +++ b/bigbluebutton-html5/imports/ui/components/external-video-player/service.js @@ -5,21 +5,19 @@ import ExternalVideoStreamer from '/imports/api/external-videos'; import { makeCall } from '/imports/ui/services/api'; const YOUTUBE_PREFIX = 'https://youtube.com/watch?v='; +const YOUTUBE_REGEX = /(?:youtube\.com\/\S*(?:(?:\/e(?:mbed))?\/|watch\/?\?(?:\S*?&?v\=))|youtu\.be\/)([a-zA-Z0-9_-]{6,11})/g; const isUrlEmpty = url => !url || url.length === 0; const isUrlValid = (url) => { - const regexp = RegExp('^(https?://)?(www.)?(youtube.com|youtu.?be)/.+$'); - return !isUrlEmpty(url) && url.match(regexp); + return !isUrlEmpty(url) && url.match(YOUTUBE_REGEX); }; const getUrlFromVideoId = id => (id ? `${YOUTUBE_PREFIX}${id}` : ''); -// https://stackoverflow.com/questions/3452546/how-do-i-get-the-youtube-video-id-from-a-url const videoIdFromUrl = (url) => { - const regExp = /.*(?:youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=)([^#]*).*/; - const match = url.match(regExp); - return (match && match[1].length === 11) ? match[1] : false; + const match = YOUTUBE_REGEX.exec(url); + return match ? match[1] : false; }; const startWatching = (url) => {