google-api-ruby-client/generated/google/apis/youtube_v3/classes.rb

8775 lines
346 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Copyright 2015 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
require 'date'
require 'google/apis/core/base_service'
require 'google/apis/core/json_representation'
require 'google/apis/core/hashable'
require 'google/apis/errors'
module Google
module Apis
module YoutubeV3
#
class AbuseReport
include Google::Apis::Core::Hashable
#
# Corresponds to the JSON property `abuseTypes`
# @return [Array<Google::Apis::YoutubeV3::AbuseType>]
attr_accessor :abuse_types
#
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
#
# Corresponds to the JSON property `relatedEntities`
# @return [Array<Google::Apis::YoutubeV3::RelatedEntity>]
attr_accessor :related_entities
#
# Corresponds to the JSON property `subject`
# @return [Google::Apis::YoutubeV3::Entity]
attr_accessor :subject
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@abuse_types = args[:abuse_types] if args.key?(:abuse_types)
@description = args[:description] if args.key?(:description)
@related_entities = args[:related_entities] if args.key?(:related_entities)
@subject = args[:subject] if args.key?(:subject)
end
end
#
class AbuseType
include Google::Apis::Core::Hashable
#
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@id = args[:id] if args.key?(:id)
end
end
# Rights management policy for YouTube resources.
class AccessPolicy
include Google::Apis::Core::Hashable
# The value of allowed indicates whether the access to the policy is allowed or
# denied by default.
# Corresponds to the JSON property `allowed`
# @return [Boolean]
attr_accessor :allowed
alias_method :allowed?, :allowed
# A list of region codes that identify countries where the default policy do not
# apply.
# Corresponds to the JSON property `exception`
# @return [Array<String>]
attr_accessor :exception
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@allowed = args[:allowed] if args.key?(:allowed)
@exception = args[:exception] if args.key?(:exception)
end
end
# An *activity* resource contains information about an action that a particular
# channel, or user, has taken on YouTube.The actions reported in activity feeds
# include rating a video, sharing a video, marking a video as a favorite,
# commenting on a video, uploading a video, and so forth. Each activity resource
# identifies the type of action, the channel associated with the action, and the
# resource(s) associated with the action, such as the video that was rated or
# uploaded.
class Activity
include Google::Apis::Core::Hashable
# Details about the content of an activity: the video that was shared, the
# channel that was subscribed to, etc.
# Corresponds to the JSON property `contentDetails`
# @return [Google::Apis::YoutubeV3::ActivityContentDetails]
attr_accessor :content_details
# Etag of this resource
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube uses to uniquely identify the activity.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# activity".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# Basic details about an activity, including title, description, thumbnails,
# activity type and group. Next ID: 12
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::ActivitySnippet]
attr_accessor :snippet
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@content_details = args[:content_details] if args.key?(:content_details)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
end
end
# Details about the content of an activity: the video that was shared, the
# channel that was subscribed to, etc.
class ActivityContentDetails
include Google::Apis::Core::Hashable
# Details about a channel bulletin post.
# Corresponds to the JSON property `bulletin`
# @return [Google::Apis::YoutubeV3::ActivityContentDetailsBulletin]
attr_accessor :bulletin
# Details about a resource which was added to a channel.
# Corresponds to the JSON property `channelItem`
# @return [Google::Apis::YoutubeV3::ActivityContentDetailsChannelItem]
attr_accessor :channel_item
# Information about a resource that received a comment.
# Corresponds to the JSON property `comment`
# @return [Google::Apis::YoutubeV3::ActivityContentDetailsComment]
attr_accessor :comment
# Information about a video that was marked as a favorite video.
# Corresponds to the JSON property `favorite`
# @return [Google::Apis::YoutubeV3::ActivityContentDetailsFavorite]
attr_accessor :favorite
# Information about a resource that received a positive (like) rating.
# Corresponds to the JSON property `like`
# @return [Google::Apis::YoutubeV3::ActivityContentDetailsLike]
attr_accessor :like
# Information about a new playlist item.
# Corresponds to the JSON property `playlistItem`
# @return [Google::Apis::YoutubeV3::ActivityContentDetailsPlaylistItem]
attr_accessor :playlist_item
# Details about a resource which is being promoted.
# Corresponds to the JSON property `promotedItem`
# @return [Google::Apis::YoutubeV3::ActivityContentDetailsPromotedItem]
attr_accessor :promoted_item
# Information that identifies the recommended resource.
# Corresponds to the JSON property `recommendation`
# @return [Google::Apis::YoutubeV3::ActivityContentDetailsRecommendation]
attr_accessor :recommendation
# Details about a social network post.
# Corresponds to the JSON property `social`
# @return [Google::Apis::YoutubeV3::ActivityContentDetailsSocial]
attr_accessor :social
# Information about a channel that a user subscribed to.
# Corresponds to the JSON property `subscription`
# @return [Google::Apis::YoutubeV3::ActivityContentDetailsSubscription]
attr_accessor :subscription
# Information about the uploaded video.
# Corresponds to the JSON property `upload`
# @return [Google::Apis::YoutubeV3::ActivityContentDetailsUpload]
attr_accessor :upload
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@bulletin = args[:bulletin] if args.key?(:bulletin)
@channel_item = args[:channel_item] if args.key?(:channel_item)
@comment = args[:comment] if args.key?(:comment)
@favorite = args[:favorite] if args.key?(:favorite)
@like = args[:like] if args.key?(:like)
@playlist_item = args[:playlist_item] if args.key?(:playlist_item)
@promoted_item = args[:promoted_item] if args.key?(:promoted_item)
@recommendation = args[:recommendation] if args.key?(:recommendation)
@social = args[:social] if args.key?(:social)
@subscription = args[:subscription] if args.key?(:subscription)
@upload = args[:upload] if args.key?(:upload)
end
end
# Details about a channel bulletin post.
class ActivityContentDetailsBulletin
include Google::Apis::Core::Hashable
# A resource id is a generic reference that points to another YouTube resource.
# Corresponds to the JSON property `resourceId`
# @return [Google::Apis::YoutubeV3::ResourceId]
attr_accessor :resource_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@resource_id = args[:resource_id] if args.key?(:resource_id)
end
end
# Details about a resource which was added to a channel.
class ActivityContentDetailsChannelItem
include Google::Apis::Core::Hashable
# A resource id is a generic reference that points to another YouTube resource.
# Corresponds to the JSON property `resourceId`
# @return [Google::Apis::YoutubeV3::ResourceId]
attr_accessor :resource_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@resource_id = args[:resource_id] if args.key?(:resource_id)
end
end
# Information about a resource that received a comment.
class ActivityContentDetailsComment
include Google::Apis::Core::Hashable
# A resource id is a generic reference that points to another YouTube resource.
# Corresponds to the JSON property `resourceId`
# @return [Google::Apis::YoutubeV3::ResourceId]
attr_accessor :resource_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@resource_id = args[:resource_id] if args.key?(:resource_id)
end
end
# Information about a video that was marked as a favorite video.
class ActivityContentDetailsFavorite
include Google::Apis::Core::Hashable
# A resource id is a generic reference that points to another YouTube resource.
# Corresponds to the JSON property `resourceId`
# @return [Google::Apis::YoutubeV3::ResourceId]
attr_accessor :resource_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@resource_id = args[:resource_id] if args.key?(:resource_id)
end
end
# Information about a resource that received a positive (like) rating.
class ActivityContentDetailsLike
include Google::Apis::Core::Hashable
# A resource id is a generic reference that points to another YouTube resource.
# Corresponds to the JSON property `resourceId`
# @return [Google::Apis::YoutubeV3::ResourceId]
attr_accessor :resource_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@resource_id = args[:resource_id] if args.key?(:resource_id)
end
end
# Information about a new playlist item.
class ActivityContentDetailsPlaylistItem
include Google::Apis::Core::Hashable
# The value that YouTube uses to uniquely identify the playlist.
# Corresponds to the JSON property `playlistId`
# @return [String]
attr_accessor :playlist_id
# ID of the item within the playlist.
# Corresponds to the JSON property `playlistItemId`
# @return [String]
attr_accessor :playlist_item_id
# A resource id is a generic reference that points to another YouTube resource.
# Corresponds to the JSON property `resourceId`
# @return [Google::Apis::YoutubeV3::ResourceId]
attr_accessor :resource_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@playlist_id = args[:playlist_id] if args.key?(:playlist_id)
@playlist_item_id = args[:playlist_item_id] if args.key?(:playlist_item_id)
@resource_id = args[:resource_id] if args.key?(:resource_id)
end
end
# Details about a resource which is being promoted.
class ActivityContentDetailsPromotedItem
include Google::Apis::Core::Hashable
# The URL the client should fetch to request a promoted item.
# Corresponds to the JSON property `adTag`
# @return [String]
attr_accessor :ad_tag
# The URL the client should ping to indicate that the user clicked through on
# this promoted item.
# Corresponds to the JSON property `clickTrackingUrl`
# @return [String]
attr_accessor :click_tracking_url
# The URL the client should ping to indicate that the user was shown this
# promoted item.
# Corresponds to the JSON property `creativeViewUrl`
# @return [String]
attr_accessor :creative_view_url
# The type of call-to-action, a message to the user indicating action that can
# be taken.
# Corresponds to the JSON property `ctaType`
# @return [String]
attr_accessor :cta_type
# The custom call-to-action button text. If specified, it will override the
# default button text for the cta_type.
# Corresponds to the JSON property `customCtaButtonText`
# @return [String]
attr_accessor :custom_cta_button_text
# The text description to accompany the promoted item.
# Corresponds to the JSON property `descriptionText`
# @return [String]
attr_accessor :description_text
# The URL the client should direct the user to, if the user chooses to visit the
# advertiser's website.
# Corresponds to the JSON property `destinationUrl`
# @return [String]
attr_accessor :destination_url
# The list of forecasting URLs. The client should ping all of these URLs when a
# promoted item is not available, to indicate that a promoted item could have
# been shown.
# Corresponds to the JSON property `forecastingUrl`
# @return [Array<String>]
attr_accessor :forecasting_url
# The list of impression URLs. The client should ping all of these URLs to
# indicate that the user was shown this promoted item.
# Corresponds to the JSON property `impressionUrl`
# @return [Array<String>]
attr_accessor :impression_url
# The ID that YouTube uses to uniquely identify the promoted video.
# Corresponds to the JSON property `videoId`
# @return [String]
attr_accessor :video_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@ad_tag = args[:ad_tag] if args.key?(:ad_tag)
@click_tracking_url = args[:click_tracking_url] if args.key?(:click_tracking_url)
@creative_view_url = args[:creative_view_url] if args.key?(:creative_view_url)
@cta_type = args[:cta_type] if args.key?(:cta_type)
@custom_cta_button_text = args[:custom_cta_button_text] if args.key?(:custom_cta_button_text)
@description_text = args[:description_text] if args.key?(:description_text)
@destination_url = args[:destination_url] if args.key?(:destination_url)
@forecasting_url = args[:forecasting_url] if args.key?(:forecasting_url)
@impression_url = args[:impression_url] if args.key?(:impression_url)
@video_id = args[:video_id] if args.key?(:video_id)
end
end
# Information that identifies the recommended resource.
class ActivityContentDetailsRecommendation
include Google::Apis::Core::Hashable
# The reason that the resource is recommended to the user.
# Corresponds to the JSON property `reason`
# @return [String]
attr_accessor :reason
# A resource id is a generic reference that points to another YouTube resource.
# Corresponds to the JSON property `resourceId`
# @return [Google::Apis::YoutubeV3::ResourceId]
attr_accessor :resource_id
# A resource id is a generic reference that points to another YouTube resource.
# Corresponds to the JSON property `seedResourceId`
# @return [Google::Apis::YoutubeV3::ResourceId]
attr_accessor :seed_resource_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@reason = args[:reason] if args.key?(:reason)
@resource_id = args[:resource_id] if args.key?(:resource_id)
@seed_resource_id = args[:seed_resource_id] if args.key?(:seed_resource_id)
end
end
# Details about a social network post.
class ActivityContentDetailsSocial
include Google::Apis::Core::Hashable
# The author of the social network post.
# Corresponds to the JSON property `author`
# @return [String]
attr_accessor :author
# An image of the post's author.
# Corresponds to the JSON property `imageUrl`
# @return [String]
attr_accessor :image_url
# The URL of the social network post.
# Corresponds to the JSON property `referenceUrl`
# @return [String]
attr_accessor :reference_url
# A resource id is a generic reference that points to another YouTube resource.
# Corresponds to the JSON property `resourceId`
# @return [Google::Apis::YoutubeV3::ResourceId]
attr_accessor :resource_id
# The name of the social network.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@author = args[:author] if args.key?(:author)
@image_url = args[:image_url] if args.key?(:image_url)
@reference_url = args[:reference_url] if args.key?(:reference_url)
@resource_id = args[:resource_id] if args.key?(:resource_id)
@type = args[:type] if args.key?(:type)
end
end
# Information about a channel that a user subscribed to.
class ActivityContentDetailsSubscription
include Google::Apis::Core::Hashable
# A resource id is a generic reference that points to another YouTube resource.
# Corresponds to the JSON property `resourceId`
# @return [Google::Apis::YoutubeV3::ResourceId]
attr_accessor :resource_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@resource_id = args[:resource_id] if args.key?(:resource_id)
end
end
# Information about the uploaded video.
class ActivityContentDetailsUpload
include Google::Apis::Core::Hashable
# The ID that YouTube uses to uniquely identify the uploaded video.
# Corresponds to the JSON property `videoId`
# @return [String]
attr_accessor :video_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@video_id = args[:video_id] if args.key?(:video_id)
end
end
#
class ListActivitiesResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
#
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::Activity>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# activityListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The token that can be used as the value of the pageToken parameter to retrieve
# the next page in the result set.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# Paging details for lists of resources, including total number of items
# available and number of resources returned in a single page.
# Corresponds to the JSON property `pageInfo`
# @return [Google::Apis::YoutubeV3::PageInfo]
attr_accessor :page_info
# The token that can be used as the value of the pageToken parameter to retrieve
# the previous page in the result set.
# Corresponds to the JSON property `prevPageToken`
# @return [String]
attr_accessor :prev_page_token
# Stub token pagination template to suppress results.
# Corresponds to the JSON property `tokenPagination`
# @return [Google::Apis::YoutubeV3::TokenPagination]
attr_accessor :token_pagination
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@page_info = args[:page_info] if args.key?(:page_info)
@prev_page_token = args[:prev_page_token] if args.key?(:prev_page_token)
@token_pagination = args[:token_pagination] if args.key?(:token_pagination)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
# Basic details about an activity, including title, description, thumbnails,
# activity type and group. Next ID: 12
class ActivitySnippet
include Google::Apis::Core::Hashable
# The ID that YouTube uses to uniquely identify the channel associated with the
# activity.
# Corresponds to the JSON property `channelId`
# @return [String]
attr_accessor :channel_id
# Channel title for the channel responsible for this activity
# Corresponds to the JSON property `channelTitle`
# @return [String]
attr_accessor :channel_title
# The description of the resource primarily associated with the activity. @
# mutable youtube.activities.insert
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
# The group ID associated with the activity. A group ID identifies user events
# that are associated with the same user and resource. For example, if a user
# rates a video and marks the same video as a favorite, the entries for those
# events would have the same group ID in the user's activity feed. In your user
# interface, you can avoid repetition by grouping events with the same groupId
# value.
# Corresponds to the JSON property `groupId`
# @return [String]
attr_accessor :group_id
# The date and time that the video was uploaded. The value is specified in ISO
# 8601 format.
# Corresponds to the JSON property `publishedAt`
# @return [String]
attr_accessor :published_at
# Internal representation of thumbnails for a YouTube resource.
# Corresponds to the JSON property `thumbnails`
# @return [Google::Apis::YoutubeV3::ThumbnailDetails]
attr_accessor :thumbnails
# The title of the resource primarily associated with the activity.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
# The type of activity that the resource describes.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@channel_id = args[:channel_id] if args.key?(:channel_id)
@channel_title = args[:channel_title] if args.key?(:channel_title)
@description = args[:description] if args.key?(:description)
@group_id = args[:group_id] if args.key?(:group_id)
@published_at = args[:published_at] if args.key?(:published_at)
@thumbnails = args[:thumbnails] if args.key?(:thumbnails)
@title = args[:title] if args.key?(:title)
@type = args[:type] if args.key?(:type)
end
end
# A *caption* resource represents a YouTube caption track. A caption track is
# associated with exactly one YouTube video.
class Caption
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube uses to uniquely identify the caption track.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# caption".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# Basic details about a caption track, such as its language and name.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::CaptionSnippet]
attr_accessor :snippet
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
end
end
#
class ListCaptionsResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of captions that match the request criteria.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::Caption>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# captionListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
# Basic details about a caption track, such as its language and name.
class CaptionSnippet
include Google::Apis::Core::Hashable
# The type of audio track associated with the caption track.
# Corresponds to the JSON property `audioTrackType`
# @return [String]
attr_accessor :audio_track_type
# The reason that YouTube failed to process the caption track. This property is
# only present if the state property's value is failed.
# Corresponds to the JSON property `failureReason`
# @return [String]
attr_accessor :failure_reason
# Indicates whether YouTube synchronized the caption track to the audio track in
# the video. The value will be true if a sync was explicitly requested when the
# caption track was uploaded. For example, when calling the captions.insert or
# captions.update methods, you can set the sync parameter to true to instruct
# YouTube to sync the uploaded track to the video. If the value is false,
# YouTube uses the time codes in the uploaded caption track to determine when to
# display captions.
# Corresponds to the JSON property `isAutoSynced`
# @return [Boolean]
attr_accessor :is_auto_synced
alias_method :is_auto_synced?, :is_auto_synced
# Indicates whether the track contains closed captions for the deaf and hard of
# hearing. The default value is false.
# Corresponds to the JSON property `isCC`
# @return [Boolean]
attr_accessor :is_cc
alias_method :is_cc?, :is_cc
# Indicates whether the caption track is a draft. If the value is true, then the
# track is not publicly visible. The default value is false. @mutable youtube.
# captions.insert youtube.captions.update
# Corresponds to the JSON property `isDraft`
# @return [Boolean]
attr_accessor :is_draft
alias_method :is_draft?, :is_draft
# Indicates whether caption track is formatted for "easy reader," meaning it is
# at a third-grade level for language learners. The default value is false.
# Corresponds to the JSON property `isEasyReader`
# @return [Boolean]
attr_accessor :is_easy_reader
alias_method :is_easy_reader?, :is_easy_reader
# Indicates whether the caption track uses large text for the vision-impaired.
# The default value is false.
# Corresponds to the JSON property `isLarge`
# @return [Boolean]
attr_accessor :is_large
alias_method :is_large?, :is_large
# The language of the caption track. The property value is a BCP-47 language tag.
# Corresponds to the JSON property `language`
# @return [String]
attr_accessor :language
# The date and time when the caption track was last updated. The value is
# specified in ISO 8601 format.
# Corresponds to the JSON property `lastUpdated`
# @return [String]
attr_accessor :last_updated
# The name of the caption track. The name is intended to be visible to the user
# as an option during playback.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# The caption track's status.
# Corresponds to the JSON property `status`
# @return [String]
attr_accessor :status
# The caption track's type.
# Corresponds to the JSON property `trackKind`
# @return [String]
attr_accessor :track_kind
# The ID that YouTube uses to uniquely identify the video associated with the
# caption track. @mutable youtube.captions.insert
# Corresponds to the JSON property `videoId`
# @return [String]
attr_accessor :video_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@audio_track_type = args[:audio_track_type] if args.key?(:audio_track_type)
@failure_reason = args[:failure_reason] if args.key?(:failure_reason)
@is_auto_synced = args[:is_auto_synced] if args.key?(:is_auto_synced)
@is_cc = args[:is_cc] if args.key?(:is_cc)
@is_draft = args[:is_draft] if args.key?(:is_draft)
@is_easy_reader = args[:is_easy_reader] if args.key?(:is_easy_reader)
@is_large = args[:is_large] if args.key?(:is_large)
@language = args[:language] if args.key?(:language)
@last_updated = args[:last_updated] if args.key?(:last_updated)
@name = args[:name] if args.key?(:name)
@status = args[:status] if args.key?(:status)
@track_kind = args[:track_kind] if args.key?(:track_kind)
@video_id = args[:video_id] if args.key?(:video_id)
end
end
# Brief description of the live stream cdn settings.
class CdnSettings
include Google::Apis::Core::Hashable
# The format of the video stream that you are sending to Youtube.
# Corresponds to the JSON property `format`
# @return [String]
attr_accessor :format
# The frame rate of the inbound video data.
# Corresponds to the JSON property `frameRate`
# @return [String]
attr_accessor :frame_rate
# Describes information necessary for ingesting an RTMP or an HTTP stream.
# Corresponds to the JSON property `ingestionInfo`
# @return [Google::Apis::YoutubeV3::IngestionInfo]
attr_accessor :ingestion_info
# The method or protocol used to transmit the video stream.
# Corresponds to the JSON property `ingestionType`
# @return [String]
attr_accessor :ingestion_type
# The resolution of the inbound video data.
# Corresponds to the JSON property `resolution`
# @return [String]
attr_accessor :resolution
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@format = args[:format] if args.key?(:format)
@frame_rate = args[:frame_rate] if args.key?(:frame_rate)
@ingestion_info = args[:ingestion_info] if args.key?(:ingestion_info)
@ingestion_type = args[:ingestion_type] if args.key?(:ingestion_type)
@resolution = args[:resolution] if args.key?(:resolution)
end
end
# A *channel* resource contains information about a YouTube channel.
class Channel
include Google::Apis::Core::Hashable
# The auditDetails object encapsulates channel data that is relevant for YouTube
# Partners during the audit process.
# Corresponds to the JSON property `auditDetails`
# @return [Google::Apis::YoutubeV3::ChannelAuditDetails]
attr_accessor :audit_details
# Branding properties of a YouTube channel.
# Corresponds to the JSON property `brandingSettings`
# @return [Google::Apis::YoutubeV3::ChannelBrandingSettings]
attr_accessor :branding_settings
# Details about the content of a channel.
# Corresponds to the JSON property `contentDetails`
# @return [Google::Apis::YoutubeV3::ChannelContentDetails]
attr_accessor :content_details
# The contentOwnerDetails object encapsulates channel data that is relevant for
# YouTube Partners linked with the channel.
# Corresponds to the JSON property `contentOwnerDetails`
# @return [Google::Apis::YoutubeV3::ChannelContentOwnerDetails]
attr_accessor :content_owner_details
# The conversionPings object encapsulates information about conversion pings
# that need to be respected by the channel.
# Corresponds to the JSON property `conversionPings`
# @return [Google::Apis::YoutubeV3::ChannelConversionPings]
attr_accessor :conversion_pings
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube uses to uniquely identify the channel.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# channel".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# Localizations for different languages
# Corresponds to the JSON property `localizations`
# @return [Hash<String,Google::Apis::YoutubeV3::ChannelLocalization>]
attr_accessor :localizations
# Basic details about a channel, including title, description and thumbnails.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::ChannelSnippet]
attr_accessor :snippet
# Statistics about a channel: number of subscribers, number of videos in the
# channel, etc.
# Corresponds to the JSON property `statistics`
# @return [Google::Apis::YoutubeV3::ChannelStatistics]
attr_accessor :statistics
# JSON template for the status part of a channel.
# Corresponds to the JSON property `status`
# @return [Google::Apis::YoutubeV3::ChannelStatus]
attr_accessor :status
# Freebase topic information related to the channel.
# Corresponds to the JSON property `topicDetails`
# @return [Google::Apis::YoutubeV3::ChannelTopicDetails]
attr_accessor :topic_details
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@audit_details = args[:audit_details] if args.key?(:audit_details)
@branding_settings = args[:branding_settings] if args.key?(:branding_settings)
@content_details = args[:content_details] if args.key?(:content_details)
@content_owner_details = args[:content_owner_details] if args.key?(:content_owner_details)
@conversion_pings = args[:conversion_pings] if args.key?(:conversion_pings)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@localizations = args[:localizations] if args.key?(:localizations)
@snippet = args[:snippet] if args.key?(:snippet)
@statistics = args[:statistics] if args.key?(:statistics)
@status = args[:status] if args.key?(:status)
@topic_details = args[:topic_details] if args.key?(:topic_details)
end
end
# The auditDetails object encapsulates channel data that is relevant for YouTube
# Partners during the audit process.
class ChannelAuditDetails
include Google::Apis::Core::Hashable
# Whether or not the channel respects the community guidelines.
# Corresponds to the JSON property `communityGuidelinesGoodStanding`
# @return [Boolean]
attr_accessor :community_guidelines_good_standing
alias_method :community_guidelines_good_standing?, :community_guidelines_good_standing
# Whether or not the channel has any unresolved claims.
# Corresponds to the JSON property `contentIdClaimsGoodStanding`
# @return [Boolean]
attr_accessor :content_id_claims_good_standing
alias_method :content_id_claims_good_standing?, :content_id_claims_good_standing
# Whether or not the channel has any copyright strikes.
# Corresponds to the JSON property `copyrightStrikesGoodStanding`
# @return [Boolean]
attr_accessor :copyright_strikes_good_standing
alias_method :copyright_strikes_good_standing?, :copyright_strikes_good_standing
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@community_guidelines_good_standing = args[:community_guidelines_good_standing] if args.key?(:community_guidelines_good_standing)
@content_id_claims_good_standing = args[:content_id_claims_good_standing] if args.key?(:content_id_claims_good_standing)
@copyright_strikes_good_standing = args[:copyright_strikes_good_standing] if args.key?(:copyright_strikes_good_standing)
end
end
# A channel banner returned as the response to a channel_banner.insert call.
class ChannelBannerResource
include Google::Apis::Core::Hashable
#
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# channelBannerResource".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The URL of this banner image.
# Corresponds to the JSON property `url`
# @return [String]
attr_accessor :url
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@kind = args[:kind] if args.key?(:kind)
@url = args[:url] if args.key?(:url)
end
end
# Branding properties of a YouTube channel.
class ChannelBrandingSettings
include Google::Apis::Core::Hashable
# Branding properties for the channel view.
# Corresponds to the JSON property `channel`
# @return [Google::Apis::YoutubeV3::ChannelSettings]
attr_accessor :channel
# Additional experimental branding properties.
# Corresponds to the JSON property `hints`
# @return [Array<Google::Apis::YoutubeV3::PropertyValue>]
attr_accessor :hints
# Branding properties for images associated with the channel.
# Corresponds to the JSON property `image`
# @return [Google::Apis::YoutubeV3::ImageSettings]
attr_accessor :image
# Branding properties for the watch. All deprecated.
# Corresponds to the JSON property `watch`
# @return [Google::Apis::YoutubeV3::WatchSettings]
attr_accessor :watch
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@channel = args[:channel] if args.key?(:channel)
@hints = args[:hints] if args.key?(:hints)
@image = args[:image] if args.key?(:image)
@watch = args[:watch] if args.key?(:watch)
end
end
# Details about the content of a channel.
class ChannelContentDetails
include Google::Apis::Core::Hashable
#
# Corresponds to the JSON property `relatedPlaylists`
# @return [Google::Apis::YoutubeV3::ChannelContentDetails::RelatedPlaylists]
attr_accessor :related_playlists
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@related_playlists = args[:related_playlists] if args.key?(:related_playlists)
end
#
class RelatedPlaylists
include Google::Apis::Core::Hashable
# The ID of the playlist that contains the channel"s favorite videos. Use the
# playlistItems.insert and playlistItems.delete to add or remove items from that
# list.
# Corresponds to the JSON property `favorites`
# @return [String]
attr_accessor :favorites
# The ID of the playlist that contains the channel"s liked videos. Use the
# playlistItems.insert and playlistItems.delete to add or remove items from that
# list.
# Corresponds to the JSON property `likes`
# @return [String]
attr_accessor :likes
# The ID of the playlist that contains the channel"s uploaded videos. Use the
# videos.insert method to upload new videos and the videos.delete method to
# delete previously uploaded videos.
# Corresponds to the JSON property `uploads`
# @return [String]
attr_accessor :uploads
# The ID of the playlist that contains the channel"s watch history. Use the
# playlistItems.insert and playlistItems.delete to add or remove items from that
# list.
# Corresponds to the JSON property `watchHistory`
# @return [String]
attr_accessor :watch_history
# The ID of the playlist that contains the channel"s watch later playlist. Use
# the playlistItems.insert and playlistItems.delete to add or remove items from
# that list.
# Corresponds to the JSON property `watchLater`
# @return [String]
attr_accessor :watch_later
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@favorites = args[:favorites] if args.key?(:favorites)
@likes = args[:likes] if args.key?(:likes)
@uploads = args[:uploads] if args.key?(:uploads)
@watch_history = args[:watch_history] if args.key?(:watch_history)
@watch_later = args[:watch_later] if args.key?(:watch_later)
end
end
end
# The contentOwnerDetails object encapsulates channel data that is relevant for
# YouTube Partners linked with the channel.
class ChannelContentOwnerDetails
include Google::Apis::Core::Hashable
# The ID of the content owner linked to the channel.
# Corresponds to the JSON property `contentOwner`
# @return [String]
attr_accessor :content_owner
# The date and time of when the channel was linked to the content owner. The
# value is specified in ISO 8601 format.
# Corresponds to the JSON property `timeLinked`
# @return [String]
attr_accessor :time_linked
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@content_owner = args[:content_owner] if args.key?(:content_owner)
@time_linked = args[:time_linked] if args.key?(:time_linked)
end
end
# Pings that the app shall fire (authenticated by biscotti cookie). Each ping
# has a context, in which the app must fire the ping, and a url identifying the
# ping.
class ChannelConversionPing
include Google::Apis::Core::Hashable
# Defines the context of the ping.
# Corresponds to the JSON property `context`
# @return [String]
attr_accessor :context
# The url (without the schema) that the player shall send the ping to. It's at
# caller's descretion to decide which schema to use (http vs https) Example of a
# returned url: //googleads.g.doubleclick.net/pagead/ viewthroughconversion/
# 962985656/?data=path%3DtHe_path%3Btype%3D cview%3Butuid%
# 3DGISQtTNGYqaYl4sKxoVvKA&labe=default The caller must append biscotti
# authentication (ms param in case of mobile, for example) to this ping.
# Corresponds to the JSON property `conversionUrl`
# @return [String]
attr_accessor :conversion_url
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@context = args[:context] if args.key?(:context)
@conversion_url = args[:conversion_url] if args.key?(:conversion_url)
end
end
# The conversionPings object encapsulates information about conversion pings
# that need to be respected by the channel.
class ChannelConversionPings
include Google::Apis::Core::Hashable
# Pings that the app shall fire (authenticated by biscotti cookie). Each ping
# has a context, in which the app must fire the ping, and a url identifying the
# ping.
# Corresponds to the JSON property `pings`
# @return [Array<Google::Apis::YoutubeV3::ChannelConversionPing>]
attr_accessor :pings
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@pings = args[:pings] if args.key?(:pings)
end
end
#
class ListChannelsResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
#
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::Channel>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# channelListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The token that can be used as the value of the pageToken parameter to retrieve
# the next page in the result set.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# Paging details for lists of resources, including total number of items
# available and number of resources returned in a single page.
# Corresponds to the JSON property `pageInfo`
# @return [Google::Apis::YoutubeV3::PageInfo]
attr_accessor :page_info
# The token that can be used as the value of the pageToken parameter to retrieve
# the previous page in the result set.
# Corresponds to the JSON property `prevPageToken`
# @return [String]
attr_accessor :prev_page_token
# Stub token pagination template to suppress results.
# Corresponds to the JSON property `tokenPagination`
# @return [Google::Apis::YoutubeV3::TokenPagination]
attr_accessor :token_pagination
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@page_info = args[:page_info] if args.key?(:page_info)
@prev_page_token = args[:prev_page_token] if args.key?(:prev_page_token)
@token_pagination = args[:token_pagination] if args.key?(:token_pagination)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
# Channel localization setting
class ChannelLocalization
include Google::Apis::Core::Hashable
# The localized strings for channel's description.
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
# The localized strings for channel's title.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@description = args[:description] if args.key?(:description)
@title = args[:title] if args.key?(:title)
end
end
#
class ChannelProfileDetails
include Google::Apis::Core::Hashable
# The YouTube channel ID.
# Corresponds to the JSON property `channelId`
# @return [String]
attr_accessor :channel_id
# The channel's URL.
# Corresponds to the JSON property `channelUrl`
# @return [String]
attr_accessor :channel_url
# The channel's display name.
# Corresponds to the JSON property `displayName`
# @return [String]
attr_accessor :display_name
# The channels's avatar URL.
# Corresponds to the JSON property `profileImageUrl`
# @return [String]
attr_accessor :profile_image_url
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@channel_id = args[:channel_id] if args.key?(:channel_id)
@channel_url = args[:channel_url] if args.key?(:channel_url)
@display_name = args[:display_name] if args.key?(:display_name)
@profile_image_url = args[:profile_image_url] if args.key?(:profile_image_url)
end
end
#
class ChannelSection
include Google::Apis::Core::Hashable
# Details about a channelsection, including playlists and channels.
# Corresponds to the JSON property `contentDetails`
# @return [Google::Apis::YoutubeV3::ChannelSectionContentDetails]
attr_accessor :content_details
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube uses to uniquely identify the channel section.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# channelSection".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# Localizations for different languages
# Corresponds to the JSON property `localizations`
# @return [Hash<String,Google::Apis::YoutubeV3::ChannelSectionLocalization>]
attr_accessor :localizations
# Basic details about a channel section, including title, style and position.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::ChannelSectionSnippet]
attr_accessor :snippet
# ChannelSection targeting setting.
# Corresponds to the JSON property `targeting`
# @return [Google::Apis::YoutubeV3::ChannelSectionTargeting]
attr_accessor :targeting
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@content_details = args[:content_details] if args.key?(:content_details)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@localizations = args[:localizations] if args.key?(:localizations)
@snippet = args[:snippet] if args.key?(:snippet)
@targeting = args[:targeting] if args.key?(:targeting)
end
end
# Details about a channelsection, including playlists and channels.
class ChannelSectionContentDetails
include Google::Apis::Core::Hashable
# The channel ids for type multiple_channels.
# Corresponds to the JSON property `channels`
# @return [Array<String>]
attr_accessor :channels
# The playlist ids for type single_playlist and multiple_playlists. For
# singlePlaylist, only one playlistId is allowed.
# Corresponds to the JSON property `playlists`
# @return [Array<String>]
attr_accessor :playlists
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@channels = args[:channels] if args.key?(:channels)
@playlists = args[:playlists] if args.key?(:playlists)
end
end
#
class ListChannelSectionsResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of ChannelSections that match the request criteria.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::ChannelSection>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# channelSectionListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
# ChannelSection localization setting
class ChannelSectionLocalization
include Google::Apis::Core::Hashable
# The localized strings for channel section's title.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@title = args[:title] if args.key?(:title)
end
end
# Basic details about a channel section, including title, style and position.
class ChannelSectionSnippet
include Google::Apis::Core::Hashable
# The ID that YouTube uses to uniquely identify the channel that published the
# channel section.
# Corresponds to the JSON property `channelId`
# @return [String]
attr_accessor :channel_id
# The language of the channel section's default title and description.
# Corresponds to the JSON property `defaultLanguage`
# @return [String]
attr_accessor :default_language
# ChannelSection localization setting
# Corresponds to the JSON property `localized`
# @return [Google::Apis::YoutubeV3::ChannelSectionLocalization]
attr_accessor :localized
# The position of the channel section in the channel.
# Corresponds to the JSON property `position`
# @return [Fixnum]
attr_accessor :position
# The style of the channel section.
# Corresponds to the JSON property `style`
# @return [String]
attr_accessor :style
# The channel section's title for multiple_playlists and multiple_channels.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
# The type of the channel section.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@channel_id = args[:channel_id] if args.key?(:channel_id)
@default_language = args[:default_language] if args.key?(:default_language)
@localized = args[:localized] if args.key?(:localized)
@position = args[:position] if args.key?(:position)
@style = args[:style] if args.key?(:style)
@title = args[:title] if args.key?(:title)
@type = args[:type] if args.key?(:type)
end
end
# ChannelSection targeting setting.
class ChannelSectionTargeting
include Google::Apis::Core::Hashable
# The country the channel section is targeting.
# Corresponds to the JSON property `countries`
# @return [Array<String>]
attr_accessor :countries
# The language the channel section is targeting.
# Corresponds to the JSON property `languages`
# @return [Array<String>]
attr_accessor :languages
# The region the channel section is targeting.
# Corresponds to the JSON property `regions`
# @return [Array<String>]
attr_accessor :regions
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@countries = args[:countries] if args.key?(:countries)
@languages = args[:languages] if args.key?(:languages)
@regions = args[:regions] if args.key?(:regions)
end
end
# Branding properties for the channel view.
class ChannelSettings
include Google::Apis::Core::Hashable
# The country of the channel.
# Corresponds to the JSON property `country`
# @return [String]
attr_accessor :country
#
# Corresponds to the JSON property `defaultLanguage`
# @return [String]
attr_accessor :default_language
# Which content tab users should see when viewing the channel.
# Corresponds to the JSON property `defaultTab`
# @return [String]
attr_accessor :default_tab
# Specifies the channel description.
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
# Title for the featured channels tab.
# Corresponds to the JSON property `featuredChannelsTitle`
# @return [String]
attr_accessor :featured_channels_title
# The list of featured channels.
# Corresponds to the JSON property `featuredChannelsUrls`
# @return [Array<String>]
attr_accessor :featured_channels_urls
# Lists keywords associated with the channel, comma-separated.
# Corresponds to the JSON property `keywords`
# @return [String]
attr_accessor :keywords
# Whether user-submitted comments left on the channel page need to be approved
# by the channel owner to be publicly visible.
# Corresponds to the JSON property `moderateComments`
# @return [Boolean]
attr_accessor :moderate_comments
alias_method :moderate_comments?, :moderate_comments
# A prominent color that can be rendered on this channel page.
# Corresponds to the JSON property `profileColor`
# @return [String]
attr_accessor :profile_color
# Whether the tab to browse the videos should be displayed.
# Corresponds to the JSON property `showBrowseView`
# @return [Boolean]
attr_accessor :show_browse_view
alias_method :show_browse_view?, :show_browse_view
# Whether related channels should be proposed.
# Corresponds to the JSON property `showRelatedChannels`
# @return [Boolean]
attr_accessor :show_related_channels
alias_method :show_related_channels?, :show_related_channels
# Specifies the channel title.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
# The ID for a Google Analytics account to track and measure traffic to the
# channels.
# Corresponds to the JSON property `trackingAnalyticsAccountId`
# @return [String]
attr_accessor :tracking_analytics_account_id
# The trailer of the channel, for users that are not subscribers.
# Corresponds to the JSON property `unsubscribedTrailer`
# @return [String]
attr_accessor :unsubscribed_trailer
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@country = args[:country] if args.key?(:country)
@default_language = args[:default_language] if args.key?(:default_language)
@default_tab = args[:default_tab] if args.key?(:default_tab)
@description = args[:description] if args.key?(:description)
@featured_channels_title = args[:featured_channels_title] if args.key?(:featured_channels_title)
@featured_channels_urls = args[:featured_channels_urls] if args.key?(:featured_channels_urls)
@keywords = args[:keywords] if args.key?(:keywords)
@moderate_comments = args[:moderate_comments] if args.key?(:moderate_comments)
@profile_color = args[:profile_color] if args.key?(:profile_color)
@show_browse_view = args[:show_browse_view] if args.key?(:show_browse_view)
@show_related_channels = args[:show_related_channels] if args.key?(:show_related_channels)
@title = args[:title] if args.key?(:title)
@tracking_analytics_account_id = args[:tracking_analytics_account_id] if args.key?(:tracking_analytics_account_id)
@unsubscribed_trailer = args[:unsubscribed_trailer] if args.key?(:unsubscribed_trailer)
end
end
# Basic details about a channel, including title, description and thumbnails.
class ChannelSnippet
include Google::Apis::Core::Hashable
# The country of the channel.
# Corresponds to the JSON property `country`
# @return [String]
attr_accessor :country
# The custom url of the channel.
# Corresponds to the JSON property `customUrl`
# @return [String]
attr_accessor :custom_url
# The language of the channel's default title and description.
# Corresponds to the JSON property `defaultLanguage`
# @return [String]
attr_accessor :default_language
# The description of the channel.
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
# Channel localization setting
# Corresponds to the JSON property `localized`
# @return [Google::Apis::YoutubeV3::ChannelLocalization]
attr_accessor :localized
# The date and time that the channel was created. The value is specified in < a
# href="//www.w3.org/TR/NOTE-datetime">ISO 8601 format.
# Corresponds to the JSON property `publishedAt`
# @return [String]
attr_accessor :published_at
# Internal representation of thumbnails for a YouTube resource.
# Corresponds to the JSON property `thumbnails`
# @return [Google::Apis::YoutubeV3::ThumbnailDetails]
attr_accessor :thumbnails
# The channel's title.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@country = args[:country] if args.key?(:country)
@custom_url = args[:custom_url] if args.key?(:custom_url)
@default_language = args[:default_language] if args.key?(:default_language)
@description = args[:description] if args.key?(:description)
@localized = args[:localized] if args.key?(:localized)
@published_at = args[:published_at] if args.key?(:published_at)
@thumbnails = args[:thumbnails] if args.key?(:thumbnails)
@title = args[:title] if args.key?(:title)
end
end
# Statistics about a channel: number of subscribers, number of videos in the
# channel, etc.
class ChannelStatistics
include Google::Apis::Core::Hashable
# The number of comments for the channel.
# Corresponds to the JSON property `commentCount`
# @return [Fixnum]
attr_accessor :comment_count
# Whether or not the number of subscribers is shown for this user.
# Corresponds to the JSON property `hiddenSubscriberCount`
# @return [Boolean]
attr_accessor :hidden_subscriber_count
alias_method :hidden_subscriber_count?, :hidden_subscriber_count
# The number of subscribers that the channel has.
# Corresponds to the JSON property `subscriberCount`
# @return [Fixnum]
attr_accessor :subscriber_count
# The number of videos uploaded to the channel.
# Corresponds to the JSON property `videoCount`
# @return [Fixnum]
attr_accessor :video_count
# The number of times the channel has been viewed.
# Corresponds to the JSON property `viewCount`
# @return [Fixnum]
attr_accessor :view_count
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@comment_count = args[:comment_count] if args.key?(:comment_count)
@hidden_subscriber_count = args[:hidden_subscriber_count] if args.key?(:hidden_subscriber_count)
@subscriber_count = args[:subscriber_count] if args.key?(:subscriber_count)
@video_count = args[:video_count] if args.key?(:video_count)
@view_count = args[:view_count] if args.key?(:view_count)
end
end
# JSON template for the status part of a channel.
class ChannelStatus
include Google::Apis::Core::Hashable
# If true, then the user is linked to either a YouTube username or G+ account.
# Otherwise, the user doesn't have a public YouTube identity.
# Corresponds to the JSON property `isLinked`
# @return [Boolean]
attr_accessor :is_linked
alias_method :is_linked?, :is_linked
# The long uploads status of this channel. See https://support.google.com/
# youtube/answer/71673 for more information.
# Corresponds to the JSON property `longUploadsStatus`
# @return [String]
attr_accessor :long_uploads_status
#
# Corresponds to the JSON property `madeForKids`
# @return [Boolean]
attr_accessor :made_for_kids
alias_method :made_for_kids?, :made_for_kids
# Privacy status of the channel.
# Corresponds to the JSON property `privacyStatus`
# @return [String]
attr_accessor :privacy_status
#
# Corresponds to the JSON property `selfDeclaredMadeForKids`
# @return [Boolean]
attr_accessor :self_declared_made_for_kids
alias_method :self_declared_made_for_kids?, :self_declared_made_for_kids
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@is_linked = args[:is_linked] if args.key?(:is_linked)
@long_uploads_status = args[:long_uploads_status] if args.key?(:long_uploads_status)
@made_for_kids = args[:made_for_kids] if args.key?(:made_for_kids)
@privacy_status = args[:privacy_status] if args.key?(:privacy_status)
@self_declared_made_for_kids = args[:self_declared_made_for_kids] if args.key?(:self_declared_made_for_kids)
end
end
# Information specific to a store on a merchandising platform linked to a
# YouTube channel.
class ChannelToStoreLinkDetails
include Google::Apis::Core::Hashable
# Name of the store.
# Corresponds to the JSON property `storeName`
# @return [String]
attr_accessor :store_name
# Landing page of the store.
# Corresponds to the JSON property `storeUrl`
# @return [String]
attr_accessor :store_url
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@store_name = args[:store_name] if args.key?(:store_name)
@store_url = args[:store_url] if args.key?(:store_url)
end
end
# Freebase topic information related to the channel.
class ChannelTopicDetails
include Google::Apis::Core::Hashable
# A list of Wikipedia URLs that describe the channel's content.
# Corresponds to the JSON property `topicCategories`
# @return [Array<String>]
attr_accessor :topic_categories
# A list of Freebase topic IDs associated with the channel. You can retrieve
# information about each topic using the Freebase Topic API.
# Corresponds to the JSON property `topicIds`
# @return [Array<String>]
attr_accessor :topic_ids
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@topic_categories = args[:topic_categories] if args.key?(:topic_categories)
@topic_ids = args[:topic_ids] if args.key?(:topic_ids)
end
end
# A *comment* represents a single YouTube comment.
class Comment
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube uses to uniquely identify the comment.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# comment".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# Basic details about a comment, such as its author and text.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::CommentSnippet]
attr_accessor :snippet
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
end
end
#
class ListCommentsResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of comments that match the request criteria.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::Comment>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# commentListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The token that can be used as the value of the pageToken parameter to retrieve
# the next page in the result set.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# Paging details for lists of resources, including total number of items
# available and number of resources returned in a single page.
# Corresponds to the JSON property `pageInfo`
# @return [Google::Apis::YoutubeV3::PageInfo]
attr_accessor :page_info
# Stub token pagination template to suppress results.
# Corresponds to the JSON property `tokenPagination`
# @return [Google::Apis::YoutubeV3::TokenPagination]
attr_accessor :token_pagination
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@page_info = args[:page_info] if args.key?(:page_info)
@token_pagination = args[:token_pagination] if args.key?(:token_pagination)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
# Basic details about a comment, such as its author and text.
class CommentSnippet
include Google::Apis::Core::Hashable
# The id of the author's YouTube channel, if any.
# Corresponds to the JSON property `authorChannelId`
# @return [Google::Apis::YoutubeV3::CommentSnippetAuthorChannelId]
attr_accessor :author_channel_id
# Link to the author's YouTube channel, if any.
# Corresponds to the JSON property `authorChannelUrl`
# @return [String]
attr_accessor :author_channel_url
# The name of the user who posted the comment.
# Corresponds to the JSON property `authorDisplayName`
# @return [String]
attr_accessor :author_display_name
# The URL for the avatar of the user who posted the comment.
# Corresponds to the JSON property `authorProfileImageUrl`
# @return [String]
attr_accessor :author_profile_image_url
# Whether the current viewer can rate this comment.
# Corresponds to the JSON property `canRate`
# @return [Boolean]
attr_accessor :can_rate
alias_method :can_rate?, :can_rate
# The id of the corresponding YouTube channel. In case of a channel comment this
# is the channel the comment refers to. In case of a video comment it's the
# video's channel.
# Corresponds to the JSON property `channelId`
# @return [String]
attr_accessor :channel_id
# The total number of likes this comment has received.
# Corresponds to the JSON property `likeCount`
# @return [Fixnum]
attr_accessor :like_count
# The comment's moderation status. Will not be set if the comments were
# requested through the id filter.
# Corresponds to the JSON property `moderationStatus`
# @return [String]
attr_accessor :moderation_status
# The unique id of the parent comment, only set for replies.
# Corresponds to the JSON property `parentId`
# @return [String]
attr_accessor :parent_id
# The date and time when the comment was orignally published. The value is
# specified in ISO 8601 format.
# Corresponds to the JSON property `publishedAt`
# @return [String]
attr_accessor :published_at
# The comment's text. The format is either plain text or HTML dependent on what
# has been requested. Even the plain text representation may differ from the
# text originally posted in that it may replace video links with video titles
# etc.
# Corresponds to the JSON property `textDisplay`
# @return [String]
attr_accessor :text_display
# The comment's original raw text as initially posted or last updated. The
# original text will only be returned if it is accessible to the viewer, which
# is only guaranteed if the viewer is the comment's author.
# Corresponds to the JSON property `textOriginal`
# @return [String]
attr_accessor :text_original
# The date and time when was last updated . The value is specified in ISO 8601
# format.
# Corresponds to the JSON property `updatedAt`
# @return [String]
attr_accessor :updated_at
# The ID of the video the comment refers to, if any.
# Corresponds to the JSON property `videoId`
# @return [String]
attr_accessor :video_id
# The rating the viewer has given to this comment. For the time being this will
# never return RATE_TYPE_DISLIKE and instead return RATE_TYPE_NONE. This may
# change in the future.
# Corresponds to the JSON property `viewerRating`
# @return [String]
attr_accessor :viewer_rating
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@author_channel_id = args[:author_channel_id] if args.key?(:author_channel_id)
@author_channel_url = args[:author_channel_url] if args.key?(:author_channel_url)
@author_display_name = args[:author_display_name] if args.key?(:author_display_name)
@author_profile_image_url = args[:author_profile_image_url] if args.key?(:author_profile_image_url)
@can_rate = args[:can_rate] if args.key?(:can_rate)
@channel_id = args[:channel_id] if args.key?(:channel_id)
@like_count = args[:like_count] if args.key?(:like_count)
@moderation_status = args[:moderation_status] if args.key?(:moderation_status)
@parent_id = args[:parent_id] if args.key?(:parent_id)
@published_at = args[:published_at] if args.key?(:published_at)
@text_display = args[:text_display] if args.key?(:text_display)
@text_original = args[:text_original] if args.key?(:text_original)
@updated_at = args[:updated_at] if args.key?(:updated_at)
@video_id = args[:video_id] if args.key?(:video_id)
@viewer_rating = args[:viewer_rating] if args.key?(:viewer_rating)
end
end
# The id of the author's YouTube channel, if any.
class CommentSnippetAuthorChannelId
include Google::Apis::Core::Hashable
#
# Corresponds to the JSON property `value`
# @return [String]
attr_accessor :value
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@value = args[:value] if args.key?(:value)
end
end
# A *comment thread* represents information that applies to a top level comment
# and all its replies. It can also include the top level comment itself and some
# of the replies.
class CommentThread
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube uses to uniquely identify the comment thread.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# commentThread".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# Comments written in (direct or indirect) reply to the top level comment.
# Corresponds to the JSON property `replies`
# @return [Google::Apis::YoutubeV3::CommentThreadReplies]
attr_accessor :replies
# Basic details about a comment thread.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::CommentThreadSnippet]
attr_accessor :snippet
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@replies = args[:replies] if args.key?(:replies)
@snippet = args[:snippet] if args.key?(:snippet)
end
end
#
class ListCommentThreadsResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of comment threads that match the request criteria.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::CommentThread>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# commentThreadListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The token that can be used as the value of the pageToken parameter to retrieve
# the next page in the result set.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# Paging details for lists of resources, including total number of items
# available and number of resources returned in a single page.
# Corresponds to the JSON property `pageInfo`
# @return [Google::Apis::YoutubeV3::PageInfo]
attr_accessor :page_info
# Stub token pagination template to suppress results.
# Corresponds to the JSON property `tokenPagination`
# @return [Google::Apis::YoutubeV3::TokenPagination]
attr_accessor :token_pagination
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@page_info = args[:page_info] if args.key?(:page_info)
@token_pagination = args[:token_pagination] if args.key?(:token_pagination)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
# Comments written in (direct or indirect) reply to the top level comment.
class CommentThreadReplies
include Google::Apis::Core::Hashable
# A limited number of replies. Unless the number of replies returned equals
# total_reply_count in the snippet the returned replies are only a subset of the
# total number of replies.
# Corresponds to the JSON property `comments`
# @return [Array<Google::Apis::YoutubeV3::Comment>]
attr_accessor :comments
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@comments = args[:comments] if args.key?(:comments)
end
end
# Basic details about a comment thread.
class CommentThreadSnippet
include Google::Apis::Core::Hashable
# Whether the current viewer of the thread can reply to it. This is viewer
# specific - other viewers may see a different value for this field.
# Corresponds to the JSON property `canReply`
# @return [Boolean]
attr_accessor :can_reply
alias_method :can_reply?, :can_reply
# The YouTube channel the comments in the thread refer to or the channel with
# the video the comments refer to. If video_id isn't set the comments refer to
# the channel itself.
# Corresponds to the JSON property `channelId`
# @return [String]
attr_accessor :channel_id
# Whether the thread (and therefore all its comments) is visible to all YouTube
# users.
# Corresponds to the JSON property `isPublic`
# @return [Boolean]
attr_accessor :is_public
alias_method :is_public?, :is_public
# A *comment* represents a single YouTube comment.
# Corresponds to the JSON property `topLevelComment`
# @return [Google::Apis::YoutubeV3::Comment]
attr_accessor :top_level_comment
# The total number of replies (not including the top level comment).
# Corresponds to the JSON property `totalReplyCount`
# @return [Fixnum]
attr_accessor :total_reply_count
# The ID of the video the comments refer to, if any. No video_id implies a
# channel discussion comment.
# Corresponds to the JSON property `videoId`
# @return [String]
attr_accessor :video_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@can_reply = args[:can_reply] if args.key?(:can_reply)
@channel_id = args[:channel_id] if args.key?(:channel_id)
@is_public = args[:is_public] if args.key?(:is_public)
@top_level_comment = args[:top_level_comment] if args.key?(:top_level_comment)
@total_reply_count = args[:total_reply_count] if args.key?(:total_reply_count)
@video_id = args[:video_id] if args.key?(:video_id)
end
end
# Ratings schemes. The country-specific ratings are mostly for movies and shows.
# LINT.IfChange
class ContentRating
include Google::Apis::Core::Hashable
# The video's Australian Classification Board (ACB) or Australian Communications
# and Media Authority (ACMA) rating. ACMA ratings are used to classify children'
# s television programming.
# Corresponds to the JSON property `acbRating`
# @return [String]
attr_accessor :acb_rating
# The video's rating from Italy's Autorità per le Garanzie nelle Comunicazioni (
# AGCOM).
# Corresponds to the JSON property `agcomRating`
# @return [String]
attr_accessor :agcom_rating
# The video's Anatel (Asociación Nacional de Televisión) rating for Chilean
# television.
# Corresponds to the JSON property `anatelRating`
# @return [String]
attr_accessor :anatel_rating
# The video's British Board of Film Classification (BBFC) rating.
# Corresponds to the JSON property `bbfcRating`
# @return [String]
attr_accessor :bbfc_rating
# The video's rating from Thailand's Board of Film and Video Censors.
# Corresponds to the JSON property `bfvcRating`
# @return [String]
attr_accessor :bfvc_rating
# The video's rating from the Austrian Board of Media Classification (
# Bundesministerium für Unterricht, Kunst und Kultur).
# Corresponds to the JSON property `bmukkRating`
# @return [String]
attr_accessor :bmukk_rating
# Rating system for Canadian TV - Canadian TV Classification System The video's
# rating from the Canadian Radio-Television and Telecommunications Commission (
# CRTC) for Canadian English-language broadcasts. For more information, see the
# Canadian Broadcast Standards Council website.
# Corresponds to the JSON property `catvRating`
# @return [String]
attr_accessor :catv_rating
# The video's rating from the Canadian Radio-Television and Telecommunications
# Commission (CRTC) for Canadian French-language broadcasts. For more
# information, see the Canadian Broadcast Standards Council website.
# Corresponds to the JSON property `catvfrRating`
# @return [String]
attr_accessor :catvfr_rating
# The video's Central Board of Film Certification (CBFC - India) rating.
# Corresponds to the JSON property `cbfcRating`
# @return [String]
attr_accessor :cbfc_rating
# The video's Consejo de Calificación Cinematográfica (Chile) rating.
# Corresponds to the JSON property `cccRating`
# @return [String]
attr_accessor :ccc_rating
# The video's rating from Portugal's Comissão de Classificação de Espect´culos.
# Corresponds to the JSON property `cceRating`
# @return [String]
attr_accessor :cce_rating
# The video's rating in Switzerland.
# Corresponds to the JSON property `chfilmRating`
# @return [String]
attr_accessor :chfilm_rating
# The video's Canadian Home Video Rating System (CHVRS) rating.
# Corresponds to the JSON property `chvrsRating`
# @return [String]
attr_accessor :chvrs_rating
# The video's rating from the Commission de Contrôle des Films (Belgium).
# Corresponds to the JSON property `cicfRating`
# @return [String]
attr_accessor :cicf_rating
# The video's rating from Romania's CONSILIUL NATIONAL AL AUDIOVIZUALULUI (CNA).
# Corresponds to the JSON property `cnaRating`
# @return [String]
attr_accessor :cna_rating
# Rating system in France - Commission de classification cinematographique
# Corresponds to the JSON property `cncRating`
# @return [String]
attr_accessor :cnc_rating
# The video's rating from France's Conseil supérieur de laudiovisuel, which
# rates broadcast content.
# Corresponds to the JSON property `csaRating`
# @return [String]
attr_accessor :csa_rating
# The video's rating from Luxembourg's Commission de surveillance de la
# classification des films (CSCF).
# Corresponds to the JSON property `cscfRating`
# @return [String]
attr_accessor :cscf_rating
# The video's rating in the Czech Republic.
# Corresponds to the JSON property `czfilmRating`
# @return [String]
attr_accessor :czfilm_rating
# The video's Departamento de Justiça, Classificação, Qualificação e Títulos (
# DJCQT - Brazil) rating.
# Corresponds to the JSON property `djctqRating`
# @return [String]
attr_accessor :djctq_rating
# Reasons that explain why the video received its DJCQT (Brazil) rating.
# Corresponds to the JSON property `djctqRatingReasons`
# @return [Array<String>]
attr_accessor :djctq_rating_reasons
# Rating system in Turkey - Evaluation and Classification Board of the Ministry
# of Culture and Tourism
# Corresponds to the JSON property `ecbmctRating`
# @return [String]
attr_accessor :ecbmct_rating
# The video's rating in Estonia.
# Corresponds to the JSON property `eefilmRating`
# @return [String]
attr_accessor :eefilm_rating
# The video's rating in Egypt.
# Corresponds to the JSON property `egfilmRating`
# @return [String]
attr_accessor :egfilm_rating
# The video's Eirin (映倫) rating. Eirin is the Japanese rating system.
# Corresponds to the JSON property `eirinRating`
# @return [String]
attr_accessor :eirin_rating
# The video's rating from Malaysia's Film Censorship Board.
# Corresponds to the JSON property `fcbmRating`
# @return [String]
attr_accessor :fcbm_rating
# The video's rating from Hong Kong's Office for Film, Newspaper and Article
# Administration.
# Corresponds to the JSON property `fcoRating`
# @return [String]
attr_accessor :fco_rating
# This property has been deprecated. Use the contentDetails.contentRating.
# cncRating instead.
# Corresponds to the JSON property `fmocRating`
# @return [String]
attr_accessor :fmoc_rating
# The video's rating from South Africa's Film and Publication Board.
# Corresponds to the JSON property `fpbRating`
# @return [String]
attr_accessor :fpb_rating
# Reasons that explain why the video received its FPB (South Africa) rating.
# Corresponds to the JSON property `fpbRatingReasons`
# @return [Array<String>]
attr_accessor :fpb_rating_reasons
# The video's Freiwillige Selbstkontrolle der Filmwirtschaft (FSK - Germany)
# rating.
# Corresponds to the JSON property `fskRating`
# @return [String]
attr_accessor :fsk_rating
# The video's rating in Greece.
# Corresponds to the JSON property `grfilmRating`
# @return [String]
attr_accessor :grfilm_rating
# The video's Instituto de la Cinematografía y de las Artes Audiovisuales (ICAA -
# Spain) rating.
# Corresponds to the JSON property `icaaRating`
# @return [String]
attr_accessor :icaa_rating
# The video's Irish Film Classification Office (IFCO - Ireland) rating. See the
# IFCO website for more information.
# Corresponds to the JSON property `ifcoRating`
# @return [String]
attr_accessor :ifco_rating
# The video's rating in Israel.
# Corresponds to the JSON property `ilfilmRating`
# @return [String]
attr_accessor :ilfilm_rating
# The video's INCAA (Instituto Nacional de Cine y Artes Audiovisuales -
# Argentina) rating.
# Corresponds to the JSON property `incaaRating`
# @return [String]
attr_accessor :incaa_rating
# The video's rating from the Kenya Film Classification Board.
# Corresponds to the JSON property `kfcbRating`
# @return [String]
attr_accessor :kfcb_rating
# The video's NICAM/Kijkwijzer rating from the Nederlands Instituut voor de
# Classificatie van Audiovisuele Media (Netherlands).
# Corresponds to the JSON property `kijkwijzerRating`
# @return [String]
attr_accessor :kijkwijzer_rating
# The video's Korea Media Rating Board (영상물등급위원회) rating. The KMRB rates videos
# in South Korea.
# Corresponds to the JSON property `kmrbRating`
# @return [String]
attr_accessor :kmrb_rating
# The video's rating from Indonesia's Lembaga Sensor Film.
# Corresponds to the JSON property `lsfRating`
# @return [String]
attr_accessor :lsf_rating
# The video's rating from Malta's Film Age-Classification Board.
# Corresponds to the JSON property `mccaaRating`
# @return [String]
attr_accessor :mccaa_rating
# The video's rating from the Danish Film Institute's (Det Danske Filminstitut)
# Media Council for Children and Young People.
# Corresponds to the JSON property `mccypRating`
# @return [String]
attr_accessor :mccyp_rating
# The video's rating system for Vietnam - MCST
# Corresponds to the JSON property `mcstRating`
# @return [String]
attr_accessor :mcst_rating
# The video's rating from Singapore's Media Development Authority (MDA) and,
# specifically, it's Board of Film Censors (BFC).
# Corresponds to the JSON property `mdaRating`
# @return [String]
attr_accessor :mda_rating
# The video's rating from Medietilsynet, the Norwegian Media Authority.
# Corresponds to the JSON property `medietilsynetRating`
# @return [String]
attr_accessor :medietilsynet_rating
# The video's rating from Finland's Kansallinen Audiovisuaalinen Instituutti (
# National Audiovisual Institute).
# Corresponds to the JSON property `mekuRating`
# @return [String]
attr_accessor :meku_rating
# The rating system for MENA countries, a clone of MPAA. It is needed to prevent
# titles go live w/o additional QC check, since some of them can be
# inappropriate for the countries at all. See b/33408548 for more details.
# Corresponds to the JSON property `menaMpaaRating`
# @return [String]
attr_accessor :mena_mpaa_rating
# The video's rating from the Ministero dei Beni e delle Attività Culturali e
# del Turismo (Italy).
# Corresponds to the JSON property `mibacRating`
# @return [String]
attr_accessor :mibac_rating
# The video's Ministerio de Cultura (Colombia) rating.
# Corresponds to the JSON property `mocRating`
# @return [String]
attr_accessor :moc_rating
# The video's rating from Taiwan's Ministry of Culture (文化部).
# Corresponds to the JSON property `moctwRating`
# @return [String]
attr_accessor :moctw_rating
# The video's Motion Picture Association of America (MPAA) rating.
# Corresponds to the JSON property `mpaaRating`
# @return [String]
attr_accessor :mpaa_rating
# The rating system for trailer, DVD, and Ad in the US. See http://movielabs.com/
# md/ratings/v2.3/html/US_MPAAT_Ratings.html.
# Corresponds to the JSON property `mpaatRating`
# @return [String]
attr_accessor :mpaat_rating
# The video's rating from the Movie and Television Review and Classification
# Board (Philippines).
# Corresponds to the JSON property `mtrcbRating`
# @return [String]
attr_accessor :mtrcb_rating
# The video's rating from the Maldives National Bureau of Classification.
# Corresponds to the JSON property `nbcRating`
# @return [String]
attr_accessor :nbc_rating
# The video's rating in Poland.
# Corresponds to the JSON property `nbcplRating`
# @return [String]
attr_accessor :nbcpl_rating
# The video's rating from the Bulgarian National Film Center.
# Corresponds to the JSON property `nfrcRating`
# @return [String]
attr_accessor :nfrc_rating
# The video's rating from Nigeria's National Film and Video Censors Board.
# Corresponds to the JSON property `nfvcbRating`
# @return [String]
attr_accessor :nfvcb_rating
# The video's rating from the Nacionãlais Kino centrs (National Film Centre of
# Latvia).
# Corresponds to the JSON property `nkclvRating`
# @return [String]
attr_accessor :nkclv_rating
# The National Media Council ratings system for United Arab Emirates.
# Corresponds to the JSON property `nmcRating`
# @return [String]
attr_accessor :nmc_rating
# The video's Office of Film and Literature Classification (OFLC - New Zealand)
# rating.
# Corresponds to the JSON property `oflcRating`
# @return [String]
attr_accessor :oflc_rating
# The video's rating in Peru.
# Corresponds to the JSON property `pefilmRating`
# @return [String]
attr_accessor :pefilm_rating
# The video's rating from the Hungarian Nemzeti Filmiroda, the Rating Committee
# of the National Office of Film.
# Corresponds to the JSON property `rcnofRating`
# @return [String]
attr_accessor :rcnof_rating
# The video's rating in Venezuela.
# Corresponds to the JSON property `resorteviolenciaRating`
# @return [String]
attr_accessor :resorteviolencia_rating
# The video's General Directorate of Radio, Television and Cinematography (
# Mexico) rating.
# Corresponds to the JSON property `rtcRating`
# @return [String]
attr_accessor :rtc_rating
# The video's rating from Ireland's Raidió Teilifís Éireann.
# Corresponds to the JSON property `rteRating`
# @return [String]
attr_accessor :rte_rating
# The video's National Film Registry of the Russian Federation (MKRF - Russia)
# rating.
# Corresponds to the JSON property `russiaRating`
# @return [String]
attr_accessor :russia_rating
# The video's rating in Slovakia.
# Corresponds to the JSON property `skfilmRating`
# @return [String]
attr_accessor :skfilm_rating
# The video's rating in Iceland.
# Corresponds to the JSON property `smaisRating`
# @return [String]
attr_accessor :smais_rating
# The video's rating from Statens medieråd (Sweden's National Media Council).
# Corresponds to the JSON property `smsaRating`
# @return [String]
attr_accessor :smsa_rating
# The video's TV Parental Guidelines (TVPG) rating.
# Corresponds to the JSON property `tvpgRating`
# @return [String]
attr_accessor :tvpg_rating
# A rating that YouTube uses to identify age-restricted content.
# Corresponds to the JSON property `ytRating`
# @return [String]
attr_accessor :yt_rating
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@acb_rating = args[:acb_rating] if args.key?(:acb_rating)
@agcom_rating = args[:agcom_rating] if args.key?(:agcom_rating)
@anatel_rating = args[:anatel_rating] if args.key?(:anatel_rating)
@bbfc_rating = args[:bbfc_rating] if args.key?(:bbfc_rating)
@bfvc_rating = args[:bfvc_rating] if args.key?(:bfvc_rating)
@bmukk_rating = args[:bmukk_rating] if args.key?(:bmukk_rating)
@catv_rating = args[:catv_rating] if args.key?(:catv_rating)
@catvfr_rating = args[:catvfr_rating] if args.key?(:catvfr_rating)
@cbfc_rating = args[:cbfc_rating] if args.key?(:cbfc_rating)
@ccc_rating = args[:ccc_rating] if args.key?(:ccc_rating)
@cce_rating = args[:cce_rating] if args.key?(:cce_rating)
@chfilm_rating = args[:chfilm_rating] if args.key?(:chfilm_rating)
@chvrs_rating = args[:chvrs_rating] if args.key?(:chvrs_rating)
@cicf_rating = args[:cicf_rating] if args.key?(:cicf_rating)
@cna_rating = args[:cna_rating] if args.key?(:cna_rating)
@cnc_rating = args[:cnc_rating] if args.key?(:cnc_rating)
@csa_rating = args[:csa_rating] if args.key?(:csa_rating)
@cscf_rating = args[:cscf_rating] if args.key?(:cscf_rating)
@czfilm_rating = args[:czfilm_rating] if args.key?(:czfilm_rating)
@djctq_rating = args[:djctq_rating] if args.key?(:djctq_rating)
@djctq_rating_reasons = args[:djctq_rating_reasons] if args.key?(:djctq_rating_reasons)
@ecbmct_rating = args[:ecbmct_rating] if args.key?(:ecbmct_rating)
@eefilm_rating = args[:eefilm_rating] if args.key?(:eefilm_rating)
@egfilm_rating = args[:egfilm_rating] if args.key?(:egfilm_rating)
@eirin_rating = args[:eirin_rating] if args.key?(:eirin_rating)
@fcbm_rating = args[:fcbm_rating] if args.key?(:fcbm_rating)
@fco_rating = args[:fco_rating] if args.key?(:fco_rating)
@fmoc_rating = args[:fmoc_rating] if args.key?(:fmoc_rating)
@fpb_rating = args[:fpb_rating] if args.key?(:fpb_rating)
@fpb_rating_reasons = args[:fpb_rating_reasons] if args.key?(:fpb_rating_reasons)
@fsk_rating = args[:fsk_rating] if args.key?(:fsk_rating)
@grfilm_rating = args[:grfilm_rating] if args.key?(:grfilm_rating)
@icaa_rating = args[:icaa_rating] if args.key?(:icaa_rating)
@ifco_rating = args[:ifco_rating] if args.key?(:ifco_rating)
@ilfilm_rating = args[:ilfilm_rating] if args.key?(:ilfilm_rating)
@incaa_rating = args[:incaa_rating] if args.key?(:incaa_rating)
@kfcb_rating = args[:kfcb_rating] if args.key?(:kfcb_rating)
@kijkwijzer_rating = args[:kijkwijzer_rating] if args.key?(:kijkwijzer_rating)
@kmrb_rating = args[:kmrb_rating] if args.key?(:kmrb_rating)
@lsf_rating = args[:lsf_rating] if args.key?(:lsf_rating)
@mccaa_rating = args[:mccaa_rating] if args.key?(:mccaa_rating)
@mccyp_rating = args[:mccyp_rating] if args.key?(:mccyp_rating)
@mcst_rating = args[:mcst_rating] if args.key?(:mcst_rating)
@mda_rating = args[:mda_rating] if args.key?(:mda_rating)
@medietilsynet_rating = args[:medietilsynet_rating] if args.key?(:medietilsynet_rating)
@meku_rating = args[:meku_rating] if args.key?(:meku_rating)
@mena_mpaa_rating = args[:mena_mpaa_rating] if args.key?(:mena_mpaa_rating)
@mibac_rating = args[:mibac_rating] if args.key?(:mibac_rating)
@moc_rating = args[:moc_rating] if args.key?(:moc_rating)
@moctw_rating = args[:moctw_rating] if args.key?(:moctw_rating)
@mpaa_rating = args[:mpaa_rating] if args.key?(:mpaa_rating)
@mpaat_rating = args[:mpaat_rating] if args.key?(:mpaat_rating)
@mtrcb_rating = args[:mtrcb_rating] if args.key?(:mtrcb_rating)
@nbc_rating = args[:nbc_rating] if args.key?(:nbc_rating)
@nbcpl_rating = args[:nbcpl_rating] if args.key?(:nbcpl_rating)
@nfrc_rating = args[:nfrc_rating] if args.key?(:nfrc_rating)
@nfvcb_rating = args[:nfvcb_rating] if args.key?(:nfvcb_rating)
@nkclv_rating = args[:nkclv_rating] if args.key?(:nkclv_rating)
@nmc_rating = args[:nmc_rating] if args.key?(:nmc_rating)
@oflc_rating = args[:oflc_rating] if args.key?(:oflc_rating)
@pefilm_rating = args[:pefilm_rating] if args.key?(:pefilm_rating)
@rcnof_rating = args[:rcnof_rating] if args.key?(:rcnof_rating)
@resorteviolencia_rating = args[:resorteviolencia_rating] if args.key?(:resorteviolencia_rating)
@rtc_rating = args[:rtc_rating] if args.key?(:rtc_rating)
@rte_rating = args[:rte_rating] if args.key?(:rte_rating)
@russia_rating = args[:russia_rating] if args.key?(:russia_rating)
@skfilm_rating = args[:skfilm_rating] if args.key?(:skfilm_rating)
@smais_rating = args[:smais_rating] if args.key?(:smais_rating)
@smsa_rating = args[:smsa_rating] if args.key?(:smsa_rating)
@tvpg_rating = args[:tvpg_rating] if args.key?(:tvpg_rating)
@yt_rating = args[:yt_rating] if args.key?(:yt_rating)
end
end
#
class Entity
include Google::Apis::Core::Hashable
#
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
#
# Corresponds to the JSON property `typeId`
# @return [String]
attr_accessor :type_id
#
# Corresponds to the JSON property `url`
# @return [String]
attr_accessor :url
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@id = args[:id] if args.key?(:id)
@type_id = args[:type_id] if args.key?(:type_id)
@url = args[:url] if args.key?(:url)
end
end
# Geographical coordinates of a point, in WGS84.
class GeoPoint
include Google::Apis::Core::Hashable
# Altitude above the reference ellipsoid, in meters.
# Corresponds to the JSON property `altitude`
# @return [Float]
attr_accessor :altitude
# Latitude in degrees.
# Corresponds to the JSON property `latitude`
# @return [Float]
attr_accessor :latitude
# Longitude in degrees.
# Corresponds to the JSON property `longitude`
# @return [Float]
attr_accessor :longitude
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@altitude = args[:altitude] if args.key?(:altitude)
@latitude = args[:latitude] if args.key?(:latitude)
@longitude = args[:longitude] if args.key?(:longitude)
end
end
# An *i18nLanguage* resource identifies a UI language currently supported by
# YouTube.
class I18nLanguage
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube uses to uniquely identify the i18n language.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# i18nLanguage".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# Basic details about an i18n language, such as language code and human-readable
# name.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::I18nLanguageSnippet]
attr_accessor :snippet
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
end
end
#
class ListI18nLanguagesResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of supported i18n languages. In this map, the i18n language ID is the
# map key, and its value is the corresponding i18nLanguage resource.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::I18nLanguage>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# i18nLanguageListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
# Basic details about an i18n language, such as language code and human-readable
# name.
class I18nLanguageSnippet
include Google::Apis::Core::Hashable
# A short BCP-47 code that uniquely identifies a language.
# Corresponds to the JSON property `hl`
# @return [String]
attr_accessor :hl
# The human-readable name of the language in the language itself.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@hl = args[:hl] if args.key?(:hl)
@name = args[:name] if args.key?(:name)
end
end
# A *i18nRegion* resource identifies a region where YouTube is available.
class I18nRegion
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube uses to uniquely identify the i18n region.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# i18nRegion".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# Basic details about an i18n region, such as region code and human-readable
# name.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::I18nRegionSnippet]
attr_accessor :snippet
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
end
end
#
class ListI18nRegionsResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of regions where YouTube is available. In this map, the i18n region ID
# is the map key, and its value is the corresponding i18nRegion resource.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::I18nRegion>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# i18nRegionListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
# Basic details about an i18n region, such as region code and human-readable
# name.
class I18nRegionSnippet
include Google::Apis::Core::Hashable
# The region code as a 2-letter ISO country code.
# Corresponds to the JSON property `gl`
# @return [String]
attr_accessor :gl
# The human-readable name of the region.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@gl = args[:gl] if args.key?(:gl)
@name = args[:name] if args.key?(:name)
end
end
# Branding properties for images associated with the channel.
class ImageSettings
include Google::Apis::Core::Hashable
# The URL for the background image shown on the video watch page. The image
# should be 1200px by 615px, with a maximum file size of 128k.
# Corresponds to the JSON property `backgroundImageUrl`
# @return [Google::Apis::YoutubeV3::LocalizedProperty]
attr_accessor :background_image_url
# This is generated when a ChannelBanner.Insert request has succeeded for the
# given channel.
# Corresponds to the JSON property `bannerExternalUrl`
# @return [String]
attr_accessor :banner_external_url
# Banner image. Desktop size (1060x175).
# Corresponds to the JSON property `bannerImageUrl`
# @return [String]
attr_accessor :banner_image_url
# Banner image. Mobile size high resolution (1440x395).
# Corresponds to the JSON property `bannerMobileExtraHdImageUrl`
# @return [String]
attr_accessor :banner_mobile_extra_hd_image_url
# Banner image. Mobile size high resolution (1280x360).
# Corresponds to the JSON property `bannerMobileHdImageUrl`
# @return [String]
attr_accessor :banner_mobile_hd_image_url
# Banner image. Mobile size (640x175).
# Corresponds to the JSON property `bannerMobileImageUrl`
# @return [String]
attr_accessor :banner_mobile_image_url
# Banner image. Mobile size low resolution (320x88).
# Corresponds to the JSON property `bannerMobileLowImageUrl`
# @return [String]
attr_accessor :banner_mobile_low_image_url
# Banner image. Mobile size medium/high resolution (960x263).
# Corresponds to the JSON property `bannerMobileMediumHdImageUrl`
# @return [String]
attr_accessor :banner_mobile_medium_hd_image_url
# Banner image. Tablet size extra high resolution (2560x424).
# Corresponds to the JSON property `bannerTabletExtraHdImageUrl`
# @return [String]
attr_accessor :banner_tablet_extra_hd_image_url
# Banner image. Tablet size high resolution (2276x377).
# Corresponds to the JSON property `bannerTabletHdImageUrl`
# @return [String]
attr_accessor :banner_tablet_hd_image_url
# Banner image. Tablet size (1707x283).
# Corresponds to the JSON property `bannerTabletImageUrl`
# @return [String]
attr_accessor :banner_tablet_image_url
# Banner image. Tablet size low resolution (1138x188).
# Corresponds to the JSON property `bannerTabletLowImageUrl`
# @return [String]
attr_accessor :banner_tablet_low_image_url
# Banner image. TV size high resolution (1920x1080).
# Corresponds to the JSON property `bannerTvHighImageUrl`
# @return [String]
attr_accessor :banner_tv_high_image_url
# Banner image. TV size extra high resolution (2120x1192).
# Corresponds to the JSON property `bannerTvImageUrl`
# @return [String]
attr_accessor :banner_tv_image_url
# Banner image. TV size low resolution (854x480).
# Corresponds to the JSON property `bannerTvLowImageUrl`
# @return [String]
attr_accessor :banner_tv_low_image_url
# Banner image. TV size medium resolution (1280x720).
# Corresponds to the JSON property `bannerTvMediumImageUrl`
# @return [String]
attr_accessor :banner_tv_medium_image_url
# The image map script for the large banner image.
# Corresponds to the JSON property `largeBrandedBannerImageImapScript`
# @return [Google::Apis::YoutubeV3::LocalizedProperty]
attr_accessor :large_branded_banner_image_imap_script
# The URL for the 854px by 70px image that appears below the video player in the
# expanded video view of the video watch page.
# Corresponds to the JSON property `largeBrandedBannerImageUrl`
# @return [Google::Apis::YoutubeV3::LocalizedProperty]
attr_accessor :large_branded_banner_image_url
# The image map script for the small banner image.
# Corresponds to the JSON property `smallBrandedBannerImageImapScript`
# @return [Google::Apis::YoutubeV3::LocalizedProperty]
attr_accessor :small_branded_banner_image_imap_script
# The URL for the 640px by 70px banner image that appears below the video player
# in the default view of the video watch page. The URL for the image that
# appears above the top-left corner of the video player. This is a 25-pixel-high
# image with a flexible width that cannot exceed 170 pixels.
# Corresponds to the JSON property `smallBrandedBannerImageUrl`
# @return [Google::Apis::YoutubeV3::LocalizedProperty]
attr_accessor :small_branded_banner_image_url
# The URL for a 1px by 1px tracking pixel that can be used to collect statistics
# for views of the channel or video pages.
# Corresponds to the JSON property `trackingImageUrl`
# @return [String]
attr_accessor :tracking_image_url
#
# Corresponds to the JSON property `watchIconImageUrl`
# @return [String]
attr_accessor :watch_icon_image_url
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@background_image_url = args[:background_image_url] if args.key?(:background_image_url)
@banner_external_url = args[:banner_external_url] if args.key?(:banner_external_url)
@banner_image_url = args[:banner_image_url] if args.key?(:banner_image_url)
@banner_mobile_extra_hd_image_url = args[:banner_mobile_extra_hd_image_url] if args.key?(:banner_mobile_extra_hd_image_url)
@banner_mobile_hd_image_url = args[:banner_mobile_hd_image_url] if args.key?(:banner_mobile_hd_image_url)
@banner_mobile_image_url = args[:banner_mobile_image_url] if args.key?(:banner_mobile_image_url)
@banner_mobile_low_image_url = args[:banner_mobile_low_image_url] if args.key?(:banner_mobile_low_image_url)
@banner_mobile_medium_hd_image_url = args[:banner_mobile_medium_hd_image_url] if args.key?(:banner_mobile_medium_hd_image_url)
@banner_tablet_extra_hd_image_url = args[:banner_tablet_extra_hd_image_url] if args.key?(:banner_tablet_extra_hd_image_url)
@banner_tablet_hd_image_url = args[:banner_tablet_hd_image_url] if args.key?(:banner_tablet_hd_image_url)
@banner_tablet_image_url = args[:banner_tablet_image_url] if args.key?(:banner_tablet_image_url)
@banner_tablet_low_image_url = args[:banner_tablet_low_image_url] if args.key?(:banner_tablet_low_image_url)
@banner_tv_high_image_url = args[:banner_tv_high_image_url] if args.key?(:banner_tv_high_image_url)
@banner_tv_image_url = args[:banner_tv_image_url] if args.key?(:banner_tv_image_url)
@banner_tv_low_image_url = args[:banner_tv_low_image_url] if args.key?(:banner_tv_low_image_url)
@banner_tv_medium_image_url = args[:banner_tv_medium_image_url] if args.key?(:banner_tv_medium_image_url)
@large_branded_banner_image_imap_script = args[:large_branded_banner_image_imap_script] if args.key?(:large_branded_banner_image_imap_script)
@large_branded_banner_image_url = args[:large_branded_banner_image_url] if args.key?(:large_branded_banner_image_url)
@small_branded_banner_image_imap_script = args[:small_branded_banner_image_imap_script] if args.key?(:small_branded_banner_image_imap_script)
@small_branded_banner_image_url = args[:small_branded_banner_image_url] if args.key?(:small_branded_banner_image_url)
@tracking_image_url = args[:tracking_image_url] if args.key?(:tracking_image_url)
@watch_icon_image_url = args[:watch_icon_image_url] if args.key?(:watch_icon_image_url)
end
end
# Describes information necessary for ingesting an RTMP or an HTTP stream.
class IngestionInfo
include Google::Apis::Core::Hashable
# The backup ingestion URL that you should use to stream video to YouTube. You
# have the option of simultaneously streaming the content that you are sending
# to the ingestionAddress to this URL.
# Corresponds to the JSON property `backupIngestionAddress`
# @return [String]
attr_accessor :backup_ingestion_address
# The primary ingestion URL that you should use to stream video to YouTube. You
# must stream video to this URL. Depending on which application or tool you use
# to encode your video stream, you may need to enter the stream URL and stream
# name separately or you may need to concatenate them in the following format: *
# STREAM_URL/STREAM_NAME*
# Corresponds to the JSON property `ingestionAddress`
# @return [String]
attr_accessor :ingestion_address
# This ingestion url may be used instead of backupIngestionAddress in order to
# stream via RTMPS. Not applicable to non-RTMP streams.
# Corresponds to the JSON property `rtmpsBackupIngestionAddress`
# @return [String]
attr_accessor :rtmps_backup_ingestion_address
# This ingestion url may be used instead of ingestionAddress in order to stream
# via RTMPS. Not applicable to non-RTMP streams.
# Corresponds to the JSON property `rtmpsIngestionAddress`
# @return [String]
attr_accessor :rtmps_ingestion_address
# The HTTP or RTMP stream name that YouTube assigns to the video stream.
# Corresponds to the JSON property `streamName`
# @return [String]
attr_accessor :stream_name
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@backup_ingestion_address = args[:backup_ingestion_address] if args.key?(:backup_ingestion_address)
@ingestion_address = args[:ingestion_address] if args.key?(:ingestion_address)
@rtmps_backup_ingestion_address = args[:rtmps_backup_ingestion_address] if args.key?(:rtmps_backup_ingestion_address)
@rtmps_ingestion_address = args[:rtmps_ingestion_address] if args.key?(:rtmps_ingestion_address)
@stream_name = args[:stream_name] if args.key?(:stream_name)
end
end
# LINT.IfChange Describes an invideo branding.
class InvideoBranding
include Google::Apis::Core::Hashable
# The bytes the uploaded image. Only used in api to youtube communication.
# Corresponds to the JSON property `imageBytes`
# NOTE: Values are automatically base64 encoded/decoded in the client library.
# @return [String]
attr_accessor :image_bytes
# The url of the uploaded image. Only used in apiary to api communication.
# Corresponds to the JSON property `imageUrl`
# @return [String]
attr_accessor :image_url
# Describes the spatial position of a visual widget inside a video. It is a
# union of various position types, out of which only will be set one.
# Corresponds to the JSON property `position`
# @return [Google::Apis::YoutubeV3::InvideoPosition]
attr_accessor :position
# The channel to which this branding links. If not present it defaults to the
# current channel.
# Corresponds to the JSON property `targetChannelId`
# @return [String]
attr_accessor :target_channel_id
# Describes a temporal position of a visual widget inside a video.
# Corresponds to the JSON property `timing`
# @return [Google::Apis::YoutubeV3::InvideoTiming]
attr_accessor :timing
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@image_bytes = args[:image_bytes] if args.key?(:image_bytes)
@image_url = args[:image_url] if args.key?(:image_url)
@position = args[:position] if args.key?(:position)
@target_channel_id = args[:target_channel_id] if args.key?(:target_channel_id)
@timing = args[:timing] if args.key?(:timing)
end
end
# Describes the spatial position of a visual widget inside a video. It is a
# union of various position types, out of which only will be set one.
class InvideoPosition
include Google::Apis::Core::Hashable
# Describes in which corner of the video the visual widget will appear.
# Corresponds to the JSON property `cornerPosition`
# @return [String]
attr_accessor :corner_position
# Defines the position type.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@corner_position = args[:corner_position] if args.key?(:corner_position)
@type = args[:type] if args.key?(:type)
end
end
# Describes a temporal position of a visual widget inside a video.
class InvideoTiming
include Google::Apis::Core::Hashable
# Defines the duration in milliseconds for which the promotion should be
# displayed. If missing, the client should use the default.
# Corresponds to the JSON property `durationMs`
# @return [Fixnum]
attr_accessor :duration_ms
# Defines the time at which the promotion will appear. Depending on the value of
# type the value of the offsetMs field will represent a time offset from the
# start or from the end of the video, expressed in milliseconds.
# Corresponds to the JSON property `offsetMs`
# @return [Fixnum]
attr_accessor :offset_ms
# Describes a timing type. If the value is offsetFromStart, then the offsetMs
# field represents an offset from the start of the video. If the value is
# offsetFromEnd, then the offsetMs field represents an offset from the end of
# the video.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@duration_ms = args[:duration_ms] if args.key?(:duration_ms)
@offset_ms = args[:offset_ms] if args.key?(:offset_ms)
@type = args[:type] if args.key?(:type)
end
end
#
class LanguageTag
include Google::Apis::Core::Hashable
#
# Corresponds to the JSON property `value`
# @return [String]
attr_accessor :value
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@value = args[:value] if args.key?(:value)
end
end
#
class LevelDetails
include Google::Apis::Core::Hashable
# The name that should be used when referring to this level.
# Corresponds to the JSON property `displayName`
# @return [String]
attr_accessor :display_name
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@display_name = args[:display_name] if args.key?(:display_name)
end
end
# A *liveBroadcast* resource represents an event that will be streamed, via live
# video, on YouTube.
class LiveBroadcast
include Google::Apis::Core::Hashable
# Detailed settings of a broadcast.
# Corresponds to the JSON property `contentDetails`
# @return [Google::Apis::YoutubeV3::LiveBroadcastContentDetails]
attr_accessor :content_details
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube assigns to uniquely identify the broadcast.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# liveBroadcast".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# Basic broadcast information.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::LiveBroadcastSnippet]
attr_accessor :snippet
# Statistics about the live broadcast. These represent a snapshot of the values
# at the time of the request. Statistics are only returned for live broadcasts.
# Corresponds to the JSON property `statistics`
# @return [Google::Apis::YoutubeV3::LiveBroadcastStatistics]
attr_accessor :statistics
# Live broadcast state.
# Corresponds to the JSON property `status`
# @return [Google::Apis::YoutubeV3::LiveBroadcastStatus]
attr_accessor :status
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@content_details = args[:content_details] if args.key?(:content_details)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
@statistics = args[:statistics] if args.key?(:statistics)
@status = args[:status] if args.key?(:status)
end
end
# Detailed settings of a broadcast.
class LiveBroadcastContentDetails
include Google::Apis::Core::Hashable
# This value uniquely identifies the live stream bound to the broadcast.
# Corresponds to the JSON property `boundStreamId`
# @return [String]
attr_accessor :bound_stream_id
# The date and time that the live stream referenced by boundStreamId was last
# updated.
# Corresponds to the JSON property `boundStreamLastUpdateTimeMs`
# @return [String]
attr_accessor :bound_stream_last_update_time_ms
#
# Corresponds to the JSON property `closedCaptionsType`
# @return [String]
attr_accessor :closed_captions_type
# This setting indicates whether auto start is enabled for this broadcast. The
# default value for this property is false. This setting can only be used by
# Events.
# Corresponds to the JSON property `enableAutoStart`
# @return [Boolean]
attr_accessor :enable_auto_start
alias_method :enable_auto_start?, :enable_auto_start
# This setting indicates whether auto stop is enabled for this broadcast. The
# default value for this property is false. This setting can only be used by
# Events.
# Corresponds to the JSON property `enableAutoStop`
# @return [Boolean]
attr_accessor :enable_auto_stop
alias_method :enable_auto_stop?, :enable_auto_stop
# This setting indicates whether HTTP POST closed captioning is enabled for this
# broadcast. The ingestion URL of the closed captions is returned through the
# liveStreams API. This is mutually exclusive with using the
# closed_captions_type property, and is equivalent to setting
# closed_captions_type to CLOSED_CAPTIONS_HTTP_POST.
# Corresponds to the JSON property `enableClosedCaptions`
# @return [Boolean]
attr_accessor :enable_closed_captions
alias_method :enable_closed_captions?, :enable_closed_captions
# This setting indicates whether YouTube should enable content encryption for
# the broadcast.
# Corresponds to the JSON property `enableContentEncryption`
# @return [Boolean]
attr_accessor :enable_content_encryption
alias_method :enable_content_encryption?, :enable_content_encryption
# This setting determines whether viewers can access DVR controls while watching
# the video. DVR controls enable the viewer to control the video playback
# experience by pausing, rewinding, or fast forwarding content. The default
# value for this property is true. *Important:* You must set the value to true
# and also set the enableArchive property's value to true if you want to make
# playback available immediately after the broadcast ends.
# Corresponds to the JSON property `enableDvr`
# @return [Boolean]
attr_accessor :enable_dvr
alias_method :enable_dvr?, :enable_dvr
# This setting indicates whether the broadcast video can be played in an
# embedded player. If you choose to archive the video (using the enableArchive
# property), this setting will also apply to the archived video.
# Corresponds to the JSON property `enableEmbed`
# @return [Boolean]
attr_accessor :enable_embed
alias_method :enable_embed?, :enable_embed
# Indicates whether this broadcast has low latency enabled.
# Corresponds to the JSON property `enableLowLatency`
# @return [Boolean]
attr_accessor :enable_low_latency
alias_method :enable_low_latency?, :enable_low_latency
# If both this and enable_low_latency are set, they must match. LATENCY_NORMAL
# should match enable_low_latency=false LATENCY_LOW should match
# enable_low_latency=true LATENCY_ULTRA_LOW should have enable_low_latency
# omitted.
# Corresponds to the JSON property `latencyPreference`
# @return [String]
attr_accessor :latency_preference
# The mesh for projecting the video if projection is mesh. The mesh value must
# be a UTF-8 string containing the base-64 encoding of 3D mesh data that follows
# the Spherical Video V2 RFC specification for an mshp box, excluding the box
# size and type but including the following four reserved zero bytes for the
# version and flags.
# Corresponds to the JSON property `mesh`
# NOTE: Values are automatically base64 encoded/decoded in the client library.
# @return [String]
attr_accessor :mesh
# Settings and Info of the monitor stream
# Corresponds to the JSON property `monitorStream`
# @return [Google::Apis::YoutubeV3::MonitorStreamInfo]
attr_accessor :monitor_stream
# The projection format of this broadcast. This defaults to rectangular.
# Corresponds to the JSON property `projection`
# @return [String]
attr_accessor :projection
# Automatically start recording after the event goes live. The default value for
# this property is true. *Important:* You must also set the enableDvr property's
# value to true if you want the playback to be available immediately after the
# broadcast ends. If you set this property's value to true but do not also set
# the enableDvr property to true, there may be a delay of around one day before
# the archived video will be available for playback.
# Corresponds to the JSON property `recordFromStart`
# @return [Boolean]
attr_accessor :record_from_start
alias_method :record_from_start?, :record_from_start
# This setting indicates whether the broadcast should automatically begin with
# an in-stream slate when you update the broadcast's status to live. After
# updating the status, you then need to send a liveCuepoints.insert request that
# sets the cuepoint's eventState to end to remove the in-stream slate and make
# your broadcast stream visible to viewers.
# Corresponds to the JSON property `startWithSlate`
# @return [Boolean]
attr_accessor :start_with_slate
alias_method :start_with_slate?, :start_with_slate
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@bound_stream_id = args[:bound_stream_id] if args.key?(:bound_stream_id)
@bound_stream_last_update_time_ms = args[:bound_stream_last_update_time_ms] if args.key?(:bound_stream_last_update_time_ms)
@closed_captions_type = args[:closed_captions_type] if args.key?(:closed_captions_type)
@enable_auto_start = args[:enable_auto_start] if args.key?(:enable_auto_start)
@enable_auto_stop = args[:enable_auto_stop] if args.key?(:enable_auto_stop)
@enable_closed_captions = args[:enable_closed_captions] if args.key?(:enable_closed_captions)
@enable_content_encryption = args[:enable_content_encryption] if args.key?(:enable_content_encryption)
@enable_dvr = args[:enable_dvr] if args.key?(:enable_dvr)
@enable_embed = args[:enable_embed] if args.key?(:enable_embed)
@enable_low_latency = args[:enable_low_latency] if args.key?(:enable_low_latency)
@latency_preference = args[:latency_preference] if args.key?(:latency_preference)
@mesh = args[:mesh] if args.key?(:mesh)
@monitor_stream = args[:monitor_stream] if args.key?(:monitor_stream)
@projection = args[:projection] if args.key?(:projection)
@record_from_start = args[:record_from_start] if args.key?(:record_from_start)
@start_with_slate = args[:start_with_slate] if args.key?(:start_with_slate)
end
end
#
class ListLiveBroadcastsResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of broadcasts that match the request criteria.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::LiveBroadcast>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# liveBroadcastListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The token that can be used as the value of the pageToken parameter to retrieve
# the next page in the result set.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# Paging details for lists of resources, including total number of items
# available and number of resources returned in a single page.
# Corresponds to the JSON property `pageInfo`
# @return [Google::Apis::YoutubeV3::PageInfo]
attr_accessor :page_info
# The token that can be used as the value of the pageToken parameter to retrieve
# the previous page in the result set.
# Corresponds to the JSON property `prevPageToken`
# @return [String]
attr_accessor :prev_page_token
# Stub token pagination template to suppress results.
# Corresponds to the JSON property `tokenPagination`
# @return [Google::Apis::YoutubeV3::TokenPagination]
attr_accessor :token_pagination
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@page_info = args[:page_info] if args.key?(:page_info)
@prev_page_token = args[:prev_page_token] if args.key?(:prev_page_token)
@token_pagination = args[:token_pagination] if args.key?(:token_pagination)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
# Basic broadcast information.
class LiveBroadcastSnippet
include Google::Apis::Core::Hashable
# The date and time that the broadcast actually ended. This information is only
# available once the broadcast's state is complete. The value is specified in
# ISO 8601 format.
# Corresponds to the JSON property `actualEndTime`
# @return [String]
attr_accessor :actual_end_time
# The date and time that the broadcast actually started. This information is
# only available once the broadcast's state is live. The value is specified in
# ISO 8601 format.
# Corresponds to the JSON property `actualStartTime`
# @return [String]
attr_accessor :actual_start_time
# The ID that YouTube uses to uniquely identify the channel that is publishing
# the broadcast.
# Corresponds to the JSON property `channelId`
# @return [String]
attr_accessor :channel_id
# The broadcast's description. As with the title, you can set this field by
# modifying the broadcast resource or by setting the description field of the
# corresponding video resource.
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
# Indicates whether this broadcast is the default broadcast. Internal only.
# Corresponds to the JSON property `isDefaultBroadcast`
# @return [Boolean]
attr_accessor :is_default_broadcast
alias_method :is_default_broadcast?, :is_default_broadcast
# The id of the live chat for this broadcast.
# Corresponds to the JSON property `liveChatId`
# @return [String]
attr_accessor :live_chat_id
# The date and time that the broadcast was added to YouTube's live broadcast
# schedule. The value is specified in ISO 8601 format.
# Corresponds to the JSON property `publishedAt`
# @return [String]
attr_accessor :published_at
# The date and time that the broadcast is scheduled to end. The value is
# specified in ISO 8601 format.
# Corresponds to the JSON property `scheduledEndTime`
# @return [String]
attr_accessor :scheduled_end_time
# The date and time that the broadcast is scheduled to start. The value is
# specified in ISO 8601 format.
# Corresponds to the JSON property `scheduledStartTime`
# @return [String]
attr_accessor :scheduled_start_time
# Internal representation of thumbnails for a YouTube resource.
# Corresponds to the JSON property `thumbnails`
# @return [Google::Apis::YoutubeV3::ThumbnailDetails]
attr_accessor :thumbnails
# The broadcast's title. Note that the broadcast represents exactly one YouTube
# video. You can set this field by modifying the broadcast resource or by
# setting the title field of the corresponding video resource.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@actual_end_time = args[:actual_end_time] if args.key?(:actual_end_time)
@actual_start_time = args[:actual_start_time] if args.key?(:actual_start_time)
@channel_id = args[:channel_id] if args.key?(:channel_id)
@description = args[:description] if args.key?(:description)
@is_default_broadcast = args[:is_default_broadcast] if args.key?(:is_default_broadcast)
@live_chat_id = args[:live_chat_id] if args.key?(:live_chat_id)
@published_at = args[:published_at] if args.key?(:published_at)
@scheduled_end_time = args[:scheduled_end_time] if args.key?(:scheduled_end_time)
@scheduled_start_time = args[:scheduled_start_time] if args.key?(:scheduled_start_time)
@thumbnails = args[:thumbnails] if args.key?(:thumbnails)
@title = args[:title] if args.key?(:title)
end
end
# Statistics about the live broadcast. These represent a snapshot of the values
# at the time of the request. Statistics are only returned for live broadcasts.
class LiveBroadcastStatistics
include Google::Apis::Core::Hashable
# The total number of live chat messages currently on the broadcast. The
# property and its value will be present if the broadcast is public, has the
# live chat feature enabled, and has at least one message. Note that this field
# will not be filled after the broadcast ends. So this property would not
# identify the number of chat messages for an archived video of a completed live
# broadcast.
# Corresponds to the JSON property `totalChatCount`
# @return [Fixnum]
attr_accessor :total_chat_count
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@total_chat_count = args[:total_chat_count] if args.key?(:total_chat_count)
end
end
# Live broadcast state.
class LiveBroadcastStatus
include Google::Apis::Core::Hashable
# The broadcast's status. The status can be updated using the API's
# liveBroadcasts.transition method.
# Corresponds to the JSON property `lifeCycleStatus`
# @return [String]
attr_accessor :life_cycle_status
# Priority of the live broadcast event (internal state).
# Corresponds to the JSON property `liveBroadcastPriority`
# @return [String]
attr_accessor :live_broadcast_priority
# Whether the broadcast is made for kids or not, decided by YouTube instead of
# the creator. This field is read only.
# Corresponds to the JSON property `madeForKids`
# @return [Boolean]
attr_accessor :made_for_kids
alias_method :made_for_kids?, :made_for_kids
# The broadcast's privacy status. Note that the broadcast represents exactly one
# YouTube video, so the privacy settings are identical to those supported for
# videos. In addition, you can set this field by modifying the broadcast
# resource or by setting the privacyStatus field of the corresponding video
# resource.
# Corresponds to the JSON property `privacyStatus`
# @return [String]
attr_accessor :privacy_status
# The broadcast's recording status.
# Corresponds to the JSON property `recordingStatus`
# @return [String]
attr_accessor :recording_status
# This field will be set to True if the creator declares the broadcast to be
# kids only: go/live-cw-work.
# Corresponds to the JSON property `selfDeclaredMadeForKids`
# @return [Boolean]
attr_accessor :self_declared_made_for_kids
alias_method :self_declared_made_for_kids?, :self_declared_made_for_kids
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@life_cycle_status = args[:life_cycle_status] if args.key?(:life_cycle_status)
@live_broadcast_priority = args[:live_broadcast_priority] if args.key?(:live_broadcast_priority)
@made_for_kids = args[:made_for_kids] if args.key?(:made_for_kids)
@privacy_status = args[:privacy_status] if args.key?(:privacy_status)
@recording_status = args[:recording_status] if args.key?(:recording_status)
@self_declared_made_for_kids = args[:self_declared_made_for_kids] if args.key?(:self_declared_made_for_kids)
end
end
# A `__liveChatBan__` resource represents a ban for a YouTube live chat.
class LiveChatBan
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube assigns to uniquely identify the ban.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string `"youtube#
# liveChatBan"`.
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The `snippet` object contains basic details about the ban.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::LiveChatBanSnippet]
attr_accessor :snippet
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
end
end
#
class LiveChatBanSnippet
include Google::Apis::Core::Hashable
# The duration of a ban, only filled if the ban has type TEMPORARY.
# Corresponds to the JSON property `banDurationSeconds`
# @return [Fixnum]
attr_accessor :ban_duration_seconds
#
# Corresponds to the JSON property `bannedUserDetails`
# @return [Google::Apis::YoutubeV3::ChannelProfileDetails]
attr_accessor :banned_user_details
# The chat this ban is pertinent to.
# Corresponds to the JSON property `liveChatId`
# @return [String]
attr_accessor :live_chat_id
# The type of ban.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@ban_duration_seconds = args[:ban_duration_seconds] if args.key?(:ban_duration_seconds)
@banned_user_details = args[:banned_user_details] if args.key?(:banned_user_details)
@live_chat_id = args[:live_chat_id] if args.key?(:live_chat_id)
@type = args[:type] if args.key?(:type)
end
end
#
class LiveChatFanFundingEventDetails
include Google::Apis::Core::Hashable
# A rendered string that displays the fund amount and currency to the user.
# Corresponds to the JSON property `amountDisplayString`
# @return [String]
attr_accessor :amount_display_string
# The amount of the fund.
# Corresponds to the JSON property `amountMicros`
# @return [Fixnum]
attr_accessor :amount_micros
# The currency in which the fund was made.
# Corresponds to the JSON property `currency`
# @return [String]
attr_accessor :currency
# The comment added by the user to this fan funding event.
# Corresponds to the JSON property `userComment`
# @return [String]
attr_accessor :user_comment
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@amount_display_string = args[:amount_display_string] if args.key?(:amount_display_string)
@amount_micros = args[:amount_micros] if args.key?(:amount_micros)
@currency = args[:currency] if args.key?(:currency)
@user_comment = args[:user_comment] if args.key?(:user_comment)
end
end
# A *liveChatMessage* resource represents a chat message in a YouTube Live Chat.
class LiveChatMessage
include Google::Apis::Core::Hashable
# The authorDetails object contains basic details about the user that posted
# this message.
# Corresponds to the JSON property `authorDetails`
# @return [Google::Apis::YoutubeV3::LiveChatMessageAuthorDetails]
attr_accessor :author_details
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube assigns to uniquely identify the message.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# liveChatMessage".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The snippet object contains basic details about the message.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::LiveChatMessageSnippet]
attr_accessor :snippet
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@author_details = args[:author_details] if args.key?(:author_details)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
end
end
#
class LiveChatMessageAuthorDetails
include Google::Apis::Core::Hashable
# The YouTube channel ID.
# Corresponds to the JSON property `channelId`
# @return [String]
attr_accessor :channel_id
# The channel's URL.
# Corresponds to the JSON property `channelUrl`
# @return [String]
attr_accessor :channel_url
# The channel's display name.
# Corresponds to the JSON property `displayName`
# @return [String]
attr_accessor :display_name
# Whether the author is a moderator of the live chat.
# Corresponds to the JSON property `isChatModerator`
# @return [Boolean]
attr_accessor :is_chat_moderator
alias_method :is_chat_moderator?, :is_chat_moderator
# Whether the author is the owner of the live chat.
# Corresponds to the JSON property `isChatOwner`
# @return [Boolean]
attr_accessor :is_chat_owner
alias_method :is_chat_owner?, :is_chat_owner
# Whether the author is a sponsor of the live chat.
# Corresponds to the JSON property `isChatSponsor`
# @return [Boolean]
attr_accessor :is_chat_sponsor
alias_method :is_chat_sponsor?, :is_chat_sponsor
# Whether the author's identity has been verified by YouTube.
# Corresponds to the JSON property `isVerified`
# @return [Boolean]
attr_accessor :is_verified
alias_method :is_verified?, :is_verified
# The channels's avatar URL.
# Corresponds to the JSON property `profileImageUrl`
# @return [String]
attr_accessor :profile_image_url
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@channel_id = args[:channel_id] if args.key?(:channel_id)
@channel_url = args[:channel_url] if args.key?(:channel_url)
@display_name = args[:display_name] if args.key?(:display_name)
@is_chat_moderator = args[:is_chat_moderator] if args.key?(:is_chat_moderator)
@is_chat_owner = args[:is_chat_owner] if args.key?(:is_chat_owner)
@is_chat_sponsor = args[:is_chat_sponsor] if args.key?(:is_chat_sponsor)
@is_verified = args[:is_verified] if args.key?(:is_verified)
@profile_image_url = args[:profile_image_url] if args.key?(:profile_image_url)
end
end
#
class LiveChatMessageDeletedDetails
include Google::Apis::Core::Hashable
#
# Corresponds to the JSON property `deletedMessageId`
# @return [String]
attr_accessor :deleted_message_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@deleted_message_id = args[:deleted_message_id] if args.key?(:deleted_message_id)
end
end
#
class LiveChatMessageListResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
#
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::LiveChatMessage>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# liveChatMessageListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
#
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# The date and time when the underlying stream went offline. The value is
# specified in ISO 8601 format.
# Corresponds to the JSON property `offlineAt`
# @return [String]
attr_accessor :offline_at
# Paging details for lists of resources, including total number of items
# available and number of resources returned in a single page.
# Corresponds to the JSON property `pageInfo`
# @return [Google::Apis::YoutubeV3::PageInfo]
attr_accessor :page_info
# The amount of time the client should wait before polling again.
# Corresponds to the JSON property `pollingIntervalMillis`
# @return [Fixnum]
attr_accessor :polling_interval_millis
# Stub token pagination template to suppress results.
# Corresponds to the JSON property `tokenPagination`
# @return [Google::Apis::YoutubeV3::TokenPagination]
attr_accessor :token_pagination
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@offline_at = args[:offline_at] if args.key?(:offline_at)
@page_info = args[:page_info] if args.key?(:page_info)
@polling_interval_millis = args[:polling_interval_millis] if args.key?(:polling_interval_millis)
@token_pagination = args[:token_pagination] if args.key?(:token_pagination)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
#
class LiveChatMessageRetractedDetails
include Google::Apis::Core::Hashable
#
# Corresponds to the JSON property `retractedMessageId`
# @return [String]
attr_accessor :retracted_message_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@retracted_message_id = args[:retracted_message_id] if args.key?(:retracted_message_id)
end
end
#
class LiveChatMessageSnippet
include Google::Apis::Core::Hashable
# The ID of the user that authored this message, this field is not always filled.
# textMessageEvent - the user that wrote the message fanFundingEvent - the user
# that funded the broadcast newSponsorEvent - the user that just became a
# sponsor messageDeletedEvent - the moderator that took the action
# messageRetractedEvent - the author that retracted their message
# userBannedEvent - the moderator that took the action superChatEvent - the user
# that made the purchase
# Corresponds to the JSON property `authorChannelId`
# @return [String]
attr_accessor :author_channel_id
# Contains a string that can be displayed to the user. If this field is not
# present the message is silent, at the moment only messages of type TOMBSTONE
# and CHAT_ENDED_EVENT are silent.
# Corresponds to the JSON property `displayMessage`
# @return [String]
attr_accessor :display_message
# Details about the funding event, this is only set if the type is '
# fanFundingEvent'.
# Corresponds to the JSON property `fanFundingEventDetails`
# @return [Google::Apis::YoutubeV3::LiveChatFanFundingEventDetails]
attr_accessor :fan_funding_event_details
# Whether the message has display content that should be displayed to users.
# Corresponds to the JSON property `hasDisplayContent`
# @return [Boolean]
attr_accessor :has_display_content
alias_method :has_display_content?, :has_display_content
#
# Corresponds to the JSON property `liveChatId`
# @return [String]
attr_accessor :live_chat_id
#
# Corresponds to the JSON property `messageDeletedDetails`
# @return [Google::Apis::YoutubeV3::LiveChatMessageDeletedDetails]
attr_accessor :message_deleted_details
#
# Corresponds to the JSON property `messageRetractedDetails`
# @return [Google::Apis::YoutubeV3::LiveChatMessageRetractedDetails]
attr_accessor :message_retracted_details
# The date and time when the message was orignally published. The value is
# specified in ISO 8601 format.
# Corresponds to the JSON property `publishedAt`
# @return [String]
attr_accessor :published_at
# Details about the Super Chat event, this is only set if the type is '
# superChatEvent'.
# Corresponds to the JSON property `superChatDetails`
# @return [Google::Apis::YoutubeV3::LiveChatSuperChatDetails]
attr_accessor :super_chat_details
# Details about the Super Sticker event, this is only set if the type is '
# superStickerEvent'.
# Corresponds to the JSON property `superStickerDetails`
# @return [Google::Apis::YoutubeV3::LiveChatSuperStickerDetails]
attr_accessor :super_sticker_details
# Details about the text message, this is only set if the type is '
# textMessageEvent'.
# Corresponds to the JSON property `textMessageDetails`
# @return [Google::Apis::YoutubeV3::LiveChatTextMessageDetails]
attr_accessor :text_message_details
# The type of message, this will always be present, it determines the contents
# of the message as well as which fields will be present.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
#
# Corresponds to the JSON property `userBannedDetails`
# @return [Google::Apis::YoutubeV3::LiveChatUserBannedMessageDetails]
attr_accessor :user_banned_details
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@author_channel_id = args[:author_channel_id] if args.key?(:author_channel_id)
@display_message = args[:display_message] if args.key?(:display_message)
@fan_funding_event_details = args[:fan_funding_event_details] if args.key?(:fan_funding_event_details)
@has_display_content = args[:has_display_content] if args.key?(:has_display_content)
@live_chat_id = args[:live_chat_id] if args.key?(:live_chat_id)
@message_deleted_details = args[:message_deleted_details] if args.key?(:message_deleted_details)
@message_retracted_details = args[:message_retracted_details] if args.key?(:message_retracted_details)
@published_at = args[:published_at] if args.key?(:published_at)
@super_chat_details = args[:super_chat_details] if args.key?(:super_chat_details)
@super_sticker_details = args[:super_sticker_details] if args.key?(:super_sticker_details)
@text_message_details = args[:text_message_details] if args.key?(:text_message_details)
@type = args[:type] if args.key?(:type)
@user_banned_details = args[:user_banned_details] if args.key?(:user_banned_details)
end
end
# A *liveChatModerator* resource represents a moderator for a YouTube live chat.
# A chat moderator has the ability to ban/unban users from a chat, remove
# message, etc.
class LiveChatModerator
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube assigns to uniquely identify the moderator.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# liveChatModerator".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The snippet object contains basic details about the moderator.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::LiveChatModeratorSnippet]
attr_accessor :snippet
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
end
end
#
class LiveChatModeratorListResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of moderators that match the request criteria.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::LiveChatModerator>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# liveChatModeratorListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The token that can be used as the value of the pageToken parameter to retrieve
# the next page in the result set.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# Paging details for lists of resources, including total number of items
# available and number of resources returned in a single page.
# Corresponds to the JSON property `pageInfo`
# @return [Google::Apis::YoutubeV3::PageInfo]
attr_accessor :page_info
# The token that can be used as the value of the pageToken parameter to retrieve
# the previous page in the result set.
# Corresponds to the JSON property `prevPageToken`
# @return [String]
attr_accessor :prev_page_token
# Stub token pagination template to suppress results.
# Corresponds to the JSON property `tokenPagination`
# @return [Google::Apis::YoutubeV3::TokenPagination]
attr_accessor :token_pagination
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@page_info = args[:page_info] if args.key?(:page_info)
@prev_page_token = args[:prev_page_token] if args.key?(:prev_page_token)
@token_pagination = args[:token_pagination] if args.key?(:token_pagination)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
#
class LiveChatModeratorSnippet
include Google::Apis::Core::Hashable
# The ID of the live chat this moderator can act on.
# Corresponds to the JSON property `liveChatId`
# @return [String]
attr_accessor :live_chat_id
# Details about the moderator.
# Corresponds to the JSON property `moderatorDetails`
# @return [Google::Apis::YoutubeV3::ChannelProfileDetails]
attr_accessor :moderator_details
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@live_chat_id = args[:live_chat_id] if args.key?(:live_chat_id)
@moderator_details = args[:moderator_details] if args.key?(:moderator_details)
end
end
#
class LiveChatSuperChatDetails
include Google::Apis::Core::Hashable
# A rendered string that displays the fund amount and currency to the user.
# Corresponds to the JSON property `amountDisplayString`
# @return [String]
attr_accessor :amount_display_string
# The amount purchased by the user, in micros (1,750,000 micros = 1.75).
# Corresponds to the JSON property `amountMicros`
# @return [Fixnum]
attr_accessor :amount_micros
# The currency in which the purchase was made.
# Corresponds to the JSON property `currency`
# @return [String]
attr_accessor :currency
# The tier in which the amount belongs. Lower amounts belong to lower tiers. The
# lowest tier is 1.
# Corresponds to the JSON property `tier`
# @return [Fixnum]
attr_accessor :tier
# The comment added by the user to this Super Chat event.
# Corresponds to the JSON property `userComment`
# @return [String]
attr_accessor :user_comment
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@amount_display_string = args[:amount_display_string] if args.key?(:amount_display_string)
@amount_micros = args[:amount_micros] if args.key?(:amount_micros)
@currency = args[:currency] if args.key?(:currency)
@tier = args[:tier] if args.key?(:tier)
@user_comment = args[:user_comment] if args.key?(:user_comment)
end
end
#
class LiveChatSuperStickerDetails
include Google::Apis::Core::Hashable
# A rendered string that displays the fund amount and currency to the user.
# Corresponds to the JSON property `amountDisplayString`
# @return [String]
attr_accessor :amount_display_string
# The amount purchased by the user, in micros (1,750,000 micros = 1.75).
# Corresponds to the JSON property `amountMicros`
# @return [Fixnum]
attr_accessor :amount_micros
# The currency in which the purchase was made.
# Corresponds to the JSON property `currency`
# @return [String]
attr_accessor :currency
# Information about the Super Sticker.
# Corresponds to the JSON property `superStickerMetadata`
# @return [Google::Apis::YoutubeV3::SuperStickerMetadata]
attr_accessor :super_sticker_metadata
# The tier in which the amount belongs. Lower amounts belong to lower tiers. The
# lowest tier is 1.
# Corresponds to the JSON property `tier`
# @return [Fixnum]
attr_accessor :tier
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@amount_display_string = args[:amount_display_string] if args.key?(:amount_display_string)
@amount_micros = args[:amount_micros] if args.key?(:amount_micros)
@currency = args[:currency] if args.key?(:currency)
@super_sticker_metadata = args[:super_sticker_metadata] if args.key?(:super_sticker_metadata)
@tier = args[:tier] if args.key?(:tier)
end
end
#
class LiveChatTextMessageDetails
include Google::Apis::Core::Hashable
# The user's message.
# Corresponds to the JSON property `messageText`
# @return [String]
attr_accessor :message_text
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@message_text = args[:message_text] if args.key?(:message_text)
end
end
#
class LiveChatUserBannedMessageDetails
include Google::Apis::Core::Hashable
# The duration of the ban. This property is only present if the banType is
# temporary.
# Corresponds to the JSON property `banDurationSeconds`
# @return [Fixnum]
attr_accessor :ban_duration_seconds
# The type of ban.
# Corresponds to the JSON property `banType`
# @return [String]
attr_accessor :ban_type
# The details of the user that was banned.
# Corresponds to the JSON property `bannedUserDetails`
# @return [Google::Apis::YoutubeV3::ChannelProfileDetails]
attr_accessor :banned_user_details
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@ban_duration_seconds = args[:ban_duration_seconds] if args.key?(:ban_duration_seconds)
@ban_type = args[:ban_type] if args.key?(:ban_type)
@banned_user_details = args[:banned_user_details] if args.key?(:banned_user_details)
end
end
# A live stream describes a live ingestion point.
class LiveStream
include Google::Apis::Core::Hashable
# Brief description of the live stream cdn settings.
# Corresponds to the JSON property `cdn`
# @return [Google::Apis::YoutubeV3::CdnSettings]
attr_accessor :cdn
# Detailed settings of a stream.
# Corresponds to the JSON property `contentDetails`
# @return [Google::Apis::YoutubeV3::LiveStreamContentDetails]
attr_accessor :content_details
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube assigns to uniquely identify the stream.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# liveStream".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The snippet object contains basic details about the stream, including its
# channel, title, and description.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::LiveStreamSnippet]
attr_accessor :snippet
# Brief description of the live stream status.
# Corresponds to the JSON property `status`
# @return [Google::Apis::YoutubeV3::LiveStreamStatus]
attr_accessor :status
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@cdn = args[:cdn] if args.key?(:cdn)
@content_details = args[:content_details] if args.key?(:content_details)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
@status = args[:status] if args.key?(:status)
end
end
#
class LiveStreamConfigurationIssue
include Google::Apis::Core::Hashable
# The long-form description of the issue and how to resolve it.
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
# The short-form reason for this issue.
# Corresponds to the JSON property `reason`
# @return [String]
attr_accessor :reason
# How severe this issue is to the stream.
# Corresponds to the JSON property `severity`
# @return [String]
attr_accessor :severity
# The kind of error happening.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@description = args[:description] if args.key?(:description)
@reason = args[:reason] if args.key?(:reason)
@severity = args[:severity] if args.key?(:severity)
@type = args[:type] if args.key?(:type)
end
end
# Detailed settings of a stream.
class LiveStreamContentDetails
include Google::Apis::Core::Hashable
# The ingestion URL where the closed captions of this stream are sent.
# Corresponds to the JSON property `closedCaptionsIngestionUrl`
# @return [String]
attr_accessor :closed_captions_ingestion_url
# Indicates whether the stream is reusable, which means that it can be bound to
# multiple broadcasts. It is common for broadcasters to reuse the same stream
# for many different broadcasts if those broadcasts occur at different times. If
# you set this value to false, then the stream will not be reusable, which means
# that it can only be bound to one broadcast. Non-reusable streams differ from
# reusable streams in the following ways: - A non-reusable stream can only be
# bound to one broadcast. - A non-reusable stream might be deleted by an
# automated process after the broadcast ends. - The liveStreams.list method does
# not list non-reusable streams if you call the method and set the mine
# parameter to true. The only way to use that method to retrieve the resource
# for a non-reusable stream is to use the id parameter to identify the stream.
# Corresponds to the JSON property `isReusable`
# @return [Boolean]
attr_accessor :is_reusable
alias_method :is_reusable?, :is_reusable
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@closed_captions_ingestion_url = args[:closed_captions_ingestion_url] if args.key?(:closed_captions_ingestion_url)
@is_reusable = args[:is_reusable] if args.key?(:is_reusable)
end
end
#
class LiveStreamHealthStatus
include Google::Apis::Core::Hashable
# The configurations issues on this stream
# Corresponds to the JSON property `configurationIssues`
# @return [Array<Google::Apis::YoutubeV3::LiveStreamConfigurationIssue>]
attr_accessor :configuration_issues
# The last time this status was updated (in seconds)
# Corresponds to the JSON property `lastUpdateTimeSeconds`
# @return [Fixnum]
attr_accessor :last_update_time_seconds
# The status code of this stream
# Corresponds to the JSON property `status`
# @return [String]
attr_accessor :status
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@configuration_issues = args[:configuration_issues] if args.key?(:configuration_issues)
@last_update_time_seconds = args[:last_update_time_seconds] if args.key?(:last_update_time_seconds)
@status = args[:status] if args.key?(:status)
end
end
#
class ListLiveStreamsResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of live streams that match the request criteria.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::LiveStream>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# liveStreamListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The token that can be used as the value of the pageToken parameter to retrieve
# the next page in the result set.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# Paging details for lists of resources, including total number of items
# available and number of resources returned in a single page.
# Corresponds to the JSON property `pageInfo`
# @return [Google::Apis::YoutubeV3::PageInfo]
attr_accessor :page_info
# The token that can be used as the value of the pageToken parameter to retrieve
# the previous page in the result set.
# Corresponds to the JSON property `prevPageToken`
# @return [String]
attr_accessor :prev_page_token
# Stub token pagination template to suppress results.
# Corresponds to the JSON property `tokenPagination`
# @return [Google::Apis::YoutubeV3::TokenPagination]
attr_accessor :token_pagination
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@page_info = args[:page_info] if args.key?(:page_info)
@prev_page_token = args[:prev_page_token] if args.key?(:prev_page_token)
@token_pagination = args[:token_pagination] if args.key?(:token_pagination)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
#
class LiveStreamSnippet
include Google::Apis::Core::Hashable
# The ID that YouTube uses to uniquely identify the channel that is transmitting
# the stream.
# Corresponds to the JSON property `channelId`
# @return [String]
attr_accessor :channel_id
# The stream's description. The value cannot be longer than 10000 characters.
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
#
# Corresponds to the JSON property `isDefaultStream`
# @return [Boolean]
attr_accessor :is_default_stream
alias_method :is_default_stream?, :is_default_stream
# The date and time that the stream was created. The value is specified in ISO
# 8601 format.
# Corresponds to the JSON property `publishedAt`
# @return [String]
attr_accessor :published_at
# The stream's title. The value must be between 1 and 128 characters long.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@channel_id = args[:channel_id] if args.key?(:channel_id)
@description = args[:description] if args.key?(:description)
@is_default_stream = args[:is_default_stream] if args.key?(:is_default_stream)
@published_at = args[:published_at] if args.key?(:published_at)
@title = args[:title] if args.key?(:title)
end
end
# Brief description of the live stream status.
class LiveStreamStatus
include Google::Apis::Core::Hashable
# The health status of the stream.
# Corresponds to the JSON property `healthStatus`
# @return [Google::Apis::YoutubeV3::LiveStreamHealthStatus]
attr_accessor :health_status
#
# Corresponds to the JSON property `streamStatus`
# @return [String]
attr_accessor :stream_status
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@health_status = args[:health_status] if args.key?(:health_status)
@stream_status = args[:stream_status] if args.key?(:stream_status)
end
end
#
class LocalizedProperty
include Google::Apis::Core::Hashable
#
# Corresponds to the JSON property `default`
# @return [String]
attr_accessor :default
# The language of the default property.
# Corresponds to the JSON property `defaultLanguage`
# @return [Google::Apis::YoutubeV3::LanguageTag]
attr_accessor :default_language
#
# Corresponds to the JSON property `localized`
# @return [Array<Google::Apis::YoutubeV3::LocalizedString>]
attr_accessor :localized
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@default = args[:default] if args.key?(:default)
@default_language = args[:default_language] if args.key?(:default_language)
@localized = args[:localized] if args.key?(:localized)
end
end
#
class LocalizedString
include Google::Apis::Core::Hashable
#
# Corresponds to the JSON property `language`
# @return [String]
attr_accessor :language
#
# Corresponds to the JSON property `value`
# @return [String]
attr_accessor :value
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@language = args[:language] if args.key?(:language)
@value = args[:value] if args.key?(:value)
end
end
# A *member* resource represents a member for a YouTube channel. A member
# provides recurring monetary support to a creator and receives special benefits.
class Member
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# member".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The snippet object contains basic details about the member.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::MemberSnippet]
attr_accessor :snippet
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
end
end
#
class MemberListResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of members that match the request criteria.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::Member>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# memberListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The token that can be used as the value of the pageToken parameter to retrieve
# the next page in the result set.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# Paging details for lists of resources, including total number of items
# available and number of resources returned in a single page.
# Corresponds to the JSON property `pageInfo`
# @return [Google::Apis::YoutubeV3::PageInfo]
attr_accessor :page_info
# Stub token pagination template to suppress results.
# Corresponds to the JSON property `tokenPagination`
# @return [Google::Apis::YoutubeV3::TokenPagination]
attr_accessor :token_pagination
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@page_info = args[:page_info] if args.key?(:page_info)
@token_pagination = args[:token_pagination] if args.key?(:token_pagination)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
#
class MemberSnippet
include Google::Apis::Core::Hashable
# The id of the channel that's offering memberships.
# Corresponds to the JSON property `creatorChannelId`
# @return [String]
attr_accessor :creator_channel_id
# Details about the member.
# Corresponds to the JSON property `memberDetails`
# @return [Google::Apis::YoutubeV3::ChannelProfileDetails]
attr_accessor :member_details
# Details about the user's membership.
# Corresponds to the JSON property `membershipsDetails`
# @return [Google::Apis::YoutubeV3::MembershipsDetails]
attr_accessor :memberships_details
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@creator_channel_id = args[:creator_channel_id] if args.key?(:creator_channel_id)
@member_details = args[:member_details] if args.key?(:member_details)
@memberships_details = args[:memberships_details] if args.key?(:memberships_details)
end
end
#
class MembershipsDetails
include Google::Apis::Core::Hashable
# Ids of all levels that the user has access to. This includes the currently
# active level and all other levels that are included because of a higher
# purchase.
# Corresponds to the JSON property `accessibleLevels`
# @return [Array<String>]
attr_accessor :accessible_levels
# Id of the highest level that the user has access to at the moment.
# Corresponds to the JSON property `highestAccessibleLevel`
# @return [String]
attr_accessor :highest_accessible_level
# Display name for the highest level that the user has access to at the moment.
# Corresponds to the JSON property `highestAccessibleLevelDisplayName`
# @return [String]
attr_accessor :highest_accessible_level_display_name
# Data about memberships duration without taking into consideration pricing
# levels.
# Corresponds to the JSON property `membershipsDuration`
# @return [Google::Apis::YoutubeV3::MembershipsDuration]
attr_accessor :memberships_duration
# Data about memberships duration on particular pricing levels.
# Corresponds to the JSON property `membershipsDurationAtLevels`
# @return [Array<Google::Apis::YoutubeV3::MembershipsDurationAtLevel>]
attr_accessor :memberships_duration_at_levels
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@accessible_levels = args[:accessible_levels] if args.key?(:accessible_levels)
@highest_accessible_level = args[:highest_accessible_level] if args.key?(:highest_accessible_level)
@highest_accessible_level_display_name = args[:highest_accessible_level_display_name] if args.key?(:highest_accessible_level_display_name)
@memberships_duration = args[:memberships_duration] if args.key?(:memberships_duration)
@memberships_duration_at_levels = args[:memberships_duration_at_levels] if args.key?(:memberships_duration_at_levels)
end
end
#
class MembershipsDuration
include Google::Apis::Core::Hashable
# The date and time when the user became a continuous member across all levels.
# Corresponds to the JSON property `memberSince`
# @return [String]
attr_accessor :member_since
# The cumulative time the user has been a member across all levels in complete
# months (the time is rounded down to the nearest integer).
# Corresponds to the JSON property `memberTotalDurationMonths`
# @return [Fixnum]
attr_accessor :member_total_duration_months
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@member_since = args[:member_since] if args.key?(:member_since)
@member_total_duration_months = args[:member_total_duration_months] if args.key?(:member_total_duration_months)
end
end
#
class MembershipsDurationAtLevel
include Google::Apis::Core::Hashable
# Pricing level ID.
# Corresponds to the JSON property `level`
# @return [String]
attr_accessor :level
# The date and time when the user became a continuous member for the given level.
# Corresponds to the JSON property `memberSince`
# @return [String]
attr_accessor :member_since
# The cumulative time the user has been a member for the given level in complete
# months (the time is rounded down to the nearest integer).
# Corresponds to the JSON property `memberTotalDurationMonths`
# @return [Fixnum]
attr_accessor :member_total_duration_months
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@level = args[:level] if args.key?(:level)
@member_since = args[:member_since] if args.key?(:member_since)
@member_total_duration_months = args[:member_total_duration_months] if args.key?(:member_total_duration_months)
end
end
# A *membershipsLevel* resource represents an offer made by YouTube creators for
# their fans. Users can become members of the channel by joining one of the
# available levels. They will provide recurring monetary support and receives
# special benefits.
class MembershipsLevel
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube assigns to uniquely identify the memberships level.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# membershipsLevelListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The snippet object contains basic details about the level.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::MembershipsLevelSnippet]
attr_accessor :snippet
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
end
end
#
class MembershipsLevelListResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of pricing levels offered by a creator to the fans.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::MembershipsLevel>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# membershipsLevelListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
#
class MembershipsLevelSnippet
include Google::Apis::Core::Hashable
# The id of the channel that's offering channel memberships.
# Corresponds to the JSON property `creatorChannelId`
# @return [String]
attr_accessor :creator_channel_id
# Details about the pricing level.
# Corresponds to the JSON property `levelDetails`
# @return [Google::Apis::YoutubeV3::LevelDetails]
attr_accessor :level_details
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@creator_channel_id = args[:creator_channel_id] if args.key?(:creator_channel_id)
@level_details = args[:level_details] if args.key?(:level_details)
end
end
# Settings and Info of the monitor stream
class MonitorStreamInfo
include Google::Apis::Core::Hashable
# If you have set the enableMonitorStream property to true, then this property
# determines the length of the live broadcast delay.
# Corresponds to the JSON property `broadcastStreamDelayMs`
# @return [Fixnum]
attr_accessor :broadcast_stream_delay_ms
# HTML code that embeds a player that plays the monitor stream.
# Corresponds to the JSON property `embedHtml`
# @return [String]
attr_accessor :embed_html
# This value determines whether the monitor stream is enabled for the broadcast.
# If the monitor stream is enabled, then YouTube will broadcast the event
# content on a special stream intended only for the broadcaster's consumption.
# The broadcaster can use the stream to review the event content and also to
# identify the optimal times to insert cuepoints. You need to set this value to
# true if you intend to have a broadcast delay for your event. *Note:* This
# property cannot be updated once the broadcast is in the testing or live state.
# Corresponds to the JSON property `enableMonitorStream`
# @return [Boolean]
attr_accessor :enable_monitor_stream
alias_method :enable_monitor_stream?, :enable_monitor_stream
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@broadcast_stream_delay_ms = args[:broadcast_stream_delay_ms] if args.key?(:broadcast_stream_delay_ms)
@embed_html = args[:embed_html] if args.key?(:embed_html)
@enable_monitor_stream = args[:enable_monitor_stream] if args.key?(:enable_monitor_stream)
end
end
# Paging details for lists of resources, including total number of items
# available and number of resources returned in a single page.
class PageInfo
include Google::Apis::Core::Hashable
# The number of results included in the API response.
# Corresponds to the JSON property `resultsPerPage`
# @return [Fixnum]
attr_accessor :results_per_page
# The total number of results in the result set.
# Corresponds to the JSON property `totalResults`
# @return [Fixnum]
attr_accessor :total_results
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@results_per_page = args[:results_per_page] if args.key?(:results_per_page)
@total_results = args[:total_results] if args.key?(:total_results)
end
end
# A *playlist* resource represents a YouTube playlist. A playlist is a
# collection of videos that can be viewed sequentially and shared with other
# users. A playlist can contain up to 200 videos, and YouTube does not limit the
# number of playlists that each user creates. By default, playlists are publicly
# visible to other users, but playlists can be public or private. YouTube also
# uses playlists to identify special collections of videos for a channel, such
# as: - uploaded videos - favorite videos - positively rated (liked) videos -
# watch history - watch later To be more specific, these lists are associated
# with a channel, which is a collection of a person, group, or company's videos,
# playlists, and other YouTube information. You can retrieve the playlist IDs
# for each of these lists from the channel resource for a given channel. You can
# then use the playlistItems.list method to retrieve any of those lists. You can
# also add or remove items from those lists by calling the playlistItems.insert
# and playlistItems.delete methods.
class Playlist
include Google::Apis::Core::Hashable
# The contentDetails object contains information like video count.
# Corresponds to the JSON property `contentDetails`
# @return [Google::Apis::YoutubeV3::PlaylistContentDetails]
attr_accessor :content_details
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube uses to uniquely identify the playlist.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# playlist".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# Localizations for different languages
# Corresponds to the JSON property `localizations`
# @return [Hash<String,Google::Apis::YoutubeV3::PlaylistLocalization>]
attr_accessor :localizations
# The player object contains information that you would use to play the playlist
# in an embedded player.
# Corresponds to the JSON property `player`
# @return [Google::Apis::YoutubeV3::PlaylistPlayer]
attr_accessor :player
# Basic details about a playlist, including title, description and thumbnails.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::PlaylistSnippet]
attr_accessor :snippet
# The status object contains status information for the playlist.
# Corresponds to the JSON property `status`
# @return [Google::Apis::YoutubeV3::PlaylistStatus]
attr_accessor :status
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@content_details = args[:content_details] if args.key?(:content_details)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@localizations = args[:localizations] if args.key?(:localizations)
@player = args[:player] if args.key?(:player)
@snippet = args[:snippet] if args.key?(:snippet)
@status = args[:status] if args.key?(:status)
end
end
#
class PlaylistContentDetails
include Google::Apis::Core::Hashable
# The number of videos in the playlist.
# Corresponds to the JSON property `itemCount`
# @return [Fixnum]
attr_accessor :item_count
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@item_count = args[:item_count] if args.key?(:item_count)
end
end
# A *playlistItem* resource identifies another resource, such as a video, that
# is included in a playlist. In addition, the playlistItem resource contains
# details about the included resource that pertain specifically to how that
# resource is used in that playlist. YouTube uses playlists to identify special
# collections of videos for a channel, such as: - uploaded videos - favorite
# videos - positively rated (liked) videos - watch history - watch later To be
# more specific, these lists are associated with a channel, which is a
# collection of a person, group, or company's videos, playlists, and other
# YouTube information. You can retrieve the playlist IDs for each of these lists
# from the channel resource for a given channel. You can then use the
# playlistItems.list method to retrieve any of those lists. You can also add or
# remove items from those lists by calling the playlistItems.insert and
# playlistItems.delete methods. For example, if a user gives a positive rating
# to a video, you would insert that video into the liked videos playlist for
# that user's channel.
class PlaylistItem
include Google::Apis::Core::Hashable
# The contentDetails object is included in the resource if the included item is
# a YouTube video. The object contains additional information about the video.
# Corresponds to the JSON property `contentDetails`
# @return [Google::Apis::YoutubeV3::PlaylistItemContentDetails]
attr_accessor :content_details
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube uses to uniquely identify the playlist item.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# playlistItem".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# Basic details about a playlist, including title, description and thumbnails.
# Basic details of a YouTube Playlist item provided by the author. Next ID: 13
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::PlaylistItemSnippet]
attr_accessor :snippet
# Information about the playlist item's privacy status.
# Corresponds to the JSON property `status`
# @return [Google::Apis::YoutubeV3::PlaylistItemStatus]
attr_accessor :status
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@content_details = args[:content_details] if args.key?(:content_details)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
@status = args[:status] if args.key?(:status)
end
end
#
class PlaylistItemContentDetails
include Google::Apis::Core::Hashable
# The time, measured in seconds from the start of the video, when the video
# should stop playing. (The playlist owner can specify the times when the video
# should start and stop playing when the video is played in the context of the
# playlist.) By default, assume that the video.endTime is the end of the video.
# Corresponds to the JSON property `endAt`
# @return [String]
attr_accessor :end_at
# A user-generated note for this item.
# Corresponds to the JSON property `note`
# @return [String]
attr_accessor :note
# The time, measured in seconds from the start of the video, when the video
# should start playing. (The playlist owner can specify the times when the video
# should start and stop playing when the video is played in the context of the
# playlist.) The default value is 0.
# Corresponds to the JSON property `startAt`
# @return [String]
attr_accessor :start_at
# The ID that YouTube uses to uniquely identify a video. To retrieve the video
# resource, set the id query parameter to this value in your API request.
# Corresponds to the JSON property `videoId`
# @return [String]
attr_accessor :video_id
# The date and time that the video was published to YouTube. The value is
# specified in ISO 8601 format.
# Corresponds to the JSON property `videoPublishedAt`
# @return [String]
attr_accessor :video_published_at
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@end_at = args[:end_at] if args.key?(:end_at)
@note = args[:note] if args.key?(:note)
@start_at = args[:start_at] if args.key?(:start_at)
@video_id = args[:video_id] if args.key?(:video_id)
@video_published_at = args[:video_published_at] if args.key?(:video_published_at)
end
end
#
class ListPlaylistItemsResponse
include Google::Apis::Core::Hashable
#
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of playlist items that match the request criteria.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::PlaylistItem>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# playlistItemListResponse". Etag of this resource.
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The token that can be used as the value of the pageToken parameter to retrieve
# the next page in the result set.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# Paging details for lists of resources, including total number of items
# available and number of resources returned in a single page.
# Corresponds to the JSON property `pageInfo`
# @return [Google::Apis::YoutubeV3::PageInfo]
attr_accessor :page_info
# The token that can be used as the value of the pageToken parameter to retrieve
# the previous page in the result set.
# Corresponds to the JSON property `prevPageToken`
# @return [String]
attr_accessor :prev_page_token
# Stub token pagination template to suppress results.
# Corresponds to the JSON property `tokenPagination`
# @return [Google::Apis::YoutubeV3::TokenPagination]
attr_accessor :token_pagination
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@page_info = args[:page_info] if args.key?(:page_info)
@prev_page_token = args[:prev_page_token] if args.key?(:prev_page_token)
@token_pagination = args[:token_pagination] if args.key?(:token_pagination)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
# Basic details about a playlist, including title, description and thumbnails.
# Basic details of a YouTube Playlist item provided by the author. Next ID: 13
class PlaylistItemSnippet
include Google::Apis::Core::Hashable
# The ID that YouTube uses to uniquely identify the user that added the item to
# the playlist.
# Corresponds to the JSON property `channelId`
# @return [String]
attr_accessor :channel_id
# Channel title for the channel that the playlist item belongs to.
# Corresponds to the JSON property `channelTitle`
# @return [String]
attr_accessor :channel_title
# The item's description.
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
# The ID that YouTube uses to uniquely identify thGe playlist that the playlist
# item is in.
# Corresponds to the JSON property `playlistId`
# @return [String]
attr_accessor :playlist_id
# The order in which the item appears in the playlist. The value uses a zero-
# based index, so the first item has a position of 0, the second item has a
# position of 1, and so forth.
# Corresponds to the JSON property `position`
# @return [Fixnum]
attr_accessor :position
# The date and time that the item was added to the playlist. The value is
# specified in ISO 8601 format.
# Corresponds to the JSON property `publishedAt`
# @return [String]
attr_accessor :published_at
# A resource id is a generic reference that points to another YouTube resource.
# Corresponds to the JSON property `resourceId`
# @return [Google::Apis::YoutubeV3::ResourceId]
attr_accessor :resource_id
# Internal representation of thumbnails for a YouTube resource.
# Corresponds to the JSON property `thumbnails`
# @return [Google::Apis::YoutubeV3::ThumbnailDetails]
attr_accessor :thumbnails
# The item's title.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@channel_id = args[:channel_id] if args.key?(:channel_id)
@channel_title = args[:channel_title] if args.key?(:channel_title)
@description = args[:description] if args.key?(:description)
@playlist_id = args[:playlist_id] if args.key?(:playlist_id)
@position = args[:position] if args.key?(:position)
@published_at = args[:published_at] if args.key?(:published_at)
@resource_id = args[:resource_id] if args.key?(:resource_id)
@thumbnails = args[:thumbnails] if args.key?(:thumbnails)
@title = args[:title] if args.key?(:title)
end
end
# Information about the playlist item's privacy status.
class PlaylistItemStatus
include Google::Apis::Core::Hashable
# This resource's privacy status.
# Corresponds to the JSON property `privacyStatus`
# @return [String]
attr_accessor :privacy_status
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@privacy_status = args[:privacy_status] if args.key?(:privacy_status)
end
end
#
class ListPlaylistResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of playlists that match the request criteria
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::Playlist>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# playlistListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The token that can be used as the value of the pageToken parameter to retrieve
# the next page in the result set.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# Paging details for lists of resources, including total number of items
# available and number of resources returned in a single page.
# Corresponds to the JSON property `pageInfo`
# @return [Google::Apis::YoutubeV3::PageInfo]
attr_accessor :page_info
# The token that can be used as the value of the pageToken parameter to retrieve
# the previous page in the result set.
# Corresponds to the JSON property `prevPageToken`
# @return [String]
attr_accessor :prev_page_token
# Stub token pagination template to suppress results.
# Corresponds to the JSON property `tokenPagination`
# @return [Google::Apis::YoutubeV3::TokenPagination]
attr_accessor :token_pagination
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@page_info = args[:page_info] if args.key?(:page_info)
@prev_page_token = args[:prev_page_token] if args.key?(:prev_page_token)
@token_pagination = args[:token_pagination] if args.key?(:token_pagination)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
# Playlist localization setting
class PlaylistLocalization
include Google::Apis::Core::Hashable
# The localized strings for playlist's description.
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
# The localized strings for playlist's title.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@description = args[:description] if args.key?(:description)
@title = args[:title] if args.key?(:title)
end
end
#
class PlaylistPlayer
include Google::Apis::Core::Hashable
# An <iframe> tag that embeds a player that will play the playlist.
# Corresponds to the JSON property `embedHtml`
# @return [String]
attr_accessor :embed_html
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@embed_html = args[:embed_html] if args.key?(:embed_html)
end
end
# Basic details about a playlist, including title, description and thumbnails.
class PlaylistSnippet
include Google::Apis::Core::Hashable
# The ID that YouTube uses to uniquely identify the channel that published the
# playlist.
# Corresponds to the JSON property `channelId`
# @return [String]
attr_accessor :channel_id
# The channel title of the channel that the video belongs to.
# Corresponds to the JSON property `channelTitle`
# @return [String]
attr_accessor :channel_title
# The language of the playlist's default title and description.
# Corresponds to the JSON property `defaultLanguage`
# @return [String]
attr_accessor :default_language
# The playlist's description.
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
# Playlist localization setting
# Corresponds to the JSON property `localized`
# @return [Google::Apis::YoutubeV3::PlaylistLocalization]
attr_accessor :localized
# The date and time that the playlist was created. The value is specified in ISO
# 8601 format.
# Corresponds to the JSON property `publishedAt`
# @return [String]
attr_accessor :published_at
# Keyword tags associated with the playlist.
# Corresponds to the JSON property `tags`
# @return [Array<String>]
attr_accessor :tags
# Internal representation of thumbnails for a YouTube resource.
# Corresponds to the JSON property `thumbnails`
# @return [Google::Apis::YoutubeV3::ThumbnailDetails]
attr_accessor :thumbnails
# The playlist's title.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@channel_id = args[:channel_id] if args.key?(:channel_id)
@channel_title = args[:channel_title] if args.key?(:channel_title)
@default_language = args[:default_language] if args.key?(:default_language)
@description = args[:description] if args.key?(:description)
@localized = args[:localized] if args.key?(:localized)
@published_at = args[:published_at] if args.key?(:published_at)
@tags = args[:tags] if args.key?(:tags)
@thumbnails = args[:thumbnails] if args.key?(:thumbnails)
@title = args[:title] if args.key?(:title)
end
end
#
class PlaylistStatus
include Google::Apis::Core::Hashable
# The playlist's privacy status.
# Corresponds to the JSON property `privacyStatus`
# @return [String]
attr_accessor :privacy_status
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@privacy_status = args[:privacy_status] if args.key?(:privacy_status)
end
end
# A pair Property / Value.
class PropertyValue
include Google::Apis::Core::Hashable
# A property.
# Corresponds to the JSON property `property`
# @return [String]
attr_accessor :property
# The property's value.
# Corresponds to the JSON property `value`
# @return [String]
attr_accessor :value
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@property = args[:property] if args.key?(:property)
@value = args[:value] if args.key?(:value)
end
end
#
class RelatedEntity
include Google::Apis::Core::Hashable
#
# Corresponds to the JSON property `entity`
# @return [Google::Apis::YoutubeV3::Entity]
attr_accessor :entity
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@entity = args[:entity] if args.key?(:entity)
end
end
# A resource id is a generic reference that points to another YouTube resource.
class ResourceId
include Google::Apis::Core::Hashable
# The ID that YouTube uses to uniquely identify the referred resource, if that
# resource is a channel. This property is only present if the resourceId.kind
# value is youtube#channel.
# Corresponds to the JSON property `channelId`
# @return [String]
attr_accessor :channel_id
# The type of the API resource.
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The ID that YouTube uses to uniquely identify the referred resource, if that
# resource is a playlist. This property is only present if the resourceId.kind
# value is youtube#playlist.
# Corresponds to the JSON property `playlistId`
# @return [String]
attr_accessor :playlist_id
# The ID that YouTube uses to uniquely identify the referred resource, if that
# resource is a video. This property is only present if the resourceId.kind
# value is youtube#video.
# Corresponds to the JSON property `videoId`
# @return [String]
attr_accessor :video_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@channel_id = args[:channel_id] if args.key?(:channel_id)
@kind = args[:kind] if args.key?(:kind)
@playlist_id = args[:playlist_id] if args.key?(:playlist_id)
@video_id = args[:video_id] if args.key?(:video_id)
end
end
#
class SearchListsResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# Pagination information for token pagination.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::SearchResult>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# searchListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The token that can be used as the value of the pageToken parameter to retrieve
# the next page in the result set.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# Paging details for lists of resources, including total number of items
# available and number of resources returned in a single page.
# Corresponds to the JSON property `pageInfo`
# @return [Google::Apis::YoutubeV3::PageInfo]
attr_accessor :page_info
# The token that can be used as the value of the pageToken parameter to retrieve
# the previous page in the result set.
# Corresponds to the JSON property `prevPageToken`
# @return [String]
attr_accessor :prev_page_token
#
# Corresponds to the JSON property `regionCode`
# @return [String]
attr_accessor :region_code
# Stub token pagination template to suppress results.
# Corresponds to the JSON property `tokenPagination`
# @return [Google::Apis::YoutubeV3::TokenPagination]
attr_accessor :token_pagination
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@page_info = args[:page_info] if args.key?(:page_info)
@prev_page_token = args[:prev_page_token] if args.key?(:prev_page_token)
@region_code = args[:region_code] if args.key?(:region_code)
@token_pagination = args[:token_pagination] if args.key?(:token_pagination)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
# A search result contains information about a YouTube video, channel, or
# playlist that matches the search parameters specified in an API request. While
# a search result points to a uniquely identifiable resource, like a video, it
# does not have its own persistent data.
class SearchResult
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# A resource id is a generic reference that points to another YouTube resource.
# Corresponds to the JSON property `id`
# @return [Google::Apis::YoutubeV3::ResourceId]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# searchResult".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# Basic details about a search result, including title, description and
# thumbnails of the item referenced by the search result.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::SearchResultSnippet]
attr_accessor :snippet
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
end
end
# Basic details about a search result, including title, description and
# thumbnails of the item referenced by the search result.
class SearchResultSnippet
include Google::Apis::Core::Hashable
# The value that YouTube uses to uniquely identify the channel that published
# the resource that the search result identifies.
# Corresponds to the JSON property `channelId`
# @return [String]
attr_accessor :channel_id
# The title of the channel that published the resource that the search result
# identifies.
# Corresponds to the JSON property `channelTitle`
# @return [String]
attr_accessor :channel_title
# A description of the search result.
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
# It indicates if the resource (video or channel) has upcoming/active live
# broadcast content. Or it's "none" if there is not any upcoming/active live
# broadcasts.
# Corresponds to the JSON property `liveBroadcastContent`
# @return [String]
attr_accessor :live_broadcast_content
# The creation date and time of the resource that the search result identifies.
# The value is specified in ISO 8601 format.
# Corresponds to the JSON property `publishedAt`
# @return [String]
attr_accessor :published_at
# Internal representation of thumbnails for a YouTube resource.
# Corresponds to the JSON property `thumbnails`
# @return [Google::Apis::YoutubeV3::ThumbnailDetails]
attr_accessor :thumbnails
# The title of the search result.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@channel_id = args[:channel_id] if args.key?(:channel_id)
@channel_title = args[:channel_title] if args.key?(:channel_title)
@description = args[:description] if args.key?(:description)
@live_broadcast_content = args[:live_broadcast_content] if args.key?(:live_broadcast_content)
@published_at = args[:published_at] if args.key?(:published_at)
@thumbnails = args[:thumbnails] if args.key?(:thumbnails)
@title = args[:title] if args.key?(:title)
end
end
# A `__sponsor__` resource represents a sponsor for a YouTube channel. A sponsor
# provides recurring monetary support to a creator and receives special benefits.
class Sponsor
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Identifies what kind of resource this is. Value: the fixed string `"youtube#
# sponsor"`.
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The `snippet` object contains basic details about the sponsor.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::SponsorSnippet]
attr_accessor :snippet
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
end
end
#
class SponsorListResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of sponsors that match the request criteria.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::Sponsor>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string `"youtube#
# sponsorListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The token that can be used as the value of the `pageToken` parameter to
# retrieve the next page in the result set.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# Paging details for lists of resources, including total number of items
# available and number of resources returned in a single page.
# Corresponds to the JSON property `pageInfo`
# @return [Google::Apis::YoutubeV3::PageInfo]
attr_accessor :page_info
# Stub token pagination template to suppress results.
# Corresponds to the JSON property `tokenPagination`
# @return [Google::Apis::YoutubeV3::TokenPagination]
attr_accessor :token_pagination
# The `visitorId` identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@page_info = args[:page_info] if args.key?(:page_info)
@token_pagination = args[:token_pagination] if args.key?(:token_pagination)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
#
class SponsorSnippet
include Google::Apis::Core::Hashable
# The id of the channel being sponsored.
# Corresponds to the JSON property `channelId`
# @return [String]
attr_accessor :channel_id
# The cumulative time a user has been a sponsor in months.
# Corresponds to the JSON property `cumulativeDurationMonths`
# @return [Fixnum]
attr_accessor :cumulative_duration_months
# Details about the sponsor.
# Corresponds to the JSON property `sponsorDetails`
# @return [Google::Apis::YoutubeV3::ChannelProfileDetails]
attr_accessor :sponsor_details
# The date and time when the user became a sponsor. The value is specified in
# ISO 8601 (`YYYY-MM-DDThh:mm:ss.sZ`) format.
# Corresponds to the JSON property `sponsorSince`
# @return [String]
attr_accessor :sponsor_since
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@channel_id = args[:channel_id] if args.key?(:channel_id)
@cumulative_duration_months = args[:cumulative_duration_months] if args.key?(:cumulative_duration_months)
@sponsor_details = args[:sponsor_details] if args.key?(:sponsor_details)
@sponsor_since = args[:sponsor_since] if args.key?(:sponsor_since)
end
end
# A *subscription* resource contains information about a YouTube user
# subscription. A subscription notifies a user when new videos are added to a
# channel or when another user takes one of several actions on YouTube, such as
# uploading a video, rating a video, or commenting on a video.
class Subscription
include Google::Apis::Core::Hashable
# Details about the content to witch a subscription refers.
# Corresponds to the JSON property `contentDetails`
# @return [Google::Apis::YoutubeV3::SubscriptionContentDetails]
attr_accessor :content_details
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube uses to uniquely identify the subscription.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# subscription".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# Basic details about a subscription, including title, description and
# thumbnails of the subscribed item.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::SubscriptionSnippet]
attr_accessor :snippet
# Basic details about a subscription's subscriber including title, description,
# channel ID and thumbnails.
# Corresponds to the JSON property `subscriberSnippet`
# @return [Google::Apis::YoutubeV3::SubscriptionSubscriberSnippet]
attr_accessor :subscriber_snippet
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@content_details = args[:content_details] if args.key?(:content_details)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
@subscriber_snippet = args[:subscriber_snippet] if args.key?(:subscriber_snippet)
end
end
# Details about the content to witch a subscription refers.
class SubscriptionContentDetails
include Google::Apis::Core::Hashable
# The type of activity this subscription is for (only uploads, everything).
# Corresponds to the JSON property `activityType`
# @return [String]
attr_accessor :activity_type
# The number of new items in the subscription since its content was last read.
# Corresponds to the JSON property `newItemCount`
# @return [Fixnum]
attr_accessor :new_item_count
# The approximate number of items that the subscription points to.
# Corresponds to the JSON property `totalItemCount`
# @return [Fixnum]
attr_accessor :total_item_count
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@activity_type = args[:activity_type] if args.key?(:activity_type)
@new_item_count = args[:new_item_count] if args.key?(:new_item_count)
@total_item_count = args[:total_item_count] if args.key?(:total_item_count)
end
end
#
class ListSubscriptionResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of subscriptions that match the request criteria.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::Subscription>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# subscriptionListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The token that can be used as the value of the pageToken parameter to retrieve
# the next page in the result set.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# Paging details for lists of resources, including total number of items
# available and number of resources returned in a single page.
# Corresponds to the JSON property `pageInfo`
# @return [Google::Apis::YoutubeV3::PageInfo]
attr_accessor :page_info
# The token that can be used as the value of the pageToken parameter to retrieve
# the previous page in the result set.
# Corresponds to the JSON property `prevPageToken`
# @return [String]
attr_accessor :prev_page_token
# Stub token pagination template to suppress results.
# Corresponds to the JSON property `tokenPagination`
# @return [Google::Apis::YoutubeV3::TokenPagination]
attr_accessor :token_pagination
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@page_info = args[:page_info] if args.key?(:page_info)
@prev_page_token = args[:prev_page_token] if args.key?(:prev_page_token)
@token_pagination = args[:token_pagination] if args.key?(:token_pagination)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
# Basic details about a subscription, including title, description and
# thumbnails of the subscribed item.
class SubscriptionSnippet
include Google::Apis::Core::Hashable
# The ID that YouTube uses to uniquely identify the subscriber's channel.
# Corresponds to the JSON property `channelId`
# @return [String]
attr_accessor :channel_id
# Channel title for the channel that the subscription belongs to.
# Corresponds to the JSON property `channelTitle`
# @return [String]
attr_accessor :channel_title
# The subscription's details.
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
# The date and time that the subscription was created. The value is specified in
# ISO 8601 format.
# Corresponds to the JSON property `publishedAt`
# @return [String]
attr_accessor :published_at
# A resource id is a generic reference that points to another YouTube resource.
# Corresponds to the JSON property `resourceId`
# @return [Google::Apis::YoutubeV3::ResourceId]
attr_accessor :resource_id
# Internal representation of thumbnails for a YouTube resource.
# Corresponds to the JSON property `thumbnails`
# @return [Google::Apis::YoutubeV3::ThumbnailDetails]
attr_accessor :thumbnails
# The subscription's title.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@channel_id = args[:channel_id] if args.key?(:channel_id)
@channel_title = args[:channel_title] if args.key?(:channel_title)
@description = args[:description] if args.key?(:description)
@published_at = args[:published_at] if args.key?(:published_at)
@resource_id = args[:resource_id] if args.key?(:resource_id)
@thumbnails = args[:thumbnails] if args.key?(:thumbnails)
@title = args[:title] if args.key?(:title)
end
end
# Basic details about a subscription's subscriber including title, description,
# channel ID and thumbnails.
class SubscriptionSubscriberSnippet
include Google::Apis::Core::Hashable
# The channel ID of the subscriber.
# Corresponds to the JSON property `channelId`
# @return [String]
attr_accessor :channel_id
# The description of the subscriber.
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
# Internal representation of thumbnails for a YouTube resource.
# Corresponds to the JSON property `thumbnails`
# @return [Google::Apis::YoutubeV3::ThumbnailDetails]
attr_accessor :thumbnails
# The title of the subscriber.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@channel_id = args[:channel_id] if args.key?(:channel_id)
@description = args[:description] if args.key?(:description)
@thumbnails = args[:thumbnails] if args.key?(:thumbnails)
@title = args[:title] if args.key?(:title)
end
end
# A `__superChatEvent__` resource represents a Super Chat purchase on a YouTube
# channel.
class SuperChatEvent
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube assigns to uniquely identify the Super Chat event.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string `"youtube#
# superChatEvent"`.
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The `snippet` object contains basic details about the Super Chat event.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::SuperChatEventSnippet]
attr_accessor :snippet
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
end
end
#
class SuperChatEventListResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of Super Chat purchases that match the request criteria.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::SuperChatEvent>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# superChatEventListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The token that can be used as the value of the pageToken parameter to retrieve
# the next page in the result set.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# Paging details for lists of resources, including total number of items
# available and number of resources returned in a single page.
# Corresponds to the JSON property `pageInfo`
# @return [Google::Apis::YoutubeV3::PageInfo]
attr_accessor :page_info
# Stub token pagination template to suppress results.
# Corresponds to the JSON property `tokenPagination`
# @return [Google::Apis::YoutubeV3::TokenPagination]
attr_accessor :token_pagination
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@page_info = args[:page_info] if args.key?(:page_info)
@token_pagination = args[:token_pagination] if args.key?(:token_pagination)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
#
class SuperChatEventSnippet
include Google::Apis::Core::Hashable
# The purchase amount, in micros of the purchase currency. e.g., 1 is
# represented as 1000000.
# Corresponds to the JSON property `amountMicros`
# @return [Fixnum]
attr_accessor :amount_micros
# Channel id where the event occurred.
# Corresponds to the JSON property `channelId`
# @return [String]
attr_accessor :channel_id
# The text contents of the comment left by the user.
# Corresponds to the JSON property `commentText`
# @return [String]
attr_accessor :comment_text
# The date and time when the event occurred. The value is specified in ISO 8601
# format.
# Corresponds to the JSON property `createdAt`
# @return [String]
attr_accessor :created_at
# The currency in which the purchase was made. ISO 4217.
# Corresponds to the JSON property `currency`
# @return [String]
attr_accessor :currency
# A rendered string that displays the purchase amount and currency (e.g., "$1.00"
# ). The string is rendered for the given language.
# Corresponds to the JSON property `displayString`
# @return [String]
attr_accessor :display_string
# True if this event is a Super Sticker event.
# Corresponds to the JSON property `isSuperStickerEvent`
# @return [Boolean]
attr_accessor :is_super_sticker_event
alias_method :is_super_sticker_event?, :is_super_sticker_event
# The tier for the paid message, which is based on the amount of money spent to
# purchase the message.
# Corresponds to the JSON property `messageType`
# @return [Fixnum]
attr_accessor :message_type
# If this event is a Super Sticker event, this field will contain metadata about
# the Super Sticker.
# Corresponds to the JSON property `superStickerMetadata`
# @return [Google::Apis::YoutubeV3::SuperStickerMetadata]
attr_accessor :super_sticker_metadata
# Details about the supporter.
# Corresponds to the JSON property `supporterDetails`
# @return [Google::Apis::YoutubeV3::ChannelProfileDetails]
attr_accessor :supporter_details
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@amount_micros = args[:amount_micros] if args.key?(:amount_micros)
@channel_id = args[:channel_id] if args.key?(:channel_id)
@comment_text = args[:comment_text] if args.key?(:comment_text)
@created_at = args[:created_at] if args.key?(:created_at)
@currency = args[:currency] if args.key?(:currency)
@display_string = args[:display_string] if args.key?(:display_string)
@is_super_sticker_event = args[:is_super_sticker_event] if args.key?(:is_super_sticker_event)
@message_type = args[:message_type] if args.key?(:message_type)
@super_sticker_metadata = args[:super_sticker_metadata] if args.key?(:super_sticker_metadata)
@supporter_details = args[:supporter_details] if args.key?(:supporter_details)
end
end
#
class SuperStickerMetadata
include Google::Apis::Core::Hashable
# Internationalized alt text that describes the sticker image and any animation
# associated with it.
# Corresponds to the JSON property `altText`
# @return [String]
attr_accessor :alt_text
# Specifies the localization language in which the alt text is returned.
# Corresponds to the JSON property `altTextLanguage`
# @return [String]
attr_accessor :alt_text_language
# Unique identifier of the Super Sticker. This is a shorter form of the alt_text
# that includes pack name and a recognizable characteristic of the sticker.
# Corresponds to the JSON property `stickerId`
# @return [String]
attr_accessor :sticker_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@alt_text = args[:alt_text] if args.key?(:alt_text)
@alt_text_language = args[:alt_text_language] if args.key?(:alt_text_language)
@sticker_id = args[:sticker_id] if args.key?(:sticker_id)
end
end
#
class TestItem
include Google::Apis::Core::Hashable
#
# Corresponds to the JSON property `gaia`
# @return [Fixnum]
attr_accessor :gaia
#
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
#
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::TestItemTestItemSnippet]
attr_accessor :snippet
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@gaia = args[:gaia] if args.key?(:gaia)
@id = args[:id] if args.key?(:id)
@snippet = args[:snippet] if args.key?(:snippet)
end
end
#
class TestItemTestItemSnippet
include Google::Apis::Core::Hashable
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
end
end
# A *third party account link* resource represents a link between a YouTube
# account or a channel and an account on a third-party service.
class ThirdPartyLink
include Google::Apis::Core::Hashable
# Etag of this resource
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# thirdPartyLink".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The linking_token identifies a YouTube account and channel with which the
# third party account is linked.
# Corresponds to the JSON property `linkingToken`
# @return [String]
attr_accessor :linking_token
# Basic information about a third party account link, including its type and
# type-specific information.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::ThirdPartyLinkSnippet]
attr_accessor :snippet
# The third-party link status object contains information about the status of
# the link.
# Corresponds to the JSON property `status`
# @return [Google::Apis::YoutubeV3::ThirdPartyLinkStatus]
attr_accessor :status
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@kind = args[:kind] if args.key?(:kind)
@linking_token = args[:linking_token] if args.key?(:linking_token)
@snippet = args[:snippet] if args.key?(:snippet)
@status = args[:status] if args.key?(:status)
end
end
# Basic information about a third party account link, including its type and
# type-specific information.
class ThirdPartyLinkSnippet
include Google::Apis::Core::Hashable
# Information specific to a store on a merchandising platform linked to a
# YouTube channel.
# Corresponds to the JSON property `channelToStoreLink`
# @return [Google::Apis::YoutubeV3::ChannelToStoreLinkDetails]
attr_accessor :channel_to_store_link
# Type of the link named after the entities that are being linked.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@channel_to_store_link = args[:channel_to_store_link] if args.key?(:channel_to_store_link)
@type = args[:type] if args.key?(:type)
end
end
# The third-party link status object contains information about the status of
# the link.
class ThirdPartyLinkStatus
include Google::Apis::Core::Hashable
#
# Corresponds to the JSON property `linkStatus`
# @return [String]
attr_accessor :link_status
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@link_status = args[:link_status] if args.key?(:link_status)
end
end
# A thumbnail is an image representing a YouTube resource.
class Thumbnail
include Google::Apis::Core::Hashable
# (Optional) Height of the thumbnail image.
# Corresponds to the JSON property `height`
# @return [Fixnum]
attr_accessor :height
# The thumbnail image's URL.
# Corresponds to the JSON property `url`
# @return [String]
attr_accessor :url
# (Optional) Width of the thumbnail image.
# Corresponds to the JSON property `width`
# @return [Fixnum]
attr_accessor :width
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@height = args[:height] if args.key?(:height)
@url = args[:url] if args.key?(:url)
@width = args[:width] if args.key?(:width)
end
end
# Internal representation of thumbnails for a YouTube resource.
class ThumbnailDetails
include Google::Apis::Core::Hashable
# A thumbnail is an image representing a YouTube resource.
# Corresponds to the JSON property `default`
# @return [Google::Apis::YoutubeV3::Thumbnail]
attr_accessor :default
# A thumbnail is an image representing a YouTube resource.
# Corresponds to the JSON property `high`
# @return [Google::Apis::YoutubeV3::Thumbnail]
attr_accessor :high
# A thumbnail is an image representing a YouTube resource.
# Corresponds to the JSON property `maxres`
# @return [Google::Apis::YoutubeV3::Thumbnail]
attr_accessor :maxres
# A thumbnail is an image representing a YouTube resource.
# Corresponds to the JSON property `medium`
# @return [Google::Apis::YoutubeV3::Thumbnail]
attr_accessor :medium
# A thumbnail is an image representing a YouTube resource.
# Corresponds to the JSON property `standard`
# @return [Google::Apis::YoutubeV3::Thumbnail]
attr_accessor :standard
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@default = args[:default] if args.key?(:default)
@high = args[:high] if args.key?(:high)
@maxres = args[:maxres] if args.key?(:maxres)
@medium = args[:medium] if args.key?(:medium)
@standard = args[:standard] if args.key?(:standard)
end
end
#
class SetThumbnailResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of thumbnails.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::ThumbnailDetails>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# thumbnailSetResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
# Stub token pagination template to suppress results.
class TokenPagination
include Google::Apis::Core::Hashable
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
end
end
# A *video* resource represents a YouTube video.
class Video
include Google::Apis::Core::Hashable
# Age restriction details related to a video. This data can only be retrieved by
# the video owner.
# Corresponds to the JSON property `ageGating`
# @return [Google::Apis::YoutubeV3::VideoAgeGating]
attr_accessor :age_gating
# Details about the content of a YouTube Video.
# Corresponds to the JSON property `contentDetails`
# @return [Google::Apis::YoutubeV3::VideoContentDetails]
attr_accessor :content_details
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Describes original video file properties, including technical details about
# audio and video streams, but also metadata information like content length,
# digitization time, or geotagging information.
# Corresponds to the JSON property `fileDetails`
# @return [Google::Apis::YoutubeV3::VideoFileDetails]
attr_accessor :file_details
# The ID that YouTube uses to uniquely identify the video.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# video".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# Details about the live streaming metadata.
# Corresponds to the JSON property `liveStreamingDetails`
# @return [Google::Apis::YoutubeV3::VideoLiveStreamingDetails]
attr_accessor :live_streaming_details
# The localizations object contains localized versions of the basic details
# about the video, such as its title and description.
# Corresponds to the JSON property `localizations`
# @return [Hash<String,Google::Apis::YoutubeV3::VideoLocalization>]
attr_accessor :localizations
# Details about monetization of a YouTube Video.
# Corresponds to the JSON property `monetizationDetails`
# @return [Google::Apis::YoutubeV3::VideoMonetizationDetails]
attr_accessor :monetization_details
# Player to be used for a video playback.
# Corresponds to the JSON property `player`
# @return [Google::Apis::YoutubeV3::VideoPlayer]
attr_accessor :player
# Describes processing status and progress and availability of some other Video
# resource parts.
# Corresponds to the JSON property `processingDetails`
# @return [Google::Apis::YoutubeV3::VideoProcessingDetails]
attr_accessor :processing_details
# DEPRECATED. b/157517979: This part was never populated after it was added.
# However, it sees non-zero traffic because there is generated client code in
# the wild that refers to it [1]. We keep this field and do NOT remove it
# because otherwise V3 would return an error when this part gets requested [2]. [
# 1] https://developers.google.com/resources/api-libraries/documentation/youtube/
# v3/csharp/latest/
# classGoogle_1_1Apis_1_1YouTube_1_1v3_1_1Data_1_1VideoProjectDetails.html [2]
# http://google3/video/youtube/src/python/servers/data_api/common.py?l=1565-1569&
# rcl=344141677
# Corresponds to the JSON property `projectDetails`
# @return [Google::Apis::YoutubeV3::VideoProjectDetails]
attr_accessor :project_details
# Recording information associated with the video.
# Corresponds to the JSON property `recordingDetails`
# @return [Google::Apis::YoutubeV3::VideoRecordingDetails]
attr_accessor :recording_details
# Basic details about a video, including title, description, uploader,
# thumbnails and category.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::VideoSnippet]
attr_accessor :snippet
# Statistics about the video, such as the number of times the video was viewed
# or liked.
# Corresponds to the JSON property `statistics`
# @return [Google::Apis::YoutubeV3::VideoStatistics]
attr_accessor :statistics
# Basic details about a video category, such as its localized title. Next Id: 17
# Corresponds to the JSON property `status`
# @return [Google::Apis::YoutubeV3::VideoStatus]
attr_accessor :status
# Specifies suggestions on how to improve video content, including encoding
# hints, tag suggestions, and editor suggestions.
# Corresponds to the JSON property `suggestions`
# @return [Google::Apis::YoutubeV3::VideoSuggestions]
attr_accessor :suggestions
# Freebase topic information related to the video.
# Corresponds to the JSON property `topicDetails`
# @return [Google::Apis::YoutubeV3::VideoTopicDetails]
attr_accessor :topic_details
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@age_gating = args[:age_gating] if args.key?(:age_gating)
@content_details = args[:content_details] if args.key?(:content_details)
@etag = args[:etag] if args.key?(:etag)
@file_details = args[:file_details] if args.key?(:file_details)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@live_streaming_details = args[:live_streaming_details] if args.key?(:live_streaming_details)
@localizations = args[:localizations] if args.key?(:localizations)
@monetization_details = args[:monetization_details] if args.key?(:monetization_details)
@player = args[:player] if args.key?(:player)
@processing_details = args[:processing_details] if args.key?(:processing_details)
@project_details = args[:project_details] if args.key?(:project_details)
@recording_details = args[:recording_details] if args.key?(:recording_details)
@snippet = args[:snippet] if args.key?(:snippet)
@statistics = args[:statistics] if args.key?(:statistics)
@status = args[:status] if args.key?(:status)
@suggestions = args[:suggestions] if args.key?(:suggestions)
@topic_details = args[:topic_details] if args.key?(:topic_details)
end
end
#
class VideoAbuseReport
include Google::Apis::Core::Hashable
# Additional comments regarding the abuse report.
# Corresponds to the JSON property `comments`
# @return [String]
attr_accessor :comments
# The language that the content was viewed in.
# Corresponds to the JSON property `language`
# @return [String]
attr_accessor :language
# The high-level, or primary, reason that the content is abusive. The value is
# an abuse report reason ID.
# Corresponds to the JSON property `reasonId`
# @return [String]
attr_accessor :reason_id
# The specific, or secondary, reason that this content is abusive (if available).
# The value is an abuse report reason ID that is a valid secondary reason for
# the primary reason.
# Corresponds to the JSON property `secondaryReasonId`
# @return [String]
attr_accessor :secondary_reason_id
# The ID that YouTube uses to uniquely identify the video.
# Corresponds to the JSON property `videoId`
# @return [String]
attr_accessor :video_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@comments = args[:comments] if args.key?(:comments)
@language = args[:language] if args.key?(:language)
@reason_id = args[:reason_id] if args.key?(:reason_id)
@secondary_reason_id = args[:secondary_reason_id] if args.key?(:secondary_reason_id)
@video_id = args[:video_id] if args.key?(:video_id)
end
end
# A `__videoAbuseReportReason__` resource identifies a reason that a video could
# be reported as abusive. Video abuse report reasons are used with `video.
# ReportAbuse`.
class VideoAbuseReportReason
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID of this abuse report reason.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string `"youtube#
# videoAbuseReportReason"`.
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# Basic details about a video category, such as its localized title.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::VideoAbuseReportReasonSnippet]
attr_accessor :snippet
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
end
end
#
class ListVideoAbuseReportReasonResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of valid abuse reasons that are used with `video.ReportAbuse`.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::VideoAbuseReportReason>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string `"youtube#
# videoAbuseReportReasonListResponse"`.
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The `visitorId` identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
# Basic details about a video category, such as its localized title.
class VideoAbuseReportReasonSnippet
include Google::Apis::Core::Hashable
# The localized label belonging to this abuse report reason.
# Corresponds to the JSON property `label`
# @return [String]
attr_accessor :label
# The secondary reasons associated with this reason, if any are available. (
# There might be 0 or more.)
# Corresponds to the JSON property `secondaryReasons`
# @return [Array<Google::Apis::YoutubeV3::VideoAbuseReportSecondaryReason>]
attr_accessor :secondary_reasons
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@label = args[:label] if args.key?(:label)
@secondary_reasons = args[:secondary_reasons] if args.key?(:secondary_reasons)
end
end
#
class VideoAbuseReportSecondaryReason
include Google::Apis::Core::Hashable
# The ID of this abuse report secondary reason.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# The localized label for this abuse report secondary reason.
# Corresponds to the JSON property `label`
# @return [String]
attr_accessor :label
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@id = args[:id] if args.key?(:id)
@label = args[:label] if args.key?(:label)
end
end
#
class VideoAgeGating
include Google::Apis::Core::Hashable
# Indicates whether or not the video has alcoholic beverage content. Only users
# of legal purchasing age in a particular country, as identified by ICAP, can
# view the content.
# Corresponds to the JSON property `alcoholContent`
# @return [Boolean]
attr_accessor :alcohol_content
alias_method :alcohol_content?, :alcohol_content
# Age-restricted trailers. For redband trailers and adult-rated video-games.
# Only users aged 18+ can view the content. The the field is true the content is
# restricted to viewers aged 18+. Otherwise The field won't be present.
# Corresponds to the JSON property `restricted`
# @return [Boolean]
attr_accessor :restricted
alias_method :restricted?, :restricted
# Video game rating, if any.
# Corresponds to the JSON property `videoGameRating`
# @return [String]
attr_accessor :video_game_rating
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@alcohol_content = args[:alcohol_content] if args.key?(:alcohol_content)
@restricted = args[:restricted] if args.key?(:restricted)
@video_game_rating = args[:video_game_rating] if args.key?(:video_game_rating)
end
end
# A *videoCategory* resource identifies a category that has been or could be
# associated with uploaded videos.
class VideoCategory
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# The ID that YouTube uses to uniquely identify the video category.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# videoCategory".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# Basic details about a video category, such as its localized title.
# Corresponds to the JSON property `snippet`
# @return [Google::Apis::YoutubeV3::VideoCategorySnippet]
attr_accessor :snippet
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@id = args[:id] if args.key?(:id)
@kind = args[:kind] if args.key?(:kind)
@snippet = args[:snippet] if args.key?(:snippet)
end
end
#
class ListVideoCategoryResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of video categories that can be associated with YouTube videos. In this
# map, the video category ID is the map key, and its value is the corresponding
# videoCategory resource.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::VideoCategory>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# videoCategoryListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The token that can be used as the value of the pageToken parameter to retrieve
# the next page in the result set.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# Paging details for lists of resources, including total number of items
# available and number of resources returned in a single page.
# Corresponds to the JSON property `pageInfo`
# @return [Google::Apis::YoutubeV3::PageInfo]
attr_accessor :page_info
# The token that can be used as the value of the pageToken parameter to retrieve
# the previous page in the result set.
# Corresponds to the JSON property `prevPageToken`
# @return [String]
attr_accessor :prev_page_token
# Stub token pagination template to suppress results.
# Corresponds to the JSON property `tokenPagination`
# @return [Google::Apis::YoutubeV3::TokenPagination]
attr_accessor :token_pagination
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@page_info = args[:page_info] if args.key?(:page_info)
@prev_page_token = args[:prev_page_token] if args.key?(:prev_page_token)
@token_pagination = args[:token_pagination] if args.key?(:token_pagination)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
# Basic details about a video category, such as its localized title.
class VideoCategorySnippet
include Google::Apis::Core::Hashable
#
# Corresponds to the JSON property `assignable`
# @return [Boolean]
attr_accessor :assignable
alias_method :assignable?, :assignable
# The YouTube channel that created the video category.
# Corresponds to the JSON property `channelId`
# @return [String]
attr_accessor :channel_id
# The video category's title.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@assignable = args[:assignable] if args.key?(:assignable)
@channel_id = args[:channel_id] if args.key?(:channel_id)
@title = args[:title] if args.key?(:title)
end
end
# Details about the content of a YouTube Video.
class VideoContentDetails
include Google::Apis::Core::Hashable
# The value of captions indicates whether the video has captions or not.
# Corresponds to the JSON property `caption`
# @return [String]
attr_accessor :caption
# Ratings schemes. The country-specific ratings are mostly for movies and shows.
# LINT.IfChange
# Corresponds to the JSON property `contentRating`
# @return [Google::Apis::YoutubeV3::ContentRating]
attr_accessor :content_rating
# Rights management policy for YouTube resources.
# Corresponds to the JSON property `countryRestriction`
# @return [Google::Apis::YoutubeV3::AccessPolicy]
attr_accessor :country_restriction
# The value of definition indicates whether the video is available in high
# definition or only in standard definition.
# Corresponds to the JSON property `definition`
# @return [String]
attr_accessor :definition
# The value of dimension indicates whether the video is available in 3D or in 2D.
# Corresponds to the JSON property `dimension`
# @return [String]
attr_accessor :dimension
# The length of the video. The tag value is an ISO 8601 duration in the format
# PT#M#S, in which the letters PT indicate that the value specifies a period of
# time, and the letters M and S refer to length in minutes and seconds,
# respectively. The # characters preceding the M and S letters are both integers
# that specify the number of minutes (or seconds) of the video. For example, a
# value of PT15M51S indicates that the video is 15 minutes and 51 seconds long.
# Corresponds to the JSON property `duration`
# @return [String]
attr_accessor :duration
# Indicates whether the video uploader has provided a custom thumbnail image for
# the video. This property is only visible to the video uploader.
# Corresponds to the JSON property `hasCustomThumbnail`
# @return [Boolean]
attr_accessor :has_custom_thumbnail
alias_method :has_custom_thumbnail?, :has_custom_thumbnail
# The value of is_license_content indicates whether the video is licensed
# content.
# Corresponds to the JSON property `licensedContent`
# @return [Boolean]
attr_accessor :licensed_content
alias_method :licensed_content?, :licensed_content
# Specifies the projection format of the video.
# Corresponds to the JSON property `projection`
# @return [String]
attr_accessor :projection
# DEPRECATED Region restriction of the video.
# Corresponds to the JSON property `regionRestriction`
# @return [Google::Apis::YoutubeV3::VideoContentDetailsRegionRestriction]
attr_accessor :region_restriction
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@caption = args[:caption] if args.key?(:caption)
@content_rating = args[:content_rating] if args.key?(:content_rating)
@country_restriction = args[:country_restriction] if args.key?(:country_restriction)
@definition = args[:definition] if args.key?(:definition)
@dimension = args[:dimension] if args.key?(:dimension)
@duration = args[:duration] if args.key?(:duration)
@has_custom_thumbnail = args[:has_custom_thumbnail] if args.key?(:has_custom_thumbnail)
@licensed_content = args[:licensed_content] if args.key?(:licensed_content)
@projection = args[:projection] if args.key?(:projection)
@region_restriction = args[:region_restriction] if args.key?(:region_restriction)
end
end
# DEPRECATED Region restriction of the video.
class VideoContentDetailsRegionRestriction
include Google::Apis::Core::Hashable
# A list of region codes that identify countries where the video is viewable. If
# this property is present and a country is not listed in its value, then the
# video is blocked from appearing in that country. If this property is present
# and contains an empty list, the video is blocked in all countries.
# Corresponds to the JSON property `allowed`
# @return [Array<String>]
attr_accessor :allowed
# A list of region codes that identify countries where the video is blocked. If
# this property is present and a country is not listed in its value, then the
# video is viewable in that country. If this property is present and contains an
# empty list, the video is viewable in all countries.
# Corresponds to the JSON property `blocked`
# @return [Array<String>]
attr_accessor :blocked
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@allowed = args[:allowed] if args.key?(:allowed)
@blocked = args[:blocked] if args.key?(:blocked)
end
end
# Describes original video file properties, including technical details about
# audio and video streams, but also metadata information like content length,
# digitization time, or geotagging information.
class VideoFileDetails
include Google::Apis::Core::Hashable
# A list of audio streams contained in the uploaded video file. Each item in the
# list contains detailed metadata about an audio stream.
# Corresponds to the JSON property `audioStreams`
# @return [Array<Google::Apis::YoutubeV3::VideoFileDetailsAudioStream>]
attr_accessor :audio_streams
# The uploaded video file's combined (video and audio) bitrate in bits per
# second.
# Corresponds to the JSON property `bitrateBps`
# @return [Fixnum]
attr_accessor :bitrate_bps
# The uploaded video file's container format.
# Corresponds to the JSON property `container`
# @return [String]
attr_accessor :container
# The date and time when the uploaded video file was created. The value is
# specified in ISO 8601 format. Currently, the following ISO 8601 formats are
# supported: - Date only: YYYY-MM-DD - Naive time: YYYY-MM-DDTHH:MM:SS - Time
# with timezone: YYYY-MM-DDTHH:MM:SS+HH:MM
# Corresponds to the JSON property `creationTime`
# @return [String]
attr_accessor :creation_time
# The length of the uploaded video in milliseconds.
# Corresponds to the JSON property `durationMs`
# @return [Fixnum]
attr_accessor :duration_ms
# The uploaded file's name. This field is present whether a video file or
# another type of file was uploaded.
# Corresponds to the JSON property `fileName`
# @return [String]
attr_accessor :file_name
# The uploaded file's size in bytes. This field is present whether a video file
# or another type of file was uploaded.
# Corresponds to the JSON property `fileSize`
# @return [Fixnum]
attr_accessor :file_size
# The uploaded file's type as detected by YouTube's video processing engine.
# Currently, YouTube only processes video files, but this field is present
# whether a video file or another type of file was uploaded.
# Corresponds to the JSON property `fileType`
# @return [String]
attr_accessor :file_type
# A list of video streams contained in the uploaded video file. Each item in the
# list contains detailed metadata about a video stream.
# Corresponds to the JSON property `videoStreams`
# @return [Array<Google::Apis::YoutubeV3::VideoFileDetailsVideoStream>]
attr_accessor :video_streams
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@audio_streams = args[:audio_streams] if args.key?(:audio_streams)
@bitrate_bps = args[:bitrate_bps] if args.key?(:bitrate_bps)
@container = args[:container] if args.key?(:container)
@creation_time = args[:creation_time] if args.key?(:creation_time)
@duration_ms = args[:duration_ms] if args.key?(:duration_ms)
@file_name = args[:file_name] if args.key?(:file_name)
@file_size = args[:file_size] if args.key?(:file_size)
@file_type = args[:file_type] if args.key?(:file_type)
@video_streams = args[:video_streams] if args.key?(:video_streams)
end
end
# Information about an audio stream.
class VideoFileDetailsAudioStream
include Google::Apis::Core::Hashable
# The audio stream's bitrate, in bits per second.
# Corresponds to the JSON property `bitrateBps`
# @return [Fixnum]
attr_accessor :bitrate_bps
# The number of audio channels that the stream contains.
# Corresponds to the JSON property `channelCount`
# @return [Fixnum]
attr_accessor :channel_count
# The audio codec that the stream uses.
# Corresponds to the JSON property `codec`
# @return [String]
attr_accessor :codec
# A value that uniquely identifies a video vendor. Typically, the value is a
# four-letter vendor code.
# Corresponds to the JSON property `vendor`
# @return [String]
attr_accessor :vendor
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@bitrate_bps = args[:bitrate_bps] if args.key?(:bitrate_bps)
@channel_count = args[:channel_count] if args.key?(:channel_count)
@codec = args[:codec] if args.key?(:codec)
@vendor = args[:vendor] if args.key?(:vendor)
end
end
# Information about a video stream.
class VideoFileDetailsVideoStream
include Google::Apis::Core::Hashable
# The video content's display aspect ratio, which specifies the aspect ratio in
# which the video should be displayed.
# Corresponds to the JSON property `aspectRatio`
# @return [Float]
attr_accessor :aspect_ratio
# The video stream's bitrate, in bits per second.
# Corresponds to the JSON property `bitrateBps`
# @return [Fixnum]
attr_accessor :bitrate_bps
# The video codec that the stream uses.
# Corresponds to the JSON property `codec`
# @return [String]
attr_accessor :codec
# The video stream's frame rate, in frames per second.
# Corresponds to the JSON property `frameRateFps`
# @return [Float]
attr_accessor :frame_rate_fps
# The encoded video content's height in pixels.
# Corresponds to the JSON property `heightPixels`
# @return [Fixnum]
attr_accessor :height_pixels
# The amount that YouTube needs to rotate the original source content to
# properly display the video.
# Corresponds to the JSON property `rotation`
# @return [String]
attr_accessor :rotation
# A value that uniquely identifies a video vendor. Typically, the value is a
# four-letter vendor code.
# Corresponds to the JSON property `vendor`
# @return [String]
attr_accessor :vendor
# The encoded video content's width in pixels. You can calculate the video's
# encoding aspect ratio as width_pixels / height_pixels.
# Corresponds to the JSON property `widthPixels`
# @return [Fixnum]
attr_accessor :width_pixels
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@aspect_ratio = args[:aspect_ratio] if args.key?(:aspect_ratio)
@bitrate_bps = args[:bitrate_bps] if args.key?(:bitrate_bps)
@codec = args[:codec] if args.key?(:codec)
@frame_rate_fps = args[:frame_rate_fps] if args.key?(:frame_rate_fps)
@height_pixels = args[:height_pixels] if args.key?(:height_pixels)
@rotation = args[:rotation] if args.key?(:rotation)
@vendor = args[:vendor] if args.key?(:vendor)
@width_pixels = args[:width_pixels] if args.key?(:width_pixels)
end
end
#
class ListVideosResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
#
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::Video>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# videoListResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The token that can be used as the value of the pageToken parameter to retrieve
# the next page in the result set.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# Paging details for lists of resources, including total number of items
# available and number of resources returned in a single page.
# Corresponds to the JSON property `pageInfo`
# @return [Google::Apis::YoutubeV3::PageInfo]
attr_accessor :page_info
# The token that can be used as the value of the pageToken parameter to retrieve
# the previous page in the result set.
# Corresponds to the JSON property `prevPageToken`
# @return [String]
attr_accessor :prev_page_token
# Stub token pagination template to suppress results.
# Corresponds to the JSON property `tokenPagination`
# @return [Google::Apis::YoutubeV3::TokenPagination]
attr_accessor :token_pagination
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@page_info = args[:page_info] if args.key?(:page_info)
@prev_page_token = args[:prev_page_token] if args.key?(:prev_page_token)
@token_pagination = args[:token_pagination] if args.key?(:token_pagination)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
# Details about the live streaming metadata.
class VideoLiveStreamingDetails
include Google::Apis::Core::Hashable
# The ID of the currently active live chat attached to this video. This field is
# filled only if the video is a currently live broadcast that has live chat.
# Once the broadcast transitions to complete this field will be removed and the
# live chat closed down. For persistent broadcasts that live chat id will no
# longer be tied to this video but rather to the new video being displayed at
# the persistent page.
# Corresponds to the JSON property `activeLiveChatId`
# @return [String]
attr_accessor :active_live_chat_id
# The time that the broadcast actually ended. The value is specified in ISO 8601
# format. This value will not be available until the broadcast is over.
# Corresponds to the JSON property `actualEndTime`
# @return [String]
attr_accessor :actual_end_time
# The time that the broadcast actually started. The value is specified in ISO
# 8601 format. This value will not be available until the broadcast begins.
# Corresponds to the JSON property `actualStartTime`
# @return [String]
attr_accessor :actual_start_time
# The number of viewers currently watching the broadcast. The property and its
# value will be present if the broadcast has current viewers and the broadcast
# owner has not hidden the viewcount for the video. Note that YouTube stops
# tracking the number of concurrent viewers for a broadcast when the broadcast
# ends. So, this property would not identify the number of viewers watching an
# archived video of a live broadcast that already ended.
# Corresponds to the JSON property `concurrentViewers`
# @return [Fixnum]
attr_accessor :concurrent_viewers
# The time that the broadcast is scheduled to end. The value is specified in ISO
# 8601 format. If the value is empty or the property is not present, then the
# broadcast is scheduled to continue indefinitely.
# Corresponds to the JSON property `scheduledEndTime`
# @return [String]
attr_accessor :scheduled_end_time
# The time that the broadcast is scheduled to begin. The value is specified in
# ISO 8601 format.
# Corresponds to the JSON property `scheduledStartTime`
# @return [String]
attr_accessor :scheduled_start_time
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@active_live_chat_id = args[:active_live_chat_id] if args.key?(:active_live_chat_id)
@actual_end_time = args[:actual_end_time] if args.key?(:actual_end_time)
@actual_start_time = args[:actual_start_time] if args.key?(:actual_start_time)
@concurrent_viewers = args[:concurrent_viewers] if args.key?(:concurrent_viewers)
@scheduled_end_time = args[:scheduled_end_time] if args.key?(:scheduled_end_time)
@scheduled_start_time = args[:scheduled_start_time] if args.key?(:scheduled_start_time)
end
end
# Localized versions of certain video properties (e.g. title).
class VideoLocalization
include Google::Apis::Core::Hashable
# Localized version of the video's description.
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
# Localized version of the video's title.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@description = args[:description] if args.key?(:description)
@title = args[:title] if args.key?(:title)
end
end
# Details about monetization of a YouTube Video.
class VideoMonetizationDetails
include Google::Apis::Core::Hashable
# Rights management policy for YouTube resources.
# Corresponds to the JSON property `access`
# @return [Google::Apis::YoutubeV3::AccessPolicy]
attr_accessor :access
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@access = args[:access] if args.key?(:access)
end
end
# Player to be used for a video playback.
class VideoPlayer
include Google::Apis::Core::Hashable
#
# Corresponds to the JSON property `embedHeight`
# @return [Fixnum]
attr_accessor :embed_height
# An <iframe> tag that embeds a player that will play the video.
# Corresponds to the JSON property `embedHtml`
# @return [String]
attr_accessor :embed_html
# The embed width
# Corresponds to the JSON property `embedWidth`
# @return [Fixnum]
attr_accessor :embed_width
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@embed_height = args[:embed_height] if args.key?(:embed_height)
@embed_html = args[:embed_html] if args.key?(:embed_html)
@embed_width = args[:embed_width] if args.key?(:embed_width)
end
end
# Describes processing status and progress and availability of some other Video
# resource parts.
class VideoProcessingDetails
include Google::Apis::Core::Hashable
# This value indicates whether video editing suggestions, which might improve
# video quality or the playback experience, are available for the video. You can
# retrieve these suggestions by requesting the suggestions part in your videos.
# list() request.
# Corresponds to the JSON property `editorSuggestionsAvailability`
# @return [String]
attr_accessor :editor_suggestions_availability
# This value indicates whether file details are available for the uploaded video.
# You can retrieve a video's file details by requesting the fileDetails part in
# your videos.list() request.
# Corresponds to the JSON property `fileDetailsAvailability`
# @return [String]
attr_accessor :file_details_availability
# The reason that YouTube failed to process the video. This property will only
# have a value if the processingStatus property's value is failed.
# Corresponds to the JSON property `processingFailureReason`
# @return [String]
attr_accessor :processing_failure_reason
# This value indicates whether the video processing engine has generated
# suggestions that might improve YouTube's ability to process the the video,
# warnings that explain video processing problems, or errors that cause video
# processing problems. You can retrieve these suggestions by requesting the
# suggestions part in your videos.list() request.
# Corresponds to the JSON property `processingIssuesAvailability`
# @return [String]
attr_accessor :processing_issues_availability
# Video processing progress and completion time estimate.
# Corresponds to the JSON property `processingProgress`
# @return [Google::Apis::YoutubeV3::VideoProcessingDetailsProcessingProgress]
attr_accessor :processing_progress
# The video's processing status. This value indicates whether YouTube was able
# to process the video or if the video is still being processed.
# Corresponds to the JSON property `processingStatus`
# @return [String]
attr_accessor :processing_status
# This value indicates whether keyword (tag) suggestions are available for the
# video. Tags can be added to a video's metadata to make it easier for other
# users to find the video. You can retrieve these suggestions by requesting the
# suggestions part in your videos.list() request.
# Corresponds to the JSON property `tagSuggestionsAvailability`
# @return [String]
attr_accessor :tag_suggestions_availability
# This value indicates whether thumbnail images have been generated for the
# video.
# Corresponds to the JSON property `thumbnailsAvailability`
# @return [String]
attr_accessor :thumbnails_availability
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@editor_suggestions_availability = args[:editor_suggestions_availability] if args.key?(:editor_suggestions_availability)
@file_details_availability = args[:file_details_availability] if args.key?(:file_details_availability)
@processing_failure_reason = args[:processing_failure_reason] if args.key?(:processing_failure_reason)
@processing_issues_availability = args[:processing_issues_availability] if args.key?(:processing_issues_availability)
@processing_progress = args[:processing_progress] if args.key?(:processing_progress)
@processing_status = args[:processing_status] if args.key?(:processing_status)
@tag_suggestions_availability = args[:tag_suggestions_availability] if args.key?(:tag_suggestions_availability)
@thumbnails_availability = args[:thumbnails_availability] if args.key?(:thumbnails_availability)
end
end
# Video processing progress and completion time estimate.
class VideoProcessingDetailsProcessingProgress
include Google::Apis::Core::Hashable
# The number of parts of the video that YouTube has already processed. You can
# estimate the percentage of the video that YouTube has already processed by
# calculating: 100 * parts_processed / parts_total Note that since the estimated
# number of parts could increase without a corresponding increase in the number
# of parts that have already been processed, it is possible that the calculated
# progress could periodically decrease while YouTube processes a video.
# Corresponds to the JSON property `partsProcessed`
# @return [Fixnum]
attr_accessor :parts_processed
# An estimate of the total number of parts that need to be processed for the
# video. The number may be updated with more precise estimates while YouTube
# processes the video.
# Corresponds to the JSON property `partsTotal`
# @return [Fixnum]
attr_accessor :parts_total
# An estimate of the amount of time, in millseconds, that YouTube needs to
# finish processing the video.
# Corresponds to the JSON property `timeLeftMs`
# @return [Fixnum]
attr_accessor :time_left_ms
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@parts_processed = args[:parts_processed] if args.key?(:parts_processed)
@parts_total = args[:parts_total] if args.key?(:parts_total)
@time_left_ms = args[:time_left_ms] if args.key?(:time_left_ms)
end
end
# DEPRECATED. b/157517979: This part was never populated after it was added.
# However, it sees non-zero traffic because there is generated client code in
# the wild that refers to it [1]. We keep this field and do NOT remove it
# because otherwise V3 would return an error when this part gets requested [2]. [
# 1] https://developers.google.com/resources/api-libraries/documentation/youtube/
# v3/csharp/latest/
# classGoogle_1_1Apis_1_1YouTube_1_1v3_1_1Data_1_1VideoProjectDetails.html [2]
# http://google3/video/youtube/src/python/servers/data_api/common.py?l=1565-1569&
# rcl=344141677
class VideoProjectDetails
include Google::Apis::Core::Hashable
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
end
end
# Basic details about rating of a video.
class VideoRating
include Google::Apis::Core::Hashable
# Rating of a video.
# Corresponds to the JSON property `rating`
# @return [String]
attr_accessor :rating
# The ID that YouTube uses to uniquely identify the video.
# Corresponds to the JSON property `videoId`
# @return [String]
attr_accessor :video_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@rating = args[:rating] if args.key?(:rating)
@video_id = args[:video_id] if args.key?(:video_id)
end
end
#
class VideoRatingListResponse
include Google::Apis::Core::Hashable
# Etag of this resource.
# Corresponds to the JSON property `etag`
# @return [String]
attr_accessor :etag
# Serialized EventId of the request which produced this response.
# Corresponds to the JSON property `eventId`
# @return [String]
attr_accessor :event_id
# A list of ratings that match the request criteria.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::YoutubeV3::VideoRating>]
attr_accessor :items
# Identifies what kind of resource this is. Value: the fixed string "youtube#
# videoGetRatingResponse".
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
# The visitorId identifies the visitor.
# Corresponds to the JSON property `visitorId`
# @return [String]
attr_accessor :visitor_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@etag = args[:etag] if args.key?(:etag)
@event_id = args[:event_id] if args.key?(:event_id)
@items = args[:items] if args.key?(:items)
@kind = args[:kind] if args.key?(:kind)
@visitor_id = args[:visitor_id] if args.key?(:visitor_id)
end
end
# Recording information associated with the video.
class VideoRecordingDetails
include Google::Apis::Core::Hashable
# Geographical coordinates of a point, in WGS84.
# Corresponds to the JSON property `location`
# @return [Google::Apis::YoutubeV3::GeoPoint]
attr_accessor :location
# The text description of the location where the video was recorded.
# Corresponds to the JSON property `locationDescription`
# @return [String]
attr_accessor :location_description
# The date and time when the video was recorded. The value is specified in ISO
# 8601 (YYYY-MM-DDThh:mm:ss.sssZ) format.
# Corresponds to the JSON property `recordingDate`
# @return [String]
attr_accessor :recording_date
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@location = args[:location] if args.key?(:location)
@location_description = args[:location_description] if args.key?(:location_description)
@recording_date = args[:recording_date] if args.key?(:recording_date)
end
end
# Basic details about a video, including title, description, uploader,
# thumbnails and category.
class VideoSnippet
include Google::Apis::Core::Hashable
# The YouTube video category associated with the video.
# Corresponds to the JSON property `categoryId`
# @return [String]
attr_accessor :category_id
# The ID that YouTube uses to uniquely identify the channel that the video was
# uploaded to.
# Corresponds to the JSON property `channelId`
# @return [String]
attr_accessor :channel_id
# Channel title for the channel that the video belongs to.
# Corresponds to the JSON property `channelTitle`
# @return [String]
attr_accessor :channel_title
# The default_audio_language property specifies the language spoken in the video'
# s default audio track.
# Corresponds to the JSON property `defaultAudioLanguage`
# @return [String]
attr_accessor :default_audio_language
# The language of the videos's default snippet.
# Corresponds to the JSON property `defaultLanguage`
# @return [String]
attr_accessor :default_language
# The video's description. @mutable youtube.videos.insert youtube.videos.update
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
# Indicates if the video is an upcoming/active live broadcast. Or it's "none" if
# the video is not an upcoming/active live broadcast.
# Corresponds to the JSON property `liveBroadcastContent`
# @return [String]
attr_accessor :live_broadcast_content
# Localized versions of certain video properties (e.g. title).
# Corresponds to the JSON property `localized`
# @return [Google::Apis::YoutubeV3::VideoLocalization]
attr_accessor :localized
# The date and time that the video was uploaded. The value is specified in ISO
# 8601 format.
# Corresponds to the JSON property `publishedAt`
# @return [String]
attr_accessor :published_at
# A list of keyword tags associated with the video. Tags may contain spaces.
# Corresponds to the JSON property `tags`
# @return [Array<String>]
attr_accessor :tags
# Internal representation of thumbnails for a YouTube resource.
# Corresponds to the JSON property `thumbnails`
# @return [Google::Apis::YoutubeV3::ThumbnailDetails]
attr_accessor :thumbnails
# The video's title. @mutable youtube.videos.insert youtube.videos.update
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@category_id = args[:category_id] if args.key?(:category_id)
@channel_id = args[:channel_id] if args.key?(:channel_id)
@channel_title = args[:channel_title] if args.key?(:channel_title)
@default_audio_language = args[:default_audio_language] if args.key?(:default_audio_language)
@default_language = args[:default_language] if args.key?(:default_language)
@description = args[:description] if args.key?(:description)
@live_broadcast_content = args[:live_broadcast_content] if args.key?(:live_broadcast_content)
@localized = args[:localized] if args.key?(:localized)
@published_at = args[:published_at] if args.key?(:published_at)
@tags = args[:tags] if args.key?(:tags)
@thumbnails = args[:thumbnails] if args.key?(:thumbnails)
@title = args[:title] if args.key?(:title)
end
end
# Statistics about the video, such as the number of times the video was viewed
# or liked.
class VideoStatistics
include Google::Apis::Core::Hashable
# The number of comments for the video.
# Corresponds to the JSON property `commentCount`
# @return [Fixnum]
attr_accessor :comment_count
# The number of users who have indicated that they disliked the video by giving
# it a negative rating.
# Corresponds to the JSON property `dislikeCount`
# @return [Fixnum]
attr_accessor :dislike_count
# The number of users who currently have the video marked as a favorite video.
# Corresponds to the JSON property `favoriteCount`
# @return [Fixnum]
attr_accessor :favorite_count
# The number of users who have indicated that they liked the video by giving it
# a positive rating.
# Corresponds to the JSON property `likeCount`
# @return [Fixnum]
attr_accessor :like_count
# The number of times the video has been viewed.
# Corresponds to the JSON property `viewCount`
# @return [Fixnum]
attr_accessor :view_count
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@comment_count = args[:comment_count] if args.key?(:comment_count)
@dislike_count = args[:dislike_count] if args.key?(:dislike_count)
@favorite_count = args[:favorite_count] if args.key?(:favorite_count)
@like_count = args[:like_count] if args.key?(:like_count)
@view_count = args[:view_count] if args.key?(:view_count)
end
end
# Basic details about a video category, such as its localized title. Next Id: 17
class VideoStatus
include Google::Apis::Core::Hashable
# This value indicates if the video can be embedded on another website. @mutable
# youtube.videos.insert youtube.videos.update
# Corresponds to the JSON property `embeddable`
# @return [Boolean]
attr_accessor :embeddable
alias_method :embeddable?, :embeddable
# This value explains why a video failed to upload. This property is only
# present if the uploadStatus property indicates that the upload failed.
# Corresponds to the JSON property `failureReason`
# @return [String]
attr_accessor :failure_reason
# The video's license. @mutable youtube.videos.insert youtube.videos.update
# Corresponds to the JSON property `license`
# @return [String]
attr_accessor :license
#
# Corresponds to the JSON property `madeForKids`
# @return [Boolean]
attr_accessor :made_for_kids
alias_method :made_for_kids?, :made_for_kids
# The video's privacy status.
# Corresponds to the JSON property `privacyStatus`
# @return [String]
attr_accessor :privacy_status
# This value indicates if the extended video statistics on the watch page can be
# viewed by everyone. Note that the view count, likes, etc will still be visible
# if this is disabled. @mutable youtube.videos.insert youtube.videos.update
# Corresponds to the JSON property `publicStatsViewable`
# @return [Boolean]
attr_accessor :public_stats_viewable
alias_method :public_stats_viewable?, :public_stats_viewable
# The date and time when the video is scheduled to publish. It can be set only
# if the privacy status of the video is private. The value is specified in ISO
# 8601 format.
# Corresponds to the JSON property `publishAt`
# @return [String]
attr_accessor :publish_at
# This value explains why YouTube rejected an uploaded video. This property is
# only present if the uploadStatus property indicates that the upload was
# rejected.
# Corresponds to the JSON property `rejectionReason`
# @return [String]
attr_accessor :rejection_reason
#
# Corresponds to the JSON property `selfDeclaredMadeForKids`
# @return [Boolean]
attr_accessor :self_declared_made_for_kids
alias_method :self_declared_made_for_kids?, :self_declared_made_for_kids
# The status of the uploaded video.
# Corresponds to the JSON property `uploadStatus`
# @return [String]
attr_accessor :upload_status
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@embeddable = args[:embeddable] if args.key?(:embeddable)
@failure_reason = args[:failure_reason] if args.key?(:failure_reason)
@license = args[:license] if args.key?(:license)
@made_for_kids = args[:made_for_kids] if args.key?(:made_for_kids)
@privacy_status = args[:privacy_status] if args.key?(:privacy_status)
@public_stats_viewable = args[:public_stats_viewable] if args.key?(:public_stats_viewable)
@publish_at = args[:publish_at] if args.key?(:publish_at)
@rejection_reason = args[:rejection_reason] if args.key?(:rejection_reason)
@self_declared_made_for_kids = args[:self_declared_made_for_kids] if args.key?(:self_declared_made_for_kids)
@upload_status = args[:upload_status] if args.key?(:upload_status)
end
end
# Specifies suggestions on how to improve video content, including encoding
# hints, tag suggestions, and editor suggestions.
class VideoSuggestions
include Google::Apis::Core::Hashable
# A list of video editing operations that might improve the video quality or
# playback experience of the uploaded video.
# Corresponds to the JSON property `editorSuggestions`
# @return [Array<String>]
attr_accessor :editor_suggestions
# A list of errors that will prevent YouTube from successfully processing the
# uploaded video video. These errors indicate that, regardless of the video's
# current processing status, eventually, that status will almost certainly be
# failed.
# Corresponds to the JSON property `processingErrors`
# @return [Array<String>]
attr_accessor :processing_errors
# A list of suggestions that may improve YouTube's ability to process the video.
# Corresponds to the JSON property `processingHints`
# @return [Array<String>]
attr_accessor :processing_hints
# A list of reasons why YouTube may have difficulty transcoding the uploaded
# video or that might result in an erroneous transcoding. These warnings are
# generated before YouTube actually processes the uploaded video file. In
# addition, they identify issues that are unlikely to cause the video processing
# to fail but that might cause problems such as sync issues, video artifacts, or
# a missing audio track.
# Corresponds to the JSON property `processingWarnings`
# @return [Array<String>]
attr_accessor :processing_warnings
# A list of keyword tags that could be added to the video's metadata to increase
# the likelihood that users will locate your video when searching or browsing on
# YouTube.
# Corresponds to the JSON property `tagSuggestions`
# @return [Array<Google::Apis::YoutubeV3::VideoSuggestionsTagSuggestion>]
attr_accessor :tag_suggestions
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@editor_suggestions = args[:editor_suggestions] if args.key?(:editor_suggestions)
@processing_errors = args[:processing_errors] if args.key?(:processing_errors)
@processing_hints = args[:processing_hints] if args.key?(:processing_hints)
@processing_warnings = args[:processing_warnings] if args.key?(:processing_warnings)
@tag_suggestions = args[:tag_suggestions] if args.key?(:tag_suggestions)
end
end
# A single tag suggestion with it's relevance information.
class VideoSuggestionsTagSuggestion
include Google::Apis::Core::Hashable
# A set of video categories for which the tag is relevant. You can use this
# information to display appropriate tag suggestions based on the video category
# that the video uploader associates with the video. By default, tag suggestions
# are relevant for all categories if there are no restricts defined for the
# keyword.
# Corresponds to the JSON property `categoryRestricts`
# @return [Array<String>]
attr_accessor :category_restricts
# The keyword tag suggested for the video.
# Corresponds to the JSON property `tag`
# @return [String]
attr_accessor :tag
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@category_restricts = args[:category_restricts] if args.key?(:category_restricts)
@tag = args[:tag] if args.key?(:tag)
end
end
# Freebase topic information related to the video.
class VideoTopicDetails
include Google::Apis::Core::Hashable
# Similar to topic_id, except that these topics are merely relevant to the video.
# These are topics that may be mentioned in, or appear in the video. You can
# retrieve information about each topic using Freebase Topic API.
# Corresponds to the JSON property `relevantTopicIds`
# @return [Array<String>]
attr_accessor :relevant_topic_ids
# A list of Wikipedia URLs that provide a high-level description of the video's
# content.
# Corresponds to the JSON property `topicCategories`
# @return [Array<String>]
attr_accessor :topic_categories
# A list of Freebase topic IDs that are centrally associated with the video.
# These are topics that are centrally featured in the video, and it can be said
# that the video is mainly about each of these. You can retrieve information
# about each topic using the < a href="http://wiki.freebase.com/wiki/Topic_API">
# Freebase Topic API.
# Corresponds to the JSON property `topicIds`
# @return [Array<String>]
attr_accessor :topic_ids
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@relevant_topic_ids = args[:relevant_topic_ids] if args.key?(:relevant_topic_ids)
@topic_categories = args[:topic_categories] if args.key?(:topic_categories)
@topic_ids = args[:topic_ids] if args.key?(:topic_ids)
end
end
# Branding properties for the watch. All deprecated.
class WatchSettings
include Google::Apis::Core::Hashable
# The text color for the video watch page's branded area.
# Corresponds to the JSON property `backgroundColor`
# @return [String]
attr_accessor :background_color
# An ID that uniquely identifies a playlist that displays next to the video
# player.
# Corresponds to the JSON property `featuredPlaylistId`
# @return [String]
attr_accessor :featured_playlist_id
# The background color for the video watch page's branded area.
# Corresponds to the JSON property `textColor`
# @return [String]
attr_accessor :text_color
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@background_color = args[:background_color] if args.key?(:background_color)
@featured_playlist_id = args[:featured_playlist_id] if args.key?(:featured_playlist_id)
@text_color = args[:text_color] if args.key?(:text_color)
end
end
end
end
end