Class: YoutubeVideo::Video
- Inherits:
-
Object
- Object
- YoutubeVideo::Video
- Defined in:
- lib/YPBT/video.rb
Overview
Main class to setup a Video
Instance Attribute Summary collapse
-
#channel_id ⇒ Object
readonly
Returns the value of attribute channel_id.
-
#comment_count ⇒ Object
readonly
Returns the value of attribute comment_count.
-
#description ⇒ Object
readonly
Returns the value of attribute description.
-
#dislike_count ⇒ Object
readonly
Returns the value of attribute dislike_count.
-
#duration ⇒ Object
readonly
Returns the value of attribute duration.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#like_count ⇒ Object
readonly
Returns the value of attribute like_count.
-
#title ⇒ Object
readonly
Returns the value of attribute title.
-
#view_count ⇒ Object
readonly
Returns the value of attribute view_count.
Class Method Summary collapse
Instance Method Summary collapse
- #channel_description ⇒ Object
- #channel_image_url ⇒ Object
- #channel_title ⇒ Object
- #comments ⇒ Object
- #embed_url ⇒ Object
-
#initialize(data:) ⇒ Video
constructor
A new instance of Video.
Constructor Details
#initialize(data:) ⇒ Video
Returns a new instance of Video.
11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/YPBT/video.rb', line 11 def initialize(data:) @id = data['id'] @title = data['snippet']['title'] @channel_id = data['snippet']['channelId'] @description = data['snippet']['description'] @dislike_count = data['statistics']['dislikeCount'].to_i @like_count = data['statistics']['likeCount'].to_i @view_count = data['statistics']['viewCount'].to_i @duration = data['contentDetails']['duration'] @is_channel = false end |
Instance Attribute Details
#channel_id ⇒ Object (readonly)
Returns the value of attribute channel_id.
8 9 10 |
# File 'lib/YPBT/video.rb', line 8 def channel_id @channel_id end |
#comment_count ⇒ Object (readonly)
Returns the value of attribute comment_count.
8 9 10 |
# File 'lib/YPBT/video.rb', line 8 def comment_count @comment_count end |
#description ⇒ Object (readonly)
Returns the value of attribute description.
8 9 10 |
# File 'lib/YPBT/video.rb', line 8 def description @description end |
#dislike_count ⇒ Object (readonly)
Returns the value of attribute dislike_count.
8 9 10 |
# File 'lib/YPBT/video.rb', line 8 def dislike_count @dislike_count end |
#duration ⇒ Object (readonly)
Returns the value of attribute duration.
8 9 10 |
# File 'lib/YPBT/video.rb', line 8 def duration @duration end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
8 9 10 |
# File 'lib/YPBT/video.rb', line 8 def id @id end |
#like_count ⇒ Object (readonly)
Returns the value of attribute like_count.
8 9 10 |
# File 'lib/YPBT/video.rb', line 8 def like_count @like_count end |
#title ⇒ Object (readonly)
Returns the value of attribute title.
8 9 10 |
# File 'lib/YPBT/video.rb', line 8 def title @title end |
#view_count ⇒ Object (readonly)
Returns the value of attribute view_count.
8 9 10 |
# File 'lib/YPBT/video.rb', line 8 def view_count @view_count end |
Class Method Details
.find(video_id:) ⇒ Object
50 51 52 53 |
# File 'lib/YPBT/video.rb', line 50 def self.find(video_id:) video_data = YtApi.video_info(video_id) new(data: video_data) if video_data end |
Instance Method Details
#channel_description ⇒ Object
40 41 42 43 |
# File 'lib/YPBT/video.rb', line 40 def channel_description load_channel_info unless @is_channel @channel_description end |
#channel_image_url ⇒ Object
35 36 37 38 |
# File 'lib/YPBT/video.rb', line 35 def channel_image_url load_channel_info unless @is_channel @channel_image_url end |
#channel_title ⇒ Object
30 31 32 33 |
# File 'lib/YPBT/video.rb', line 30 def channel_title load_channel_info unless @is_channel @channel_title end |
#comments ⇒ Object
23 24 25 26 27 28 |
# File 'lib/YPBT/video.rb', line 23 def comments # contain only the comments which have time tag. return @comments if @comments raw_comments = YtApi.(@id) @comments = raw_comments.map { |comment| Comment.new(data: comment) } end |
#embed_url ⇒ Object
45 46 47 48 |
# File 'lib/YPBT/video.rb', line 45 def return if = "https://www.youtube.com/embed/#{@id}" end |