Class: Yt::Playlist

Inherits:
Resource show all
Defined in:
lib/yt/playlist.rb

Overview

Provides methods to interact with YouTube playlists.

Instance Attribute Summary collapse

Attributes inherited from Resource

#data

Instance Method Summary collapse

Methods inherited from Resource

#id, #initialize, #inspect, #select, where

Constructor Details

This class inherits a constructor from Yt::Resource

Instance Attribute Details

#channel_idString (readonly)



23
# File 'lib/yt/playlist.rb', line 23

has_attribute :channel_id, in: :snippet

#channel_titleString (readonly)



27
# File 'lib/yt/playlist.rb', line 27

has_attribute :channel_title, in: :snippet

#descriptionString (readonly)



# File 'lib/yt/playlist.rb', line 9


#item_count<Integer> (readonly)



40
# File 'lib/yt/playlist.rb', line 40

has_attribute :item_count, in: :content_details, type: Integer

#privacy_statusString (readonly)



36
# File 'lib/yt/playlist.rb', line 36

has_attribute :privacy_status, in: :status

#published_atTime (readonly)



15
# File 'lib/yt/playlist.rb', line 15

has_attribute :published_at, in: :snippet, type: Time

#thumbnailsHash<String, Hash> (readonly)



19
# File 'lib/yt/playlist.rb', line 19

has_attribute :thumbnails, in: :snippet

#titleString (readonly)



7
# File 'lib/yt/playlist.rb', line 7

has_attribute :title, in: :snippet

Instance Method Details

#canonical_urlString



55
56
57
# File 'lib/yt/playlist.rb', line 55

def canonical_url
  "https://www.youtube.com/playlist?list=#{id}"
end

#itemsYt::Relation<Yt::PlaylistItem>



60
61
62
63
64
# File 'lib/yt/playlist.rb', line 60

def items
  @items ||= Relation.new(PlaylistItem, playlist_id: id) do |options|
    get '/youtube/v3/playlistItems', playlist_items_params(options)
  end
end

#thumbnail_url(size = :default) ⇒ String?

Returns the URL of the playlist’s thumbnail.



50
51
52
# File 'lib/yt/playlist.rb', line 50

def thumbnail_url(size = :default)
  thumbnails.fetch(size.to_s, {})['url']
end

#videosYt::Relation<Yt::Video>



67
68
69
70
71
72
73
# File 'lib/yt/playlist.rb', line 67

def videos
  @videos ||= Relation.new(Video, playlist_id: id) do |options|
    params = playlist_items_params(options.merge parts: [:content_details])
    items = get '/youtube/v3/playlistItems', params
    videos_for items, 'contentDetails', options
  end
end