如果用户在体内输入youtube url并保存记录, 我想在视图中显示缩略图。
有什么好的技巧吗?还是好宝石?
在网址中输入的样本:
http://www.youtube.com/watch?v=qrO4YZeyl0I
答案 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