Sha256: 02cf1bc05e933cfce9be2394cd7a565ed36391dc7bd8dd800e8c8c7dc855e641

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

require_relative 'youtubeplaylist_api'
require_relative 'youtubeplaylist_scraper'

class VideoInfo
  module Providers
    class YoutubePlaylist < Youtube
      alias_method :playlist_id, :video_id
      attr_accessor :playlist_items_data

      def initialize(url, options = {})
        super(url, options)

        if VideoInfo.provider_api_keys[:youtube].nil?
          extend YoutubePlaylistScraper
        else
          extend YoutubePlaylistAPI
        end
      end

      def self.usable?(url)
        url =~ /((youtube\.com)\/playlist)|((youtube\.com)\/embed\/videoseries)/
      end

      def date
        nil
      end

      def duration
        nil
      end

      def keywords
        nil
      end

      def view_count
        nil
      end

      def embed_url
        "//www.youtube.com/embed/videoseries?list=#{playlist_id}"
      end

      %w[date keywords duration view_count].each do |method|
        define_method(method) { nil }
      end

      private

      def _url_regex
        /youtube.com\/playlist\?p=(\S*)|youtube.com\/playlist\?list=(\S*)|youtube.com\/embed\/videoseries\?list=([a-zA-Z0-9-]*)/
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
video_info-2.6.0 lib/video_info/providers/youtubeplaylist.rb