ユーザーが本文にyoutubeurlと入力してレコードを保存する場合、サムネイルを表示したいと思います。
良いテクニックはありますか?またはそのための良い宝石?
URLで入力されたサンプル:
http://www.youtube.com/watch?v=qrO4YZeyl0I
ユーザーが本文にyoutubeurlと入力してレコードを保存する場合、サムネイルを表示したいと思います。
良いテクニックはありますか?またはそのための良い宝石?
URLで入力されたサンプル:
http://www.youtube.com/watch?v=qrO4YZeyl0I
URLからビデオIDコードを解析していますか?つまり、あなたの例ではそうなるでしょうqrO4YZeyl0I
。
これを手に入れたら、それを使ってやりたいことが何でもできます。ビデオごとに4つのサムネイルが生成されます。
http://img.youtube.com/vi/qrO4YZeyl0I/0.jpg
http://img.youtube.com/vi/qrO4YZeyl0I/1.jpg
http://img.youtube.com/vi/qrO4YZeyl0I/2.jpg
http://img.youtube.com/vi/qrO4YZeyl0I/3.jpg
ビデオのデフォルトのサムネイルを選択するには、次のようにします。
http://img.youtube.com/vi/qrO4YZeyl0I/default.jpg
詳細については、この回答を参照してください-YouTube APIからYouTubeビデオのサムネイルを取得するにはどうすればよいですか?
最近YouTubeのサムネイルが必要だったので、更新しました。現在、URLは次のようになっています。
http://i1.ytimg.com/vi/video_id/default.jpg
http://i1.ytimg.com/vi/video_id/mqdefault.jpg
http://i1.ytimg.com/vi/video_id/hqdefault.jpg
http://i1.ytimg.com/vi/video_id/sddefault.jpg
http://i1.ytimg.com/vi/video_id/1.jpg
http://i1.ytimg.com/vi/video_id/2.jpg
http://i1.ytimg.com/vi/video_id/3.jpg
モデルを保存する前に、URLを解析し、YouTubeからサムネイルを取得できます。
Gemfile:
gem 'youtube_it'
モデル:
before_save :get_youtube_thumbnail
def get_youtube_thumbnail
url = extract_url_from_body
unless url.blank?
client = YouTubeIt::Client.new
response = client.video_by(url)
self.thumbnail = response.thumbnails.first.url
end
end
def extract_url_from_body
URI.extract(body).first
end
意見:
<%= image_tag model.thumbnail, alt: model.title %>