diff --git a/app/services/video/provider/youtube.rb b/app/services/video/provider/youtube.rb
index a47933fbf3113af0275593c920ccb1d1defa5ff5..4b1d9494934dc816d2b790aad71399f226111469 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