如何在RubyonRails中显示vimeo和youtube嵌入链接的缩略图?

如何在RubyonRails中显示vimeo和youtube嵌入链接的缩略图?,youtube,ruby-on-rails-3.2,vimeo,Youtube,Ruby On Rails 3.2,Vimeo,我在我的网站中嵌入了youtube和vimeo链接,并试图在点击时显示视频的缩略图作为播放链接 我试过gem“has_vimeo_video”,但它只接受vimeo视频。所以我想展示两个视频的缩略图,即youtube和vimeo 请需要解决方案 谢谢我昨天发现有一个非常酷的。它基本上就是你想要的 Carrierwave的拇指钉插件。它混合到您的上传设置,使您上传的视频容易缩略图。这个软件现在已经相当成熟了,所以任何形式的开源协作都是受欢迎的 但您当然需要在应用程序中包含carrierwave。希

我在我的网站中嵌入了youtube和vimeo链接,并试图在点击时显示视频的缩略图作为播放链接

我试过gem“has_vimeo_video”,但它只接受vimeo视频。所以我想展示两个视频的缩略图,即youtube和vimeo

请需要解决方案


谢谢

我昨天发现有一个非常酷的。它基本上就是你想要的

Carrierwave的拇指钉插件。它混合到您的上传设置,使您上传的视频容易缩略图。这个软件现在已经相当成熟了,所以任何形式的开源协作都是受欢迎的

但您当然需要在应用程序中包含carrierwave。希望这能有所帮助

Carreierwave是一个上传程序,它可以让用户上传应用程序中的内容,我认为

更新

或者,您可以使用它将嵌入式媒体添加到应用程序中。可以看出,API提供了很多响应选项。在这样做的过程中,您可以执行以下操作:

$.embedly('http://www.youtube.com/watch?v=_FE194VN6c4',
           {maxWidth: 600,
               elems: $('#element'),
             success: function(oembed, dict){
                        alert(oembed.title);
                      });
elems属性是您希望嵌入视频的位置,以便在粘贴链接时嵌入视频。您需要传递视频url,并使用jQuery选择器从将url放入html的任何位置获取它


您的另一个选择是查看以下gem

视频信息gem非常适合抓取缩略图:


这么简单的任务,你不需要任何宝石

url='1〕https://vimeo.com/126100721'
id=url.partition('vimeo.com/')。最后
结果=URI.open(“http://vimeo.com/api/v2/video/#{id}.json”).read
开始
parse(result).first['thumbnail\u large']
救援标准错误
无
结束

在“/app/helper”中添加一个新文件“thumbnail\u helper.rb”。在该文件中复制并粘贴以下代码:

module ThumbnailHelper

  # Regex to find YouTube's and Vimeo's video ID
  YOUTUBE_REGEX = %r(^(http[s]*:\/\/)?(www.)?(youtube.com|youtu.be)\/(watch\?v=){0,1}([a-zA-Z0-9_-]{11}))
  VIMEO_REGEX = %r(^https?:\/\/(?:.*?)\.?(vimeo)\.com\/(\d+).*$)

  # Finds YouTube's video ID from given URL or [nil] if URL is invalid
  # The video ID matches the RegEx \[a-zA-Z0-9_-]{11}\
  def find_youtube_id url
    url = sanitize url
    matches = YOUTUBE_REGEX.match url.to_str
    if matches
      matches[6] || matches[5]
    end
  end

  # Finds youtube video thumbnail
  def get_youtube_thumbnail url
    youtube_id = find_youtube_id url
    result = "http://img.youtube.com/vi/#{youtube_id}/0.jpg"
  end

  # Finds Vimeo's video ID from given URL or [nil] if URL is invalid
  def find_vimeo_id url
    url = sanitize url
    matches = VIMEO_REGEX.match url.to_str
    matches[2] if matches
  end

  # Finds vimeo video thumbnail
  def get_vimeo_thumbnail url
    vimeo_id = find_vimeo_id url
    result = URI.open("http://vimeo.com/api/v2/video/#{vimeo_id}.json").read
    begin
      JSON.parse(result).first['thumbnail_large']
    rescue StandardError
      nil
    end
  end

  # Main function
  # Return a video thumbnail
  # If the url provided is not a valid YouTube or Vimeo url it returns [nil]
  def get_video_thumbnail(url)
    if find_vimeo_id(url)
        get_vimeo_thumbnail(url)
    elsif find_youtube_id(url)
        get_youtube_thumbnail(url)
    end
  end
end

现在从视图中调用get_video_缩略图(“video_url”)。它将返回给定视频的缩略图。

因为我只是嵌入链接并将vimeo和youtube链接保存到我的数据库中,然后想显示缩略图并播放这些视频,所以它是carrierwave为嵌入链接制作缩略图吗?