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



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

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

示例输入url:

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

是否从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视频缩略图?

我最近需要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 %>

相关内容

  • 没有找到相关文章

最新更新