Sha256: 87e23f9f91a8786c55b658636b3610c3194abf9b26b6c34d72c77094a5e7a960

Contents?: true

Size: 1.32 KB

Versions: 1

Compression:

Stored size: 1.32 KB

Contents

class VideoInfo
  module Providers
    class Vimeo < Provider

      def self.usable?(url)
        url =~ /(vimeo\.com\/(?!album|hubnut\/album).*)/
      end

      def provider
        'Vimeo'
      end

      %w[title description thumbnail_small thumbnail_medium thumbnail_large].each do |method|
        define_method(method) { _video[method] }
      end

      %w[duration width height].each do |method|
        define_method(method) { _video[method].to_i }
      end

      def keywords
        _video['tags']
      end

      def embed_url
        "//player.vimeo.com/video/#{video_id}"
      end

      def date
        Time.parse(_video['upload_date'], Time.now.utc).utc
      end

      def view_count
        _video['stats_number_of_plays'].to_i
      end

      private

      def _video
        data && data.first
      end

      def _url_regex
        /.*\.com\/(?:(?:groups\/[^\/]+\/videos\/)|(?:video\/))?([0-9]+).*$/i
      end

      def _api_base
        "vimeo.com"
      end

      def _api_path
        "/api/v2/video/#{video_id}.json"
      end

      def _api_url
        "http://#{_api_base}#{_api_path}"
      end

      def _default_iframe_attributes
        {}
      end

      def _default_url_attributes
        { title: 0,
          byline: 0,
          portrait: 0,
          autoplay: 0 }
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
video_info-2.3.1 lib/video_info/providers/vimeo.rb