From 86300a0ca85f3133f7a5f0d1bc9ad5d99a8b680d Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 7 May 2021 07:37:27 +0300 Subject: [PATCH] add urlhelper to extract youtube video id from url --- classes/urlhelper.php | 22 ++++++++++++++++++++++ plugins/af_youtube_embed/init.php | 12 +++++------- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/classes/urlhelper.php b/classes/urlhelper.php index 46d80a0e6..edfb2ad73 100644 --- a/classes/urlhelper.php +++ b/classes/urlhelper.php @@ -487,4 +487,26 @@ class UrlHelper { } } + public static function url_to_youtube_vid($url) { + $url = str_replace("youtube.com", "youtube-nocookie.com", $url); + + $regexps = [ + "/\/\/www\.youtube-nocookie\.com\/v\/([\w-]+)/", + "/\/\/www\.youtube-nocookie\.com\/embed\/([\w-]+)/", + "/\/\/www\.youtube-nocookie\.com\/watch?v=([\w-]+)/", + "/\/\/youtu.be\/([\w-]+)/", + ]; + + foreach ($regexps as $re) { + $matches = []; + + if (preg_match($re, $url, $matches)) { + return $matches[1]; + } + } + + return false; + } + + } diff --git a/plugins/af_youtube_embed/init.php b/plugins/af_youtube_embed/init.php index 95ab0b9d5..72d25a826 100644 --- a/plugins/af_youtube_embed/init.php +++ b/plugins/af_youtube_embed/init.php @@ -16,18 +16,16 @@ class Af_Youtube_Embed extends Plugin { } function hook_iframe_whitelisted($src) { - return in_array($src, ["www.youtube.com", "youtube.com", "youtu.be"]); + return in_array($src, ["www.youtube.com", "youtube.com", + "www.youtube-nocookie.com", "youtube-nocookie.com", + "youtu.be"]); } function hook_render_enclosure($entry, $hide_images) { - $matches = array(); + $url = $entry["content_url"]; - if (preg_match("/\/\/www\.youtube\.com\/v\/([\w-]+)/", $entry["content_url"], $matches) || - preg_match("/\/\/www\.youtube\.com\/watch?v=([\w-]+)/", $entry["content_url"], $matches) || - preg_match("/\/\/youtu.be\/([\w-]+)/", $entry["content_url"], $matches)) { - - $vid_id = $matches[1]; + if ($vid_id = UrlHelper::url_to_youtube_vid($url)) { return "