Sha256: e7a83f1fd54709fb3bea5e6cfd56fc357c884a118f5bdeb470dc2f08fc948486

Contents?: true

Size: 1.08 KB

Versions: 1

Compression:

Stored size: 1.08 KB

Contents

class VideoInfo
  module YoutubePlaylistAPI
    def description
      data['items'][0]['snippet']['description']
    end

    def date
      nil
    end

    def duration
      nil
    end

    def videos
      _playlist_video_ids.map do |entry_id|
        VideoInfo.new("http://www.youtube.com/watch?v=#{entry_id}")
      end
    end

    def view_count
      nil
    end

    private

    def _playlist_entry
      data['items']
    end

    def _playlist_items
      data['items']
    end

    def _api_path
      "/youtube/v3/playlists?part=snippet&id=#{playlist_id}&key=#{api_key}"
    end

    def _playlist_items_api_path
      "/youtube/v3/playlistItems?part=snippet&playlistId=#{playlist_id}&fields=items&key=#{api_key}"
    end

    def _playlist_items_api_url
      "https://#{_api_base}#{_playlist_items_api_path}"
    end

    def _playlist_items_data
      @playlist_items_data ||= _set_data_from_api(_playlist_items_api_url)
    end

    def _playlist_video_ids
      _playlist_items_data['items'].map do |item|
        item['snippet']['resourceId']['videoId']
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
video_info-2.5.0 lib/video_info/providers/youtubeplaylist_api.rb