diff --git a/frontend/src/utils/index.js b/frontend/src/utils/index.js index 2261349c..f560d061 100644 --- a/frontend/src/utils/index.js +++ b/frontend/src/utils/index.js @@ -162,20 +162,21 @@ export function getEditorTools() { config: { services: { youtube: { - regex: /(?:https?:\/\/)?(?:www\.)?(?:(?:youtu\.be\/)|(?:youtube\.com)\/(?:v\/|u\/\w\/|embed\/|watch))(?:(?:\?v=)?([^#&?=]*))?((?:[?&]\w*=\w*)*)/, + regex: /^(?:https?:\/\/)?(?:www\.)?(?:(?:youtu\.be\/)|(?:youtube\.com)\/(?:v\/|u\/\w\/|embed\/|watch))(?:(?:\?v=)?([^#&?=]*))?((?:[?&]\w*=\w*)*)$/, embedUrl: '<%= remote_id %>', /* 'https://www.youtube.com/embed/<%= remote_id %>?origin=https://plyr.io&iv_load_policy=3&modestbranding=1&playsinline=1&showinfo=0&rel=0&enablejsapi=1' */ html: `
`, id: ([id]) => id, }, vimeo: { - regex: /(?:http[s]?:\/\/)?(?:www\.)?vimeo\.com\/(\d+)/, - embedUrl: '<%= remote_id %>', + regex: /^(?:http[s]?:\/\/)?(?:www\.)?vimeo\.com\/(\d+)(?:\/([a-zA-Z0-9]+))?(?:\?[^\s]*)?$/, + embedUrl: + 'https://player.vimeo.com/video/<%= remote_id %>', html: ``, - id: ([id]) => id, + id: ([id, hash]) => (hash ? `${id}?h=${hash}` : id), }, cloudflareStream: { - regex: /https:\/\/customer-[a-z0-9]+\.cloudflarestream\.com\/([a-f0-9]{32})\/watch/, + regex: /^https:\/\/customer-[a-z0-9]+\.cloudflarestream\.com\/([a-f0-9]{32})\/watch$/, embedUrl: 'https://iframe.videodelivery.net/<%= remote_id %>', html: ``, }, bunnyStream: { - regex: /https:\/\/(?:iframe\.mediadelivery\.net|video\.bunnycdn\.com)\/play\/([a-zA-Z0-9]+\/[a-zA-Z0-9-]+)/, + regex: /^https:\/\/(?:iframe\.mediadelivery\.net|video\.bunnycdn\.com)\/play\/([a-zA-Z0-9]+\/[a-zA-Z0-9-]+)$/, embedUrl: 'https://iframe.mediadelivery.net/embed/<%= remote_id %>', html: `