2

如果用户在正文中键入 youtube url 并保存记录,我想在视图中显示其缩略图。

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

输入网址的示例:

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

3 回答 3

8

您是否从 URL 解析视频 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

有关更多详细信息,请参阅此答案 -如何从 YouTube API 获取 YouTube 视频缩略图?

于 2012-12-30T02:51:20.427 回答
4

我最近需要 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
于 2014-01-05T20:39:31.363 回答
3

您可以解析 url,并在保存模型之前从 youtube 获取缩略图:

宝石文件:

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 %>
于 2012-12-30T02:49:55.310 回答