From 7b54220529725bbf2b0303ae0dfd0fed3c4e4324 Mon Sep 17 00:00:00 2001
From: Arnaud Levy <contact@arnaudlevy.com>
Date: Wed, 11 Oct 2023 10:30:04 +0200
Subject: [PATCH] done

---
 app/services/video/provider/youtube.rb | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/app/services/video/provider/youtube.rb b/app/services/video/provider/youtube.rb
index a47933fbf..4b1d94949 100644
--- a/app/services/video/provider/youtube.rb
+++ b/app/services/video/provider/youtube.rb
@@ -2,8 +2,8 @@ class Video::Provider::Youtube < Video::Provider::Default
   DOMAINS = ['youtube.com', 'youtu.be']
 
   def identifier
-    video_url.include?('youtu.be')  ? video_url.split('youtu.be/').last
-                                    : video_url.split('v=').last
+    video_url.include?('youtu.be')  ? identifier_path
+                                    : identifier_param
   end
 
   # https://img.youtube.com/vi/XEEUOiTgJL0/hqdefault.jpg
@@ -15,4 +15,16 @@ class Video::Provider::Youtube < Video::Provider::Default
   def iframe_url
     "https://www.youtube.com/embed/#{identifier}"
   end
+
+  protected
+
+  def identifier_path
+    video_url.split('youtu.be/').last
+  end
+
+  def identifier_param
+    uri = URI(video_url)
+    params = CGI::parse(uri.query)
+    params['v'].first
+  end
 end
-- 
GitLab