如果用户在正文中键入 youtube url 并保存记录,我想在视图中显示其缩略图。
有什么好的技巧吗?还是好的宝石?
输入网址的示例:
http://www.youtube.com/watch?v=qrO4YZeyl0I
如果用户在正文中键入 youtube 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 缩略图,所以只是更新。目前的网址看起来像:
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 获取缩略图:
宝石文件:
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 %>