# 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] attr_accessor :abuse_types # # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # # Corresponds to the JSON property `relatedEntities` # @return [Array] 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] 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] 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] 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] 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] 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 # Describes an invideo promotion campaign consisting of multiple promoted # items. A campaign belongs to a single channel_id. # Corresponds to the JSON property `invideoPromotion` # @return [Google::Apis::YoutubeV3::InvideoPromotion] attr_accessor :invideo_promotion # 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] 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) @invideo_promotion = args[:invideo_promotion] if args.key?(:invideo_promotion) @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] 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 # class ChannelCard include Google::Apis::Core::Hashable # External channel ID. # Required. # Corresponds to the JSON property `channelId` # @return [String] attr_accessor :channel_id # Each card can have a custom message. # Required. # Corresponds to the JSON property `customMessage` # @return [String] attr_accessor :custom_message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @channel_id = args[:channel_id] if args.key?(:channel_id) @custom_message = args[:custom_message] if args.key?(:custom_message) 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] 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] 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] 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] 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] 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] 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] attr_accessor :countries # The language the channel section is targeting. # Corresponds to the JSON property `languages` # @return [Array] attr_accessor :languages # The region the channel section is targeting. # Corresponds to the JSON property `regions` # @return [Array] 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] 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] 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] 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] 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] 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] 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 # l’audiovisuel, 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] 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] 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 # A guideCategory resource identifies a category # that YouTube algorithmically assigns based on a # channel's content or other indicators, such as the channel's popularity. The # list is similar to video categories, with the # difference being that a video's uploader can assign a video category but only # YouTube can assign a channel category. class GuideCategory 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 guide category. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. Value: the fixed string # "youtube#guideCategory". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Basic details about a guide category. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::GuideCategorySnippet] 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 ListGuideCategoriesResponse 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 categories that can be associated with YouTube channels. In this # map, the category ID is the map key, and its value is the corresponding # guideCategory resource. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. Value: the fixed string # "youtube#guideCategoryListResponse". # 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 guide category. class GuideCategorySnippet include Google::Apis::Core::Hashable # # Corresponds to the JSON property `channelId` # @return [String] attr_accessor :channel_id # Description of the guide category. # 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) @title = args[:title] if args.key?(:title) 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] 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] 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 used only in update requests; if it's set, we use this URL to # generate all of the above banner URLs. # 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 # class InfoCard include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # UUID for this infocard. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The snippet object contains basic details about the infocard. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::InfoCardSnippet] 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 InfoCardSnippet include Google::Apis::Core::Hashable # # Corresponds to the JSON property `channelInfocard` # @return [Google::Apis::YoutubeV3::ChannelCard] attr_accessor :channel_infocard # # Corresponds to the JSON property `linkInfocard` # @return [Google::Apis::YoutubeV3::LinkCard] attr_accessor :link_infocard # # Corresponds to the JSON property `playlistInfocard` # @return [Google::Apis::YoutubeV3::PlaylistCard] attr_accessor :playlist_infocard # Each card can have a teaser. # Required. # Corresponds to the JSON property `teaser` # @return [Google::Apis::YoutubeV3::InfoCardSnippetTeaser] attr_accessor :teaser # # Corresponds to the JSON property `videoInfocard` # @return [Google::Apis::YoutubeV3::VideoCard] attr_accessor :video_infocard def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @channel_infocard = args[:channel_infocard] if args.key?(:channel_infocard) @link_infocard = args[:link_infocard] if args.key?(:link_infocard) @playlist_infocard = args[:playlist_infocard] if args.key?(:playlist_infocard) @teaser = args[:teaser] if args.key?(:teaser) @video_infocard = args[:video_infocard] if args.key?(:video_infocard) end end # class InfoCardSnippetTeaser include Google::Apis::Core::Hashable # The offset from the video start at which the teaser should be displayed # (activated), in milliseconds. # Required. # Corresponds to the JSON property `teaserStartOffset` # @return [String] attr_accessor :teaser_start_offset # The teaser text to show at the top of the player for the info-card. # Required for channel and link type cards. # Optional for video and playlist type cards. # Corresponds to the JSON property `teaserText` # @return [String] attr_accessor :teaser_text def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @teaser_start_offset = args[:teaser_start_offset] if args.key?(:teaser_start_offset) @teaser_text = args[:teaser_text] if args.key?(:teaser_text) end end # class InfoCards include Google::Apis::Core::Hashable # A list of infocards. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @items = args[:items] if args.key?(:items) end end # class InfocardListResponse include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # A list of infocards. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) 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 an invideo promotion campaign consisting of multiple promoted # items. A campaign belongs to a single channel_id. class InvideoPromotion include Google::Apis::Core::Hashable # Describes a temporal position of a visual widget inside a video. # Corresponds to the JSON property `defaultTiming` # @return [Google::Apis::YoutubeV3::InvideoTiming] attr_accessor :default_timing # List of promoted items in decreasing priority. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # 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 # Indicates whether the channel's promotional campaign uses "smart timing." # This feature attempts to show promotions at a point in the video when they # are more likely to be clicked and less likely to disrupt the viewing # experience. This feature also picks up a single promotion to show on each # video. # Corresponds to the JSON property `useSmartTiming` # @return [Boolean] attr_accessor :use_smart_timing alias_method :use_smart_timing?, :use_smart_timing def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @default_timing = args[:default_timing] if args.key?(:default_timing) @items = args[:items] if args.key?(:items) @position = args[:position] if args.key?(:position) @use_smart_timing = args[:use_smart_timing] if args.key?(:use_smart_timing) 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 # class LinkCard include Google::Apis::Core::Hashable # Custom text to show as the website link. # Required. # Corresponds to the JSON property `customLinkText` # @return [String] attr_accessor :custom_link_text # URL to an externally hosted image. # Corresponds to the JSON property `externalImageUrl` # @return [String] attr_accessor :external_image_url # The URL to which this card points. # Required. # Corresponds to the JSON property `targetUrl` # @return [String] attr_accessor :target_url # The title to show on the card. # Required. # Corresponds to the JSON property `title` # @return [String] attr_accessor :title # Previously uploaded image. # Corresponds to the JSON property `uploadedImage` # @return [Google::Apis::YoutubeV3::LinkCardUploadedImage] attr_accessor :uploaded_image def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @custom_link_text = args[:custom_link_text] if args.key?(:custom_link_text) @external_image_url = args[:external_image_url] if args.key?(:external_image_url) @target_url = args[:target_url] if args.key?(:target_url) @title = args[:title] if args.key?(:title) @uploaded_image = args[:uploaded_image] if args.key?(:uploaded_image) end end # class LinkCardUploadedImage include Google::Apis::Core::Hashable # Image reference on the thumbnail service. # Corresponds to the JSON property `imageFile` # @return [String] attr_accessor :image_file # The version in the thumbnail service. # Corresponds to the JSON property `version` # @return [Fixnum] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @image_file = args[:image_file] if args.key?(:image_file) @version = args[:version] if args.key?(:version) 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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 PlaylistCard include Google::Apis::Core::Hashable # Each card can have a custom message. # Optional. # Corresponds to the JSON property `customMessage` # @return [String] attr_accessor :custom_message # External playlist ID. # Required. # Corresponds to the JSON property `playlistId` # @return [String] attr_accessor :playlist_id # Starting video, if not the first. # Optional. # Corresponds to the JSON property `startVideoId` # @return [String] attr_accessor :start_video_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @custom_message = args[:custom_message] if args.key?(:custom_message) @playlist_id = args[:playlist_id] if args.key?(:playlist_id) @start_video_id = args[:start_video_id] if args.key?(:start_video_id) 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] 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] 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] 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 # Describes a single promoted item. class PromotedItem include Google::Apis::Core::Hashable # A custom message to display for this promotion. This field is currently # ignored unless the promoted item is a website. # Corresponds to the JSON property `customMessage` # @return [String] attr_accessor :custom_message # Describes a single promoted item id. It is a union of various possible types. # Corresponds to the JSON property `id` # @return [Google::Apis::YoutubeV3::PromotedItemId] attr_accessor :id # If true, the content owner's name will be used when displaying the # promotion. This field can only be set when the update is made on behalf of # the content owner. # Corresponds to the JSON property `promotedByContentOwner` # @return [Boolean] attr_accessor :promoted_by_content_owner alias_method :promoted_by_content_owner?, :promoted_by_content_owner # 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) @custom_message = args[:custom_message] if args.key?(:custom_message) @id = args[:id] if args.key?(:id) @promoted_by_content_owner = args[:promoted_by_content_owner] if args.key?(:promoted_by_content_owner) @timing = args[:timing] if args.key?(:timing) end end # Describes a single promoted item id. It is a union of various possible types. class PromotedItemId include Google::Apis::Core::Hashable # If type is recentUpload, this field identifies the channel from which to # take the recent upload. If missing, the channel is assumed to be the same # channel for which the invideoPromotion is set. # Corresponds to the JSON property `recentlyUploadedBy` # @return [String] attr_accessor :recently_uploaded_by # Describes the type of the promoted item. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # If the promoted item represents a video, this field represents the unique # YouTube ID identifying it. This field will be present only if # type has the value video. # Corresponds to the JSON property `videoId` # @return [String] attr_accessor :video_id # If the promoted item represents a website, this field represents the url # pointing to the website. This field will be present only if # type has the value website. # Corresponds to the JSON property `websiteUrl` # @return [String] attr_accessor :website_url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @recently_uploaded_by = args[:recently_uploaded_by] if args.key?(:recently_uploaded_by) @type = args[:type] if args.key?(:type) @video_id = args[:video_id] if args.key?(:video_id) @website_url = args[:website_url] if args.key?(:website_url) 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] 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] 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] 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] 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] 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] 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 # Project specific details about the content of a YouTube Video. # 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] 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] 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 # class VideoCard include Google::Apis::Core::Hashable # Each card can have a custom message. # Optional. # Corresponds to the JSON property `customMessage` # @return [String] attr_accessor :custom_message # Playback start time offset in milliseconds. # Optional. # Corresponds to the JSON property `playbackStartOffset` # @return [String] attr_accessor :playback_start_offset # Encrypted Video ID. # Required. # 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) @custom_message = args[:custom_message] if args.key?(:custom_message) @playback_start_offset = args[:playback_start_offset] if args.key?(:playback_start_offset) @video_id = args[:video_id] if args.key?(:video_id) 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] 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] 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] 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] 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] 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] 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 # Project specific details about the content of a YouTube Video. class VideoProjectDetails include Google::Apis::Core::Hashable # A list of project tags associated with the video during the upload. # Corresponds to the JSON property `tags` # @return [Array] attr_accessor :tags def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @tags = args[:tags] if args.key?(:tags) 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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