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