如何在rails中处理youtube的缩略图?

时间:2012-12-30 01:36:12

标签: ruby-on-rails ruby-on-rails-3 youtube

如果用户在体内输入youtube url并保存记录, 我想在视图中显示缩略图。

有什么好的技巧吗?还是好宝石?

在网址中输入的样本:

http://www.youtube.com/watch?v=qrO4YZeyl0I

3 个答案:

答案 0 :(得分:7)

您是否正在从网址解析视频ID代码?即在你的例子中,它是qrO4YZeyl0I

一旦你拥有了它,你就可以随心所欲地做任何事情。每个视频都会生成四个缩略图。

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

有关详细信息,请参阅此答案 - How do I get a YouTube video thumbnail from the YouTube API?

答案 1 :(得分:3)

您可以解析网址,并在保存模型之前从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 %>

答案 2 :(得分:3)

我最近需要youtube缩略图,所以只需要更新。目前网址看起来像:

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