【问题标题】:How can I handle youtube's thumbnail in rails?如何在 Rails 中处理 youtube 的缩略图?
【发布时间】:2014-01-06 04:39:31
【问题描述】:

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

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

输入网址的示例:

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

【问题讨论】:

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


    【解决方案1】:

    您是否从 URL 解析视频 ID 代码? IE。在你的例子中它是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?

    【讨论】:

    • 啊,太好了,不知道有没有更简单的方法来获取缩略图:)
    【解决方案2】:

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

    【讨论】:

      【解决方案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 %>
      

      【讨论】:

      • @MKK,您可以将get_youtube_thumbnail 与@Jonny 的答案结合使用。这要快得多,因为没有请求 youtube 获取缩略图。
      • 对于 Vimeo,您可以查找 gem 'vimeo'
      猜你喜欢
      • 1970-01-01
      • 2013-09-11
      • 1970-01-01
      • 1970-01-01
      • 2016-03-26
      • 2015-11-30
      • 2016-04-18
      • 2017-02-11
      • 1970-01-01
      相关资源
      最近更新 更多