// Package youtube provides access to the YouTube Data API. // // See https://developers.google.com/youtube/v3 // // Usage example: // // import "google.golang.org/api/youtube/v3" // ... // youtubeService, err := youtube.New(oauthHttpClient) package youtube // import "google.golang.org/api/youtube/v3" import ( "bytes" "encoding/json" "errors" "fmt" "golang.org/x/net/context" "golang.org/x/net/context/ctxhttp" "google.golang.org/api/googleapi" "google.golang.org/api/internal" "io" "net/http" "net/url" "strconv" "strings" ) // Always reference these packages, just in case the auto-generated code // below doesn't. var _ = bytes.NewBuffer var _ = strconv.Itoa var _ = fmt.Sprintf var _ = json.NewDecoder var _ = io.Copy var _ = url.Parse var _ = googleapi.Version var _ = errors.New var _ = strings.Replace var _ = internal.MarshalJSON var _ = context.Canceled var _ = ctxhttp.Do const apiId = "youtube:v3" const apiName = "youtube" const apiVersion = "v3" const basePath = "https://www.googleapis.com/youtube/v3/" // OAuth2 scopes used by this API. const ( // Manage your YouTube account YoutubeScope = "https://www.googleapis.com/auth/youtube" // Manage your YouTube account YoutubeForceSslScope = "https://www.googleapis.com/auth/youtube.force-ssl" // View your YouTube account YoutubeReadonlyScope = "https://www.googleapis.com/auth/youtube.readonly" // Manage your YouTube videos YoutubeUploadScope = "https://www.googleapis.com/auth/youtube.upload" // View and manage your assets and associated content on YouTube YoutubepartnerScope = "https://www.googleapis.com/auth/youtubepartner" // View private information of your YouTube channel relevant during the // audit process with a YouTube partner YoutubepartnerChannelAuditScope = "https://www.googleapis.com/auth/youtubepartner-channel-audit" ) func New(client *http.Client) (*Service, error) { if client == nil { return nil, errors.New("client is nil") } s := &Service{client: client, BasePath: basePath} s.Activities = NewActivitiesService(s) s.Captions = NewCaptionsService(s) s.ChannelBanners = NewChannelBannersService(s) s.ChannelSections = NewChannelSectionsService(s) s.Channels = NewChannelsService(s) s.CommentThreads = NewCommentThreadsService(s) s.Comments = NewCommentsService(s) s.GuideCategories = NewGuideCategoriesService(s) s.I18nLanguages = NewI18nLanguagesService(s) s.I18nRegions = NewI18nRegionsService(s) s.LiveBroadcasts = NewLiveBroadcastsService(s) s.LiveStreams = NewLiveStreamsService(s) s.PlaylistItems = NewPlaylistItemsService(s) s.Playlists = NewPlaylistsService(s) s.Search = NewSearchService(s) s.Subscriptions = NewSubscriptionsService(s) s.Thumbnails = NewThumbnailsService(s) s.VideoAbuseReportReasons = NewVideoAbuseReportReasonsService(s) s.VideoCategories = NewVideoCategoriesService(s) s.Videos = NewVideosService(s) s.Watermarks = NewWatermarksService(s) return s, nil } type Service struct { client *http.Client BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment Activities *ActivitiesService Captions *CaptionsService ChannelBanners *ChannelBannersService ChannelSections *ChannelSectionsService Channels *ChannelsService CommentThreads *CommentThreadsService Comments *CommentsService GuideCategories *GuideCategoriesService I18nLanguages *I18nLanguagesService I18nRegions *I18nRegionsService LiveBroadcasts *LiveBroadcastsService LiveStreams *LiveStreamsService PlaylistItems *PlaylistItemsService Playlists *PlaylistsService Search *SearchService Subscriptions *SubscriptionsService Thumbnails *ThumbnailsService VideoAbuseReportReasons *VideoAbuseReportReasonsService VideoCategories *VideoCategoriesService Videos *VideosService Watermarks *WatermarksService } func (s *Service) userAgent() string { if s.UserAgent == "" { return googleapi.UserAgent } return googleapi.UserAgent + " " + s.UserAgent } func NewActivitiesService(s *Service) *ActivitiesService { rs := &ActivitiesService{s: s} return rs } type ActivitiesService struct { s *Service } func NewCaptionsService(s *Service) *CaptionsService { rs := &CaptionsService{s: s} return rs } type CaptionsService struct { s *Service } func NewChannelBannersService(s *Service) *ChannelBannersService { rs := &ChannelBannersService{s: s} return rs } type ChannelBannersService struct { s *Service } func NewChannelSectionsService(s *Service) *ChannelSectionsService { rs := &ChannelSectionsService{s: s} return rs } type ChannelSectionsService struct { s *Service } func NewChannelsService(s *Service) *ChannelsService { rs := &ChannelsService{s: s} return rs } type ChannelsService struct { s *Service } func NewCommentThreadsService(s *Service) *CommentThreadsService { rs := &CommentThreadsService{s: s} return rs } type CommentThreadsService struct { s *Service } func NewCommentsService(s *Service) *CommentsService { rs := &CommentsService{s: s} return rs } type CommentsService struct { s *Service } func NewGuideCategoriesService(s *Service) *GuideCategoriesService { rs := &GuideCategoriesService{s: s} return rs } type GuideCategoriesService struct { s *Service } func NewI18nLanguagesService(s *Service) *I18nLanguagesService { rs := &I18nLanguagesService{s: s} return rs } type I18nLanguagesService struct { s *Service } func NewI18nRegionsService(s *Service) *I18nRegionsService { rs := &I18nRegionsService{s: s} return rs } type I18nRegionsService struct { s *Service } func NewLiveBroadcastsService(s *Service) *LiveBroadcastsService { rs := &LiveBroadcastsService{s: s} return rs } type LiveBroadcastsService struct { s *Service } func NewLiveStreamsService(s *Service) *LiveStreamsService { rs := &LiveStreamsService{s: s} return rs } type LiveStreamsService struct { s *Service } func NewPlaylistItemsService(s *Service) *PlaylistItemsService { rs := &PlaylistItemsService{s: s} return rs } type PlaylistItemsService struct { s *Service } func NewPlaylistsService(s *Service) *PlaylistsService { rs := &PlaylistsService{s: s} return rs } type PlaylistsService struct { s *Service } func NewSearchService(s *Service) *SearchService { rs := &SearchService{s: s} return rs } type SearchService struct { s *Service } func NewSubscriptionsService(s *Service) *SubscriptionsService { rs := &SubscriptionsService{s: s} return rs } type SubscriptionsService struct { s *Service } func NewThumbnailsService(s *Service) *ThumbnailsService { rs := &ThumbnailsService{s: s} return rs } type ThumbnailsService struct { s *Service } func NewVideoAbuseReportReasonsService(s *Service) *VideoAbuseReportReasonsService { rs := &VideoAbuseReportReasonsService{s: s} return rs } type VideoAbuseReportReasonsService struct { s *Service } func NewVideoCategoriesService(s *Service) *VideoCategoriesService { rs := &VideoCategoriesService{s: s} return rs } type VideoCategoriesService struct { s *Service } func NewVideosService(s *Service) *VideosService { rs := &VideosService{s: s} return rs } type VideosService struct { s *Service } func NewWatermarksService(s *Service) *WatermarksService { rs := &WatermarksService{s: s} return rs } type WatermarksService struct { s *Service } // AccessPolicy: Rights management policy for YouTube resources. type AccessPolicy struct { // Allowed: The value of allowed indicates whether the access to the // policy is allowed or denied by default. Allowed bool `json:"allowed,omitempty"` // Exception: A list of region codes that identify countries where the // default policy do not apply. Exception []string `json:"exception,omitempty"` // ForceSendFields is a list of field names (e.g. "Allowed") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *AccessPolicy) MarshalJSON() ([]byte, error) { type noMethod AccessPolicy raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // Activity: 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. type Activity struct { // ContentDetails: The contentDetails object contains information about // the content associated with the activity. For example, if the // snippet.type value is videoRated, then the contentDetails object's // content identifies the rated video. ContentDetails *ActivityContentDetails `json:"contentDetails,omitempty"` // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // Id: The ID that YouTube uses to uniquely identify the activity. Id string `json:"id,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#activity". Kind string `json:"kind,omitempty"` // Snippet: The snippet object contains basic details about the // activity, including the activity's type and group ID. Snippet *ActivitySnippet `json:"snippet,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "ContentDetails") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *Activity) MarshalJSON() ([]byte, error) { type noMethod Activity raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ActivityContentDetails: Details about the content of an activity: the // video that was shared, the channel that was subscribed to, etc. type ActivityContentDetails struct { // Bulletin: The bulletin object contains details about a channel // bulletin post. This object is only present if the snippet.type is // bulletin. Bulletin *ActivityContentDetailsBulletin `json:"bulletin,omitempty"` // ChannelItem: The channelItem object contains details about a resource // which was added to a channel. This property is only present if the // snippet.type is channelItem. ChannelItem *ActivityContentDetailsChannelItem `json:"channelItem,omitempty"` // Comment: The comment object contains information about a resource // that received a comment. This property is only present if the // snippet.type is comment. Comment *ActivityContentDetailsComment `json:"comment,omitempty"` // Favorite: The favorite object contains information about a video that // was marked as a favorite video. This property is only present if the // snippet.type is favorite. Favorite *ActivityContentDetailsFavorite `json:"favorite,omitempty"` // Like: The like object contains information about a resource that // received a positive (like) rating. This property is only present if // the snippet.type is like. Like *ActivityContentDetailsLike `json:"like,omitempty"` // PlaylistItem: The playlistItem object contains information about a // new playlist item. This property is only present if the snippet.type // is playlistItem. PlaylistItem *ActivityContentDetailsPlaylistItem `json:"playlistItem,omitempty"` // PromotedItem: The promotedItem object contains details about a // resource which is being promoted. This property is only present if // the snippet.type is promotedItem. PromotedItem *ActivityContentDetailsPromotedItem `json:"promotedItem,omitempty"` // Recommendation: The recommendation object contains information about // a recommended resource. This property is only present if the // snippet.type is recommendation. Recommendation *ActivityContentDetailsRecommendation `json:"recommendation,omitempty"` // Social: The social object contains details about a social network // post. This property is only present if the snippet.type is social. Social *ActivityContentDetailsSocial `json:"social,omitempty"` // Subscription: The subscription object contains information about a // channel that a user subscribed to. This property is only present if // the snippet.type is subscription. Subscription *ActivityContentDetailsSubscription `json:"subscription,omitempty"` // Upload: The upload object contains information about the uploaded // video. This property is only present if the snippet.type is upload. Upload *ActivityContentDetailsUpload `json:"upload,omitempty"` // ForceSendFields is a list of field names (e.g. "Bulletin") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ActivityContentDetails) MarshalJSON() ([]byte, error) { type noMethod ActivityContentDetails raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ActivityContentDetailsBulletin: Details about a channel bulletin // post. type ActivityContentDetailsBulletin struct { // ResourceId: The resourceId object contains information that // identifies the resource associated with a bulletin post. ResourceId *ResourceId `json:"resourceId,omitempty"` // ForceSendFields is a list of field names (e.g. "ResourceId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ActivityContentDetailsBulletin) MarshalJSON() ([]byte, error) { type noMethod ActivityContentDetailsBulletin raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ActivityContentDetailsChannelItem: Details about a resource which was // added to a channel. type ActivityContentDetailsChannelItem struct { // ResourceId: The resourceId object contains information that // identifies the resource that was added to the channel. ResourceId *ResourceId `json:"resourceId,omitempty"` // ForceSendFields is a list of field names (e.g. "ResourceId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ActivityContentDetailsChannelItem) MarshalJSON() ([]byte, error) { type noMethod ActivityContentDetailsChannelItem raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ActivityContentDetailsComment: Information about a resource that // received a comment. type ActivityContentDetailsComment struct { // ResourceId: The resourceId object contains information that // identifies the resource associated with the comment. ResourceId *ResourceId `json:"resourceId,omitempty"` // ForceSendFields is a list of field names (e.g. "ResourceId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ActivityContentDetailsComment) MarshalJSON() ([]byte, error) { type noMethod ActivityContentDetailsComment raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ActivityContentDetailsFavorite: Information about a video that was // marked as a favorite video. type ActivityContentDetailsFavorite struct { // ResourceId: The resourceId object contains information that // identifies the resource that was marked as a favorite. ResourceId *ResourceId `json:"resourceId,omitempty"` // ForceSendFields is a list of field names (e.g. "ResourceId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ActivityContentDetailsFavorite) MarshalJSON() ([]byte, error) { type noMethod ActivityContentDetailsFavorite raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ActivityContentDetailsLike: Information about a resource that // received a positive (like) rating. type ActivityContentDetailsLike struct { // ResourceId: The resourceId object contains information that // identifies the rated resource. ResourceId *ResourceId `json:"resourceId,omitempty"` // ForceSendFields is a list of field names (e.g. "ResourceId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ActivityContentDetailsLike) MarshalJSON() ([]byte, error) { type noMethod ActivityContentDetailsLike raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ActivityContentDetailsPlaylistItem: Information about a new playlist // item. type ActivityContentDetailsPlaylistItem struct { // PlaylistId: The value that YouTube uses to uniquely identify the // playlist. PlaylistId string `json:"playlistId,omitempty"` // PlaylistItemId: ID of the item within the playlist. PlaylistItemId string `json:"playlistItemId,omitempty"` // ResourceId: The resourceId object contains information about the // resource that was added to the playlist. ResourceId *ResourceId `json:"resourceId,omitempty"` // ForceSendFields is a list of field names (e.g. "PlaylistId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ActivityContentDetailsPlaylistItem) MarshalJSON() ([]byte, error) { type noMethod ActivityContentDetailsPlaylistItem raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ActivityContentDetailsPromotedItem: Details about a resource which is // being promoted. type ActivityContentDetailsPromotedItem struct { // AdTag: The URL the client should fetch to request a promoted item. AdTag string `json:"adTag,omitempty"` // ClickTrackingUrl: The URL the client should ping to indicate that the // user clicked through on this promoted item. ClickTrackingUrl string `json:"clickTrackingUrl,omitempty"` // CreativeViewUrl: The URL the client should ping to indicate that the // user was shown this promoted item. CreativeViewUrl string `json:"creativeViewUrl,omitempty"` // CtaType: The type of call-to-action, a message to the user indicating // action that can be taken. // // Possible values: // "unspecified" // "visitAdvertiserSite" CtaType string `json:"ctaType,omitempty"` // CustomCtaButtonText: The custom call-to-action button text. If // specified, it will override the default button text for the cta_type. CustomCtaButtonText string `json:"customCtaButtonText,omitempty"` // DescriptionText: The text description to accompany the promoted item. DescriptionText string `json:"descriptionText,omitempty"` // DestinationUrl: The URL the client should direct the user to, if the // user chooses to visit the advertiser's website. DestinationUrl string `json:"destinationUrl,omitempty"` // ForecastingUrl: 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. ForecastingUrl []string `json:"forecastingUrl,omitempty"` // ImpressionUrl: The list of impression URLs. The client should ping // all of these URLs to indicate that the user was shown this promoted // item. ImpressionUrl []string `json:"impressionUrl,omitempty"` // VideoId: The ID that YouTube uses to uniquely identify the promoted // video. VideoId string `json:"videoId,omitempty"` // ForceSendFields is a list of field names (e.g. "AdTag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ActivityContentDetailsPromotedItem) MarshalJSON() ([]byte, error) { type noMethod ActivityContentDetailsPromotedItem raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ActivityContentDetailsRecommendation: Information that identifies the // recommended resource. type ActivityContentDetailsRecommendation struct { // Reason: The reason that the resource is recommended to the user. // // Possible values: // "unspecified" // "videoFavorited" // "videoLiked" // "videoWatched" Reason string `json:"reason,omitempty"` // ResourceId: The resourceId object contains information that // identifies the recommended resource. ResourceId *ResourceId `json:"resourceId,omitempty"` // SeedResourceId: The seedResourceId object contains information about // the resource that caused the recommendation. SeedResourceId *ResourceId `json:"seedResourceId,omitempty"` // ForceSendFields is a list of field names (e.g. "Reason") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ActivityContentDetailsRecommendation) MarshalJSON() ([]byte, error) { type noMethod ActivityContentDetailsRecommendation raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ActivityContentDetailsSocial: Details about a social network post. type ActivityContentDetailsSocial struct { // Author: The author of the social network post. Author string `json:"author,omitempty"` // ImageUrl: An image of the post's author. ImageUrl string `json:"imageUrl,omitempty"` // ReferenceUrl: The URL of the social network post. ReferenceUrl string `json:"referenceUrl,omitempty"` // ResourceId: The resourceId object encapsulates information that // identifies the resource associated with a social network post. ResourceId *ResourceId `json:"resourceId,omitempty"` // Type: The name of the social network. // // Possible values: // "facebook" // "googlePlus" // "twitter" // "unspecified" Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "Author") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ActivityContentDetailsSocial) MarshalJSON() ([]byte, error) { type noMethod ActivityContentDetailsSocial raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ActivityContentDetailsSubscription: Information about a channel that // a user subscribed to. type ActivityContentDetailsSubscription struct { // ResourceId: The resourceId object contains information that // identifies the resource that the user subscribed to. ResourceId *ResourceId `json:"resourceId,omitempty"` // ForceSendFields is a list of field names (e.g. "ResourceId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ActivityContentDetailsSubscription) MarshalJSON() ([]byte, error) { type noMethod ActivityContentDetailsSubscription raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ActivityContentDetailsUpload: Information about the uploaded video. type ActivityContentDetailsUpload struct { // VideoId: The ID that YouTube uses to uniquely identify the uploaded // video. VideoId string `json:"videoId,omitempty"` // ForceSendFields is a list of field names (e.g. "VideoId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ActivityContentDetailsUpload) MarshalJSON() ([]byte, error) { type noMethod ActivityContentDetailsUpload raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type ActivityListResponse struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // EventId: Serialized EventId of the request which produced this // response. EventId string `json:"eventId,omitempty"` // Items: A list of activities, or events, that match the request // criteria. Items []*Activity `json:"items,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#activityListResponse". Kind string `json:"kind,omitempty"` // NextPageToken: The token that can be used as the value of the // pageToken parameter to retrieve the next page in the result set. NextPageToken string `json:"nextPageToken,omitempty"` PageInfo *PageInfo `json:"pageInfo,omitempty"` // PrevPageToken: The token that can be used as the value of the // pageToken parameter to retrieve the previous page in the result set. PrevPageToken string `json:"prevPageToken,omitempty"` TokenPagination *TokenPagination `json:"tokenPagination,omitempty"` // VisitorId: The visitorId identifies the visitor. VisitorId string `json:"visitorId,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ActivityListResponse) MarshalJSON() ([]byte, error) { type noMethod ActivityListResponse raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ActivitySnippet: Basic details about an activity, including title, // description, thumbnails, activity type and group. type ActivitySnippet struct { // ChannelId: The ID that YouTube uses to uniquely identify the channel // associated with the activity. ChannelId string `json:"channelId,omitempty"` // ChannelTitle: Channel title for the channel responsible for this // activity ChannelTitle string `json:"channelTitle,omitempty"` // Description: The description of the resource primarily associated // with the activity. Description string `json:"description,omitempty"` // GroupId: 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. GroupId string `json:"groupId,omitempty"` // PublishedAt: The date and time that the video was uploaded. The value // is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. PublishedAt string `json:"publishedAt,omitempty"` // Thumbnails: A map of thumbnail images associated with the resource // that is primarily associated with the activity. For each object in // the map, the key is the name of the thumbnail image, and the value is // an object that contains other information about the thumbnail. Thumbnails *ThumbnailDetails `json:"thumbnails,omitempty"` // Title: The title of the resource primarily associated with the // activity. Title string `json:"title,omitempty"` // Type: The type of activity that the resource describes. // // Possible values: // "bulletin" // "channelItem" // "comment" // "favorite" // "like" // "playlistItem" // "promotedItem" // "recommendation" // "social" // "subscription" // "upload" Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "ChannelId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ActivitySnippet) MarshalJSON() ([]byte, error) { type noMethod ActivitySnippet raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // Caption: A caption resource represents a YouTube caption track. A // caption track is associated with exactly one YouTube video. type Caption struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // Id: The ID that YouTube uses to uniquely identify the caption track. Id string `json:"id,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#caption". Kind string `json:"kind,omitempty"` // Snippet: The snippet object contains basic details about the caption. Snippet *CaptionSnippet `json:"snippet,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *Caption) MarshalJSON() ([]byte, error) { type noMethod Caption raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type CaptionListResponse struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // EventId: Serialized EventId of the request which produced this // response. EventId string `json:"eventId,omitempty"` // Items: A list of captions that match the request criteria. Items []*Caption `json:"items,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#captionListResponse". Kind string `json:"kind,omitempty"` // VisitorId: The visitorId identifies the visitor. VisitorId string `json:"visitorId,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *CaptionListResponse) MarshalJSON() ([]byte, error) { type noMethod CaptionListResponse raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // CaptionSnippet: Basic details about a caption track, such as its // language and name. type CaptionSnippet struct { // AudioTrackType: The type of audio track associated with the caption // track. // // Possible values: // "commentary" // "descriptive" // "primary" // "unknown" AudioTrackType string `json:"audioTrackType,omitempty"` // FailureReason: The reason that YouTube failed to process the caption // track. This property is only present if the state property's value is // failed. // // Possible values: // "processingFailed" // "unknownFormat" // "unsupportedFormat" FailureReason string `json:"failureReason,omitempty"` // IsAutoSynced: 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. IsAutoSynced bool `json:"isAutoSynced,omitempty"` // IsCC: Indicates whether the track contains closed captions for the // deaf and hard of hearing. The default value is false. IsCC bool `json:"isCC,omitempty"` // IsDraft: 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. IsDraft bool `json:"isDraft,omitempty"` // IsEasyReader: 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. IsEasyReader bool `json:"isEasyReader,omitempty"` // IsLarge: Indicates whether the caption track uses large text for the // vision-impaired. The default value is false. IsLarge bool `json:"isLarge,omitempty"` // Language: The language of the caption track. The property value is a // BCP-47 language tag. Language string `json:"language,omitempty"` // LastUpdated: The date and time when the caption track was last // updated. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) // format. LastUpdated string `json:"lastUpdated,omitempty"` // Name: The name of the caption track. The name is intended to be // visible to the user as an option during playback. Name string `json:"name,omitempty"` // Status: The caption track's status. // // Possible values: // "failed" // "serving" // "syncing" Status string `json:"status,omitempty"` // TrackKind: The caption track's type. // // Possible values: // "ASR" // "forced" // "standard" TrackKind string `json:"trackKind,omitempty"` // VideoId: The ID that YouTube uses to uniquely identify the video // associated with the caption track. VideoId string `json:"videoId,omitempty"` // ForceSendFields is a list of field names (e.g. "AudioTrackType") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *CaptionSnippet) MarshalJSON() ([]byte, error) { type noMethod CaptionSnippet raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // CdnSettings: Brief description of the live stream cdn settings. type CdnSettings struct { // Format: The format of the video stream that you are sending to // Youtube. Format string `json:"format,omitempty"` // IngestionInfo: The ingestionInfo object contains information that // YouTube provides that you need to transmit your RTMP or HTTP stream // to YouTube. IngestionInfo *IngestionInfo `json:"ingestionInfo,omitempty"` // IngestionType: The method or protocol used to transmit the video // stream. // // Possible values: // "dash" // "rtmp" IngestionType string `json:"ingestionType,omitempty"` // ForceSendFields is a list of field names (e.g. "Format") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *CdnSettings) MarshalJSON() ([]byte, error) { type noMethod CdnSettings raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // Channel: A channel resource contains information about a YouTube // channel. type Channel struct { // AuditDetails: The auditionDetails object encapsulates channel data // that is relevant for YouTube Partners during the audition process. AuditDetails *ChannelAuditDetails `json:"auditDetails,omitempty"` // BrandingSettings: The brandingSettings object encapsulates // information about the branding of the channel. BrandingSettings *ChannelBrandingSettings `json:"brandingSettings,omitempty"` // ContentDetails: The contentDetails object encapsulates information // about the channel's content. ContentDetails *ChannelContentDetails `json:"contentDetails,omitempty"` // ContentOwnerDetails: The contentOwnerDetails object encapsulates // channel data that is relevant for YouTube Partners linked with the // channel. ContentOwnerDetails *ChannelContentOwnerDetails `json:"contentOwnerDetails,omitempty"` // ConversionPings: The conversionPings object encapsulates information // about conversion pings that need to be respected by the channel. ConversionPings *ChannelConversionPings `json:"conversionPings,omitempty"` // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // Id: The ID that YouTube uses to uniquely identify the channel. Id string `json:"id,omitempty"` // InvideoPromotion: The invideoPromotion object encapsulates // information about promotion campaign associated with the channel. InvideoPromotion *InvideoPromotion `json:"invideoPromotion,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#channel". Kind string `json:"kind,omitempty"` // Localizations: Localizations for different languages Localizations map[string]ChannelLocalization `json:"localizations,omitempty"` // Snippet: The snippet object contains basic details about the channel, // such as its title, description, and thumbnail images. Snippet *ChannelSnippet `json:"snippet,omitempty"` // Statistics: The statistics object encapsulates statistics for the // channel. Statistics *ChannelStatistics `json:"statistics,omitempty"` // Status: The status object encapsulates information about the privacy // status of the channel. Status *ChannelStatus `json:"status,omitempty"` // TopicDetails: The topicDetails object encapsulates information about // Freebase topics associated with the channel. TopicDetails *ChannelTopicDetails `json:"topicDetails,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "AuditDetails") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *Channel) MarshalJSON() ([]byte, error) { type noMethod Channel raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ChannelAuditDetails: The auditDetails object encapsulates channel // data that is relevant for YouTube Partners during the audit process. type ChannelAuditDetails struct { // CommunityGuidelinesGoodStanding: Whether or not the channel respects // the community guidelines. CommunityGuidelinesGoodStanding bool `json:"communityGuidelinesGoodStanding,omitempty"` // ContentIdClaimsGoodStanding: Whether or not the channel has any // unresolved claims. ContentIdClaimsGoodStanding bool `json:"contentIdClaimsGoodStanding,omitempty"` // CopyrightStrikesGoodStanding: Whether or not the channel has any // copyright strikes. CopyrightStrikesGoodStanding bool `json:"copyrightStrikesGoodStanding,omitempty"` // OverallGoodStanding: Describes the general state of the channel. This // field will always show if there are any issues whatsoever with the // channel. Currently this field represents the result of the logical // and operation over the community guidelines good standing, the // copyright strikes good standing and the content ID claims good // standing, but this may change in the future. OverallGoodStanding bool `json:"overallGoodStanding,omitempty"` // ForceSendFields is a list of field names (e.g. // "CommunityGuidelinesGoodStanding") to unconditionally include in API // requests. By default, fields with empty values are omitted from API // requests. However, any non-pointer, non-interface field appearing in // ForceSendFields will be sent to the server regardless of whether the // field is empty or not. This may be used to include empty fields in // Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelAuditDetails) MarshalJSON() ([]byte, error) { type noMethod ChannelAuditDetails raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ChannelBannerResource: A channel banner returned as the response to a // channel_banner.insert call. type ChannelBannerResource struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#channelBannerResource". Kind string `json:"kind,omitempty"` // Url: The URL of this banner image. Url string `json:"url,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelBannerResource) MarshalJSON() ([]byte, error) { type noMethod ChannelBannerResource raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ChannelBrandingSettings: Branding properties of a YouTube channel. type ChannelBrandingSettings struct { // Channel: Branding properties for the channel view. Channel *ChannelSettings `json:"channel,omitempty"` // Hints: Additional experimental branding properties. Hints []*PropertyValue `json:"hints,omitempty"` // Image: Branding properties for branding images. Image *ImageSettings `json:"image,omitempty"` // Watch: Branding properties for the watch page. Watch *WatchSettings `json:"watch,omitempty"` // ForceSendFields is a list of field names (e.g. "Channel") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelBrandingSettings) MarshalJSON() ([]byte, error) { type noMethod ChannelBrandingSettings raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ChannelContentDetails: Details about the content of a channel. type ChannelContentDetails struct { // GooglePlusUserId: The googlePlusUserId object identifies the Google+ // profile ID associated with this channel. GooglePlusUserId string `json:"googlePlusUserId,omitempty"` RelatedPlaylists *ChannelContentDetailsRelatedPlaylists `json:"relatedPlaylists,omitempty"` // ForceSendFields is a list of field names (e.g. "GooglePlusUserId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelContentDetails) MarshalJSON() ([]byte, error) { type noMethod ChannelContentDetails raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type ChannelContentDetailsRelatedPlaylists struct { // Favorites: 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. Favorites string `json:"favorites,omitempty"` // Likes: 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. Likes string `json:"likes,omitempty"` // Uploads: 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. Uploads string `json:"uploads,omitempty"` // WatchHistory: 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. WatchHistory string `json:"watchHistory,omitempty"` // WatchLater: 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. WatchLater string `json:"watchLater,omitempty"` // ForceSendFields is a list of field names (e.g. "Favorites") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelContentDetailsRelatedPlaylists) MarshalJSON() ([]byte, error) { type noMethod ChannelContentDetailsRelatedPlaylists raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ChannelContentOwnerDetails: The contentOwnerDetails object // encapsulates channel data that is relevant for YouTube Partners // linked with the channel. type ChannelContentOwnerDetails struct { // ContentOwner: The ID of the content owner linked to the channel. ContentOwner string `json:"contentOwner,omitempty"` // TimeLinked: The date and time of when the channel was linked to the // content owner. The value is specified in ISO 8601 // (YYYY-MM-DDThh:mm:ss.sZ) format. TimeLinked string `json:"timeLinked,omitempty"` // ForceSendFields is a list of field names (e.g. "ContentOwner") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelContentOwnerDetails) MarshalJSON() ([]byte, error) { type noMethod ChannelContentOwnerDetails raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ChannelConversionPing: 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. type ChannelConversionPing struct { // Context: Defines the context of the ping. // // Possible values: // "cview" // "subscribe" // "unsubscribe" Context string `json:"context,omitempty"` // ConversionUrl: 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. ConversionUrl string `json:"conversionUrl,omitempty"` // ForceSendFields is a list of field names (e.g. "Context") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelConversionPing) MarshalJSON() ([]byte, error) { type noMethod ChannelConversionPing raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ChannelConversionPings: The conversionPings object encapsulates // information about conversion pings that need to be respected by the // channel. type ChannelConversionPings struct { // Pings: 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. Pings []*ChannelConversionPing `json:"pings,omitempty"` // ForceSendFields is a list of field names (e.g. "Pings") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelConversionPings) MarshalJSON() ([]byte, error) { type noMethod ChannelConversionPings raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type ChannelId struct { Value string `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "Value") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelId) MarshalJSON() ([]byte, error) { type noMethod ChannelId raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type ChannelListResponse struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // EventId: Serialized EventId of the request which produced this // response. EventId string `json:"eventId,omitempty"` // Items: A list of channels that match the request criteria. Items []*Channel `json:"items,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#channelListResponse". Kind string `json:"kind,omitempty"` // NextPageToken: The token that can be used as the value of the // pageToken parameter to retrieve the next page in the result set. NextPageToken string `json:"nextPageToken,omitempty"` PageInfo *PageInfo `json:"pageInfo,omitempty"` // PrevPageToken: The token that can be used as the value of the // pageToken parameter to retrieve the previous page in the result set. PrevPageToken string `json:"prevPageToken,omitempty"` TokenPagination *TokenPagination `json:"tokenPagination,omitempty"` // VisitorId: The visitorId identifies the visitor. VisitorId string `json:"visitorId,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelListResponse) MarshalJSON() ([]byte, error) { type noMethod ChannelListResponse raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ChannelLocalization: Channel localization setting type ChannelLocalization struct { // Description: The localized strings for channel's description. Description string `json:"description,omitempty"` // Title: The localized strings for channel's title. Title string `json:"title,omitempty"` // ForceSendFields is a list of field names (e.g. "Description") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelLocalization) MarshalJSON() ([]byte, error) { type noMethod ChannelLocalization raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type ChannelSection struct { // ContentDetails: The contentDetails object contains details about the // channel section content, such as a list of playlists or channels // featured in the section. ContentDetails *ChannelSectionContentDetails `json:"contentDetails,omitempty"` // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // Id: The ID that YouTube uses to uniquely identify the channel // section. Id string `json:"id,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#channelSection". Kind string `json:"kind,omitempty"` // Localizations: Localizations for different languages Localizations map[string]ChannelSectionLocalization `json:"localizations,omitempty"` // Snippet: The snippet object contains basic details about the channel // section, such as its type, style and title. Snippet *ChannelSectionSnippet `json:"snippet,omitempty"` // Targeting: The targeting object contains basic targeting settings // about the channel section. Targeting *ChannelSectionTargeting `json:"targeting,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "ContentDetails") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelSection) MarshalJSON() ([]byte, error) { type noMethod ChannelSection raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ChannelSectionContentDetails: Details about a channelsection, // including playlists and channels. type ChannelSectionContentDetails struct { // Channels: The channel ids for type multiple_channels. Channels []string `json:"channels,omitempty"` // Playlists: The playlist ids for type single_playlist and // multiple_playlists. For singlePlaylist, only one playlistId is // allowed. Playlists []string `json:"playlists,omitempty"` // ForceSendFields is a list of field names (e.g. "Channels") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelSectionContentDetails) MarshalJSON() ([]byte, error) { type noMethod ChannelSectionContentDetails raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type ChannelSectionListResponse struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // EventId: Serialized EventId of the request which produced this // response. EventId string `json:"eventId,omitempty"` // Items: A list of ChannelSections that match the request criteria. Items []*ChannelSection `json:"items,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#channelSectionListResponse". Kind string `json:"kind,omitempty"` // VisitorId: The visitorId identifies the visitor. VisitorId string `json:"visitorId,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelSectionListResponse) MarshalJSON() ([]byte, error) { type noMethod ChannelSectionListResponse raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ChannelSectionLocalization: ChannelSection localization setting type ChannelSectionLocalization struct { // Title: The localized strings for channel section's title. Title string `json:"title,omitempty"` // ForceSendFields is a list of field names (e.g. "Title") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelSectionLocalization) MarshalJSON() ([]byte, error) { type noMethod ChannelSectionLocalization raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ChannelSectionSnippet: Basic details about a channel section, // including title, style and position. type ChannelSectionSnippet struct { // ChannelId: The ID that YouTube uses to uniquely identify the channel // that published the channel section. ChannelId string `json:"channelId,omitempty"` // DefaultLanguage: The language of the channel section's default title // and description. DefaultLanguage string `json:"defaultLanguage,omitempty"` // Localized: Localized title, read-only. Localized *ChannelSectionLocalization `json:"localized,omitempty"` // Position: The position of the channel section in the channel. Position *int64 `json:"position,omitempty"` // Style: The style of the channel section. // // Possible values: // "channelsectionStyleUndefined" // "horizontalRow" // "verticalList" Style string `json:"style,omitempty"` // Title: The channel section's title for multiple_playlists and // multiple_channels. Title string `json:"title,omitempty"` // Type: The type of the channel section. // // Possible values: // "allPlaylists" // "channelsectionTypeUndefined" // "completedEvents" // "likedPlaylists" // "likes" // "liveEvents" // "multipleChannels" // "multiplePlaylists" // "popularUploads" // "postedPlaylists" // "postedVideos" // "recentActivity" // "recentPosts" // "recentUploads" // "singlePlaylist" // "subscriptions" // "upcomingEvents" Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "ChannelId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelSectionSnippet) MarshalJSON() ([]byte, error) { type noMethod ChannelSectionSnippet raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ChannelSectionTargeting: ChannelSection targeting setting. type ChannelSectionTargeting struct { // Countries: The country the channel section is targeting. Countries []string `json:"countries,omitempty"` // Languages: The language the channel section is targeting. Languages []string `json:"languages,omitempty"` // Regions: The region the channel section is targeting. Regions []string `json:"regions,omitempty"` // ForceSendFields is a list of field names (e.g. "Countries") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelSectionTargeting) MarshalJSON() ([]byte, error) { type noMethod ChannelSectionTargeting raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ChannelSettings: Branding properties for the channel view. type ChannelSettings struct { // Country: The country of the channel. Country string `json:"country,omitempty"` DefaultLanguage string `json:"defaultLanguage,omitempty"` // DefaultTab: Which content tab users should see when viewing the // channel. DefaultTab string `json:"defaultTab,omitempty"` // Description: Specifies the channel description. Description string `json:"description,omitempty"` // FeaturedChannelsTitle: Title for the featured channels tab. FeaturedChannelsTitle string `json:"featuredChannelsTitle,omitempty"` // FeaturedChannelsUrls: The list of featured channels. FeaturedChannelsUrls []string `json:"featuredChannelsUrls,omitempty"` // Keywords: Lists keywords associated with the channel, // comma-separated. Keywords string `json:"keywords,omitempty"` // ModerateComments: Whether user-submitted comments left on the channel // page need to be approved by the channel owner to be publicly visible. ModerateComments bool `json:"moderateComments,omitempty"` // ProfileColor: A prominent color that can be rendered on this channel // page. ProfileColor string `json:"profileColor,omitempty"` // ShowBrowseView: Whether the tab to browse the videos should be // displayed. ShowBrowseView bool `json:"showBrowseView,omitempty"` // ShowRelatedChannels: Whether related channels should be proposed. ShowRelatedChannels bool `json:"showRelatedChannels,omitempty"` // Title: Specifies the channel title. Title string `json:"title,omitempty"` // TrackingAnalyticsAccountId: The ID for a Google Analytics account to // track and measure traffic to the channels. TrackingAnalyticsAccountId string `json:"trackingAnalyticsAccountId,omitempty"` // UnsubscribedTrailer: The trailer of the channel, for users that are // not subscribers. UnsubscribedTrailer string `json:"unsubscribedTrailer,omitempty"` // ForceSendFields is a list of field names (e.g. "Country") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelSettings) MarshalJSON() ([]byte, error) { type noMethod ChannelSettings raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ChannelSnippet: Basic details about a channel, including title, // description and thumbnails. type ChannelSnippet struct { // Country: The country of the channel. Country string `json:"country,omitempty"` // DefaultLanguage: The language of the channel's default title and // description. DefaultLanguage string `json:"defaultLanguage,omitempty"` // Description: The description of the channel. Description string `json:"description,omitempty"` // Localized: Localized title and description, read-only. Localized *ChannelLocalization `json:"localized,omitempty"` // PublishedAt: The date and time that the channel was created. The // value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. PublishedAt string `json:"publishedAt,omitempty"` // Thumbnails: A map of thumbnail images associated with the channel. // For each object in the map, the key is the name of the thumbnail // image, and the value is an object that contains other information // about the thumbnail. Thumbnails *ThumbnailDetails `json:"thumbnails,omitempty"` // Title: The channel's title. Title string `json:"title,omitempty"` // ForceSendFields is a list of field names (e.g. "Country") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelSnippet) MarshalJSON() ([]byte, error) { type noMethod ChannelSnippet raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ChannelStatistics: Statistics about a channel: number of subscribers, // number of videos in the channel, etc. type ChannelStatistics struct { // CommentCount: The number of comments for the channel. CommentCount uint64 `json:"commentCount,omitempty,string"` // HiddenSubscriberCount: Whether or not the number of subscribers is // shown for this user. HiddenSubscriberCount bool `json:"hiddenSubscriberCount,omitempty"` // SubscriberCount: The number of subscribers that the channel has. SubscriberCount uint64 `json:"subscriberCount,omitempty,string"` // VideoCount: The number of videos uploaded to the channel. VideoCount uint64 `json:"videoCount,omitempty,string"` // ViewCount: The number of times the channel has been viewed. ViewCount uint64 `json:"viewCount,omitempty,string"` // ForceSendFields is a list of field names (e.g. "CommentCount") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelStatistics) MarshalJSON() ([]byte, error) { type noMethod ChannelStatistics raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ChannelStatus: JSON template for the status part of a channel. type ChannelStatus struct { // IsLinked: 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. IsLinked bool `json:"isLinked,omitempty"` // LongUploadsStatus: The long uploads status of this channel. See // // Possible values: // "allowed" // "disallowed" // "eligible" // "longUploadsUnspecified" LongUploadsStatus string `json:"longUploadsStatus,omitempty"` // PrivacyStatus: Privacy status of the channel. // // Possible values: // "private" // "public" // "unlisted" PrivacyStatus string `json:"privacyStatus,omitempty"` // ForceSendFields is a list of field names (e.g. "IsLinked") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelStatus) MarshalJSON() ([]byte, error) { type noMethod ChannelStatus raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ChannelTopicDetails: Freebase topic information related to the // channel. type ChannelTopicDetails struct { // TopicIds: A list of Freebase topic IDs associated with the channel. // You can retrieve information about each topic using the Freebase // Topic API. TopicIds []string `json:"topicIds,omitempty"` // ForceSendFields is a list of field names (e.g. "TopicIds") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ChannelTopicDetails) MarshalJSON() ([]byte, error) { type noMethod ChannelTopicDetails raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // Comment: A comment represents a single YouTube comment. type Comment struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // Id: The ID that YouTube uses to uniquely identify the comment. Id string `json:"id,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#comment". Kind string `json:"kind,omitempty"` // Snippet: The snippet object contains basic details about the comment. Snippet *CommentSnippet `json:"snippet,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *Comment) MarshalJSON() ([]byte, error) { type noMethod Comment raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type CommentListResponse struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // EventId: Serialized EventId of the request which produced this // response. EventId string `json:"eventId,omitempty"` // Items: A list of comments that match the request criteria. Items []*Comment `json:"items,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#commentListResponse". Kind string `json:"kind,omitempty"` // NextPageToken: The token that can be used as the value of the // pageToken parameter to retrieve the next page in the result set. NextPageToken string `json:"nextPageToken,omitempty"` PageInfo *PageInfo `json:"pageInfo,omitempty"` TokenPagination *TokenPagination `json:"tokenPagination,omitempty"` // VisitorId: The visitorId identifies the visitor. VisitorId string `json:"visitorId,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *CommentListResponse) MarshalJSON() ([]byte, error) { type noMethod CommentListResponse raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // CommentSnippet: Basic details about a comment, such as its author and // text. type CommentSnippet struct { // AuthorChannelId: The id of the author's YouTube channel, if any. AuthorChannelId *ChannelId `json:"authorChannelId,omitempty"` // AuthorChannelUrl: Link to the author's YouTube channel, if any. AuthorChannelUrl string `json:"authorChannelUrl,omitempty"` // AuthorDisplayName: The name of the user who posted the comment. AuthorDisplayName string `json:"authorDisplayName,omitempty"` // AuthorGoogleplusProfileUrl: Link to the author's Google+ profile, if // any. AuthorGoogleplusProfileUrl string `json:"authorGoogleplusProfileUrl,omitempty"` // AuthorProfileImageUrl: The URL for the avatar of the user who posted // the comment. AuthorProfileImageUrl string `json:"authorProfileImageUrl,omitempty"` // CanRate: Whether the current viewer can rate this comment. CanRate bool `json:"canRate,omitempty"` // ChannelId: 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. ChannelId string `json:"channelId,omitempty"` // LikeCount: The total number of likes this comment has received. LikeCount int64 `json:"likeCount,omitempty"` // ModerationStatus: The comment's moderation status. Will not be set if // the comments were requested through the id filter. // // Possible values: // "heldForReview" // "likelySpam" // "published" // "rejected" ModerationStatus string `json:"moderationStatus,omitempty"` // ParentId: The unique id of the parent comment, only set for replies. ParentId string `json:"parentId,omitempty"` // PublishedAt: The date and time when the comment was orignally // published. The value is specified in ISO 8601 // (YYYY-MM-DDThh:mm:ss.sZ) format. PublishedAt string `json:"publishedAt,omitempty"` // TextDisplay: 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. TextDisplay string `json:"textDisplay,omitempty"` // TextOriginal: 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. TextOriginal string `json:"textOriginal,omitempty"` // UpdatedAt: The date and time when was last updated . The value is // specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. UpdatedAt string `json:"updatedAt,omitempty"` // VideoId: The ID of the video the comment refers to, if any. VideoId string `json:"videoId,omitempty"` // ViewerRating: 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. // // Possible values: // "dislike" // "like" // "none" // "unspecified" ViewerRating string `json:"viewerRating,omitempty"` // ForceSendFields is a list of field names (e.g. "AuthorChannelId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *CommentSnippet) MarshalJSON() ([]byte, error) { type noMethod CommentSnippet raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // CommentThread: 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. type CommentThread struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // Id: The ID that YouTube uses to uniquely identify the comment thread. Id string `json:"id,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#commentThread". Kind string `json:"kind,omitempty"` // Replies: The replies object contains a limited number of replies (if // any) to the top level comment found in the snippet. Replies *CommentThreadReplies `json:"replies,omitempty"` // Snippet: The snippet object contains basic details about the comment // thread and also the top level comment. Snippet *CommentThreadSnippet `json:"snippet,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *CommentThread) MarshalJSON() ([]byte, error) { type noMethod CommentThread raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type CommentThreadListResponse struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // EventId: Serialized EventId of the request which produced this // response. EventId string `json:"eventId,omitempty"` // Items: A list of comment threads that match the request criteria. Items []*CommentThread `json:"items,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#commentThreadListResponse". Kind string `json:"kind,omitempty"` // NextPageToken: The token that can be used as the value of the // pageToken parameter to retrieve the next page in the result set. NextPageToken string `json:"nextPageToken,omitempty"` PageInfo *PageInfo `json:"pageInfo,omitempty"` TokenPagination *TokenPagination `json:"tokenPagination,omitempty"` // VisitorId: The visitorId identifies the visitor. VisitorId string `json:"visitorId,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *CommentThreadListResponse) MarshalJSON() ([]byte, error) { type noMethod CommentThreadListResponse raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // CommentThreadReplies: Comments written in (direct or indirect) reply // to the top level comment. type CommentThreadReplies struct { // Comments: 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. Comments []*Comment `json:"comments,omitempty"` // ForceSendFields is a list of field names (e.g. "Comments") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *CommentThreadReplies) MarshalJSON() ([]byte, error) { type noMethod CommentThreadReplies raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // CommentThreadSnippet: Basic details about a comment thread. type CommentThreadSnippet struct { // CanReply: 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. CanReply bool `json:"canReply,omitempty"` // ChannelId: 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. ChannelId string `json:"channelId,omitempty"` // IsPublic: Whether the thread (and therefore all its comments) is // visible to all YouTube users. IsPublic bool `json:"isPublic,omitempty"` // TopLevelComment: The top level comment of this thread. TopLevelComment *Comment `json:"topLevelComment,omitempty"` // TotalReplyCount: The total number of replies (not including the top // level comment). TotalReplyCount int64 `json:"totalReplyCount,omitempty"` // VideoId: The ID of the video the comments refer to, if any. No // video_id implies a channel discussion comment. VideoId string `json:"videoId,omitempty"` // ForceSendFields is a list of field names (e.g. "CanReply") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *CommentThreadSnippet) MarshalJSON() ([]byte, error) { type noMethod CommentThreadSnippet raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ContentRating: Ratings schemes. The country-specific ratings are // mostly for movies and shows. NEXT_ID: 66 type ContentRating struct { // AcbRating: 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. // // Possible values: // "acbC" // "acbE" // "acbG" // "acbM" // "acbMa15plus" // "acbP" // "acbPg" // "acbR18plus" // "acbUnrated" AcbRating string `json:"acbRating,omitempty"` // AgcomRating: The video's rating from Italy's Autorità per le // Garanzie nelle Comunicazioni (AGCOM). // // Possible values: // "agcomT" // "agcomUnrated" // "agcomVm14" // "agcomVm18" AgcomRating string `json:"agcomRating,omitempty"` // AnatelRating: The video's Anatel (Asociación Nacional de // Televisión) rating for Chilean television. // // Possible values: // "anatelA" // "anatelF" // "anatelI" // "anatelI10" // "anatelI12" // "anatelI7" // "anatelR" // "anatelUnrated" AnatelRating string `json:"anatelRating,omitempty"` // BbfcRating: The video's British Board of Film Classification (BBFC) // rating. // // Possible values: // "bbfc12" // "bbfc12a" // "bbfc15" // "bbfc18" // "bbfcPg" // "bbfcR18" // "bbfcU" // "bbfcUnrated" BbfcRating string `json:"bbfcRating,omitempty"` // BfvcRating: The video's rating from Thailand's Board of Film and // Video Censors. // // Possible values: // "bfvc13" // "bfvc15" // "bfvc18" // "bfvc20" // "bfvcB" // "bfvcE" // "bfvcG" // "bfvcUnrated" BfvcRating string `json:"bfvcRating,omitempty"` // BmukkRating: The video's rating from the Austrian Board of Media // Classification (Bundesministerium für Unterricht, Kunst und Kultur). // // Possible values: // "bmukk10" // "bmukk12" // "bmukk14" // "bmukk16" // "bmukk6" // "bmukk8" // "bmukkAa" // "bmukkUnrated" BmukkRating string `json:"bmukkRating,omitempty"` // CatvRating: 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. // // Possible values: // "catv14plus" // "catv18plus" // "catvC" // "catvC8" // "catvG" // "catvPg" // "catvUnrated" CatvRating string `json:"catvRating,omitempty"` // CatvfrRating: 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. // // Possible values: // "catvfr13plus" // "catvfr16plus" // "catvfr18plus" // "catvfr8plus" // "catvfrG" // "catvfrUnrated" CatvfrRating string `json:"catvfrRating,omitempty"` // CbfcRating: The video's Central Board of Film Certification (CBFC - // India) rating. // // Possible values: // "cbfcA" // "cbfcS" // "cbfcU" // "cbfcUA" // "cbfcUnrated" CbfcRating string `json:"cbfcRating,omitempty"` // CccRating: The video's Consejo de Calificación Cinematográfica // (Chile) rating. // // Possible values: // "ccc14" // "ccc18" // "ccc18s" // "ccc18v" // "ccc6" // "cccTe" // "cccUnrated" CccRating string `json:"cccRating,omitempty"` // CceRating: The video's rating from Portugal's Comissão de // Classificação de Espect´culos. // // Possible values: // "cceM12" // "cceM16" // "cceM18" // "cceM4" // "cceM6" // "cceUnrated" CceRating string `json:"cceRating,omitempty"` // ChfilmRating: The video's rating in Switzerland. // // Possible values: // "chfilm0" // "chfilm12" // "chfilm16" // "chfilm18" // "chfilm6" // "chfilmUnrated" ChfilmRating string `json:"chfilmRating,omitempty"` // ChvrsRating: The video's Canadian Home Video Rating System (CHVRS) // rating. // // Possible values: // "chvrs14a" // "chvrs18a" // "chvrsE" // "chvrsG" // "chvrsPg" // "chvrsR" // "chvrsUnrated" ChvrsRating string `json:"chvrsRating,omitempty"` // CicfRating: The video's rating from the Commission de Contrôle des // Films (Belgium). // // Possible values: // "cicfE" // "cicfKntEna" // "cicfKtEa" // "cicfUnrated" CicfRating string `json:"cicfRating,omitempty"` // CnaRating: The video's rating from Romania's CONSILIUL NATIONAL AL // AUDIOVIZUALULUI (CNA). // // Possible values: // "cna12" // "cna15" // "cna18" // "cna18plus" // "cnaAp" // "cnaUnrated" CnaRating string `json:"cnaRating,omitempty"` // CncRating: Rating system in France - Commission de classification // cinematographique // // Possible values: // "cnc10" // "cnc12" // "cnc16" // "cnc18" // "cncE" // "cncT" // "cncUnrated" CncRating string `json:"cncRating,omitempty"` // CsaRating: The video's rating from France's Conseil supérieur de // l?audiovisuel, which rates broadcast content. // // Possible values: // "csa10" // "csa12" // "csa16" // "csa18" // "csaInterdiction" // "csaT" // "csaUnrated" CsaRating string `json:"csaRating,omitempty"` // CscfRating: The video's rating from Luxembourg's Commission de // surveillance de la classification des films (CSCF). // // Possible values: // "cscf12" // "cscf16" // "cscf18" // "cscf6" // "cscf9" // "cscfA" // "cscfAl" // "cscfUnrated" CscfRating string `json:"cscfRating,omitempty"` // CzfilmRating: The video's rating in the Czech Republic. // // Possible values: // "czfilm12" // "czfilm14" // "czfilm18" // "czfilmU" // "czfilmUnrated" CzfilmRating string `json:"czfilmRating,omitempty"` // DjctqRating: The video's Departamento de Justiça, Classificação, // Qualificação e Títulos (DJCQT - Brazil) rating. // // Possible values: // "djctq10" // "djctq12" // "djctq14" // "djctq16" // "djctq18" // "djctqL" // "djctqUnrated" DjctqRating string `json:"djctqRating,omitempty"` // DjctqRatingReasons: Reasons that explain why the video received its // DJCQT (Brazil) rating. // // Possible values: // "djctqCriminalActs" // "djctqDrugs" // "djctqExplicitSex" // "djctqExtremeViolence" // "djctqIllegalDrugs" // "djctqImpactingContent" // "djctqInappropriateLanguage" // "djctqLegalDrugs" // "djctqNudity" // "djctqSex" // "djctqSexualContent" // "djctqViolence" DjctqRatingReasons []string `json:"djctqRatingReasons,omitempty"` // EefilmRating: The video's rating in Estonia. // // Possible values: // "eefilmK12" // "eefilmK14" // "eefilmK16" // "eefilmK6" // "eefilmL" // "eefilmMs12" // "eefilmMs6" // "eefilmPere" // "eefilmUnrated" EefilmRating string `json:"eefilmRating,omitempty"` // EgfilmRating: The video's rating in Egypt. // // Possible values: // "egfilm18" // "egfilmBn" // "egfilmGn" // "egfilmUnrated" EgfilmRating string `json:"egfilmRating,omitempty"` // EirinRating: The video's Eirin (映倫) rating. Eirin is the Japanese // rating system. // // Possible values: // "eirinG" // "eirinPg12" // "eirinR15plus" // "eirinR18plus" // "eirinUnrated" EirinRating string `json:"eirinRating,omitempty"` // FcbmRating: The video's rating from Malaysia's Film Censorship Board. // // Possible values: // "fcbm18" // "fcbm18pa" // "fcbm18pl" // "fcbm18sg" // "fcbm18sx" // "fcbmP13" // "fcbmPg13" // "fcbmU" // "fcbmUnrated" FcbmRating string `json:"fcbmRating,omitempty"` // FcoRating: The video's rating from Hong Kong's Office for Film, // Newspaper and Article Administration. // // Possible values: // "fcoI" // "fcoIi" // "fcoIia" // "fcoIib" // "fcoIii" // "fcoUnrated" FcoRating string `json:"fcoRating,omitempty"` // FmocRating: This property has been deprecated. Use the // contentDetails.contentRating.cncRating instead. // // Possible values: // "fmoc10" // "fmoc12" // "fmoc16" // "fmoc18" // "fmocE" // "fmocU" // "fmocUnrated" FmocRating string `json:"fmocRating,omitempty"` // FpbRating: The video's rating from South Africa's Film and // Publication Board. // // Possible values: // "fpb1012Pg" // "fpb13" // "fpb16" // "fpb18" // "fpb79Pg" // "fpbA" // "fpbPg" // "fpbUnrated" // "fpbX18" // "fpbXx" FpbRating string `json:"fpbRating,omitempty"` // FskRating: The video's Freiwillige Selbstkontrolle der Filmwirtschaft // (FSK - Germany) rating. // // Possible values: // "fsk0" // "fsk12" // "fsk16" // "fsk18" // "fsk6" // "fskUnrated" FskRating string `json:"fskRating,omitempty"` // GrfilmRating: The video's rating in Greece. // // Possible values: // "grfilmE" // "grfilmK" // "grfilmK13" // "grfilmK17" // "grfilmUnrated" GrfilmRating string `json:"grfilmRating,omitempty"` // IcaaRating: The video's Instituto de la Cinematografía y de las // Artes Audiovisuales (ICAA - Spain) rating. // // Possible values: // "icaa12" // "icaa13" // "icaa16" // "icaa18" // "icaa7" // "icaaApta" // "icaaUnrated" // "icaaX" IcaaRating string `json:"icaaRating,omitempty"` // IfcoRating: The video's Irish Film Classification Office (IFCO - // Ireland) rating. See the IFCO website for more information. // // Possible values: // "ifco12" // "ifco12a" // "ifco15" // "ifco15a" // "ifco16" // "ifco18" // "ifcoG" // "ifcoPg" // "ifcoUnrated" IfcoRating string `json:"ifcoRating,omitempty"` // IlfilmRating: The video's rating in Israel. // // Possible values: // "ilfilm12" // "ilfilm16" // "ilfilm18" // "ilfilmAa" // "ilfilmUnrated" IlfilmRating string `json:"ilfilmRating,omitempty"` // IncaaRating: The video's INCAA (Instituto Nacional de Cine y Artes // Audiovisuales - Argentina) rating. // // Possible values: // "incaaAtp" // "incaaC" // "incaaSam13" // "incaaSam16" // "incaaSam18" // "incaaUnrated" IncaaRating string `json:"incaaRating,omitempty"` // KfcbRating: The video's rating from the Kenya Film Classification // Board. // // Possible values: // "kfcb16plus" // "kfcbG" // "kfcbPg" // "kfcbR" // "kfcbUnrated" KfcbRating string `json:"kfcbRating,omitempty"` // KijkwijzerRating: voor de Classificatie van Audiovisuele Media // (Netherlands). // // Possible values: // "kijkwijzer12" // "kijkwijzer16" // "kijkwijzer18" // "kijkwijzer6" // "kijkwijzer9" // "kijkwijzerAl" // "kijkwijzerUnrated" KijkwijzerRating string `json:"kijkwijzerRating,omitempty"` // KmrbRating: The video's Korea Media Rating Board // (영상물등급위원회) rating. The KMRB rates videos in South // Korea. // // Possible values: // "kmrb12plus" // "kmrb15plus" // "kmrbAll" // "kmrbR" // "kmrbTeenr" // "kmrbUnrated" KmrbRating string `json:"kmrbRating,omitempty"` // LsfRating: The video's rating from Indonesia's Lembaga Sensor Film. // // Possible values: // "lsf13" // "lsf17" // "lsf21" // "lsfA" // "lsfBo" // "lsfD" // "lsfR" // "lsfSu" // "lsfUnrated" LsfRating string `json:"lsfRating,omitempty"` // MccaaRating: The video's rating from Malta's Film Age-Classification // Board. // // Possible values: // "mccaa12" // "mccaa12a" // "mccaa14" // "mccaa15" // "mccaa16" // "mccaa18" // "mccaaPg" // "mccaaU" // "mccaaUnrated" MccaaRating string `json:"mccaaRating,omitempty"` // MccypRating: The video's rating from the Danish Film Institute's (Det // Danske Filminstitut) Media Council for Children and Young People. // // Possible values: // "mccyp11" // "mccyp15" // "mccyp7" // "mccypA" // "mccypUnrated" MccypRating string `json:"mccypRating,omitempty"` // MdaRating: The video's rating from Singapore's Media Development // Authority (MDA) and, specifically, it's Board of Film Censors (BFC). // // Possible values: // "mdaG" // "mdaM18" // "mdaNc16" // "mdaPg" // "mdaPg13" // "mdaR21" // "mdaUnrated" MdaRating string `json:"mdaRating,omitempty"` // MedietilsynetRating: The video's rating from Medietilsynet, the // Norwegian Media Authority. // // Possible values: // "medietilsynet11" // "medietilsynet12" // "medietilsynet15" // "medietilsynet18" // "medietilsynet6" // "medietilsynet7" // "medietilsynet9" // "medietilsynetA" // "medietilsynetUnrated" MedietilsynetRating string `json:"medietilsynetRating,omitempty"` // MekuRating: The video's rating from Finland's Kansallinen // Audiovisuaalinen Instituutti (National Audiovisual Institute). // // Possible values: // "meku12" // "meku16" // "meku18" // "meku7" // "mekuS" // "mekuUnrated" MekuRating string `json:"mekuRating,omitempty"` // MibacRating: The video's rating from the Ministero dei Beni e delle // Attività Culturali e del Turismo (Italy). // // Possible values: // "mibacT" // "mibacUnrated" // "mibacVap" // "mibacVm12" // "mibacVm14" // "mibacVm18" MibacRating string `json:"mibacRating,omitempty"` // MocRating: The video's Ministerio de Cultura (Colombia) rating. // // Possible values: // "moc12" // "moc15" // "moc18" // "moc7" // "mocBanned" // "mocE" // "mocT" // "mocUnrated" // "mocX" MocRating string `json:"mocRating,omitempty"` // MoctwRating: The video's rating from Taiwan's Ministry of Culture // (文化部). // // Possible values: // "moctwG" // "moctwP" // "moctwPg" // "moctwR" // "moctwUnrated" MoctwRating string `json:"moctwRating,omitempty"` // MpaaRating: The video's Motion Picture Association of America (MPAA) // rating. // // Possible values: // "mpaaG" // "mpaaNc17" // "mpaaPg" // "mpaaPg13" // "mpaaR" // "mpaaUnrated" MpaaRating string `json:"mpaaRating,omitempty"` // MtrcbRating: The video's rating from the Movie and Television Review // and Classification Board (Philippines). // // Possible values: // "mtrcbG" // "mtrcbPg" // "mtrcbR13" // "mtrcbR16" // "mtrcbR18" // "mtrcbUnrated" // "mtrcbX" MtrcbRating string `json:"mtrcbRating,omitempty"` // NbcRating: The video's rating from the Maldives National Bureau of // Classification. // // Possible values: // "nbc12plus" // "nbc15plus" // "nbc18plus" // "nbc18plusr" // "nbcG" // "nbcPg" // "nbcPu" // "nbcUnrated" NbcRating string `json:"nbcRating,omitempty"` // NbcplRating: The video's rating in Poland. // // Possible values: // "nbcpl18plus" // "nbcplI" // "nbcplIi" // "nbcplIii" // "nbcplIv" // "nbcplUnrated" NbcplRating string `json:"nbcplRating,omitempty"` // NfrcRating: The video's rating from the Bulgarian National Film // Center. // // Possible values: // "nfrcA" // "nfrcB" // "nfrcC" // "nfrcD" // "nfrcUnrated" // "nfrcX" NfrcRating string `json:"nfrcRating,omitempty"` // NfvcbRating: The video's rating from Nigeria's National Film and // Video Censors Board. // // Possible values: // "nfvcb12" // "nfvcb12a" // "nfvcb15" // "nfvcb18" // "nfvcbG" // "nfvcbPg" // "nfvcbRe" // "nfvcbUnrated" NfvcbRating string `json:"nfvcbRating,omitempty"` // NkclvRating: The video's rating from the Nacionãlais Kino centrs // (National Film Centre of Latvia). // // Possible values: // "nkclv12plus" // "nkclv18plus" // "nkclv7plus" // "nkclvU" // "nkclvUnrated" NkclvRating string `json:"nkclvRating,omitempty"` // OflcRating: The video's Office of Film and Literature Classification // (OFLC - New Zealand) rating. // // Possible values: // "oflcG" // "oflcM" // "oflcPg" // "oflcR13" // "oflcR15" // "oflcR16" // "oflcR18" // "oflcRp13" // "oflcRp16" // "oflcUnrated" OflcRating string `json:"oflcRating,omitempty"` // PefilmRating: The video's rating in Peru. // // Possible values: // "pefilm14" // "pefilm18" // "pefilmPg" // "pefilmPt" // "pefilmUnrated" PefilmRating string `json:"pefilmRating,omitempty"` // RcnofRating: The video's rating from the Hungarian Nemzeti Filmiroda, // the Rating Committee of the National Office of Film. // // Possible values: // "rcnofI" // "rcnofIi" // "rcnofIii" // "rcnofIv" // "rcnofUnrated" // "rcnofV" // "rcnofVi" RcnofRating string `json:"rcnofRating,omitempty"` // ResorteviolenciaRating: The video's rating in Venezuela. // // Possible values: // "resorteviolenciaA" // "resorteviolenciaB" // "resorteviolenciaC" // "resorteviolenciaD" // "resorteviolenciaE" // "resorteviolenciaUnrated" ResorteviolenciaRating string `json:"resorteviolenciaRating,omitempty"` // RtcRating: The video's General Directorate of Radio, Television and // Cinematography (Mexico) rating. // // Possible values: // "rtcA" // "rtcAa" // "rtcB" // "rtcB15" // "rtcC" // "rtcD" // "rtcUnrated" RtcRating string `json:"rtcRating,omitempty"` // RteRating: The video's rating from Ireland's Raidió Teilifís // Éireann. // // Possible values: // "rteCh" // "rteGa" // "rteMa" // "rtePs" // "rteUnrated" RteRating string `json:"rteRating,omitempty"` // RussiaRating: The video's National Film Registry of the Russian // Federation (MKRF - Russia) rating. // // Possible values: // "russia0" // "russia12" // "russia16" // "russia18" // "russia6" // "russiaUnrated" RussiaRating string `json:"russiaRating,omitempty"` // SkfilmRating: The video's rating in Slovakia. // // Possible values: // "skfilmG" // "skfilmP2" // "skfilmP5" // "skfilmP8" // "skfilmUnrated" SkfilmRating string `json:"skfilmRating,omitempty"` // SmaisRating: The video's rating in Iceland. // // Possible values: // "smais12" // "smais14" // "smais16" // "smais18" // "smais7" // "smaisL" // "smaisUnrated" SmaisRating string `json:"smaisRating,omitempty"` // SmsaRating: The video's rating from Statens medieråd (Sweden's // National Media Council). // // Possible values: // "smsa11" // "smsa15" // "smsa7" // "smsaA" // "smsaUnrated" SmsaRating string `json:"smsaRating,omitempty"` // TvpgRating: The video's TV Parental Guidelines (TVPG) rating. // // Possible values: // "pg14" // "tvpgG" // "tvpgMa" // "tvpgPg" // "tvpgUnrated" // "tvpgY" // "tvpgY7" // "tvpgY7Fv" TvpgRating string `json:"tvpgRating,omitempty"` // YtRating: A rating that YouTube uses to identify age-restricted // content. // // Possible values: // "ytAgeRestricted" YtRating string `json:"ytRating,omitempty"` // ForceSendFields is a list of field names (e.g. "AcbRating") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ContentRating) MarshalJSON() ([]byte, error) { type noMethod ContentRating raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // GeoPoint: Geographical coordinates of a point, in WGS84. type GeoPoint struct { // Altitude: Altitude above the reference ellipsoid, in meters. Altitude float64 `json:"altitude,omitempty"` // Latitude: Latitude in degrees. Latitude float64 `json:"latitude,omitempty"` // Longitude: Longitude in degrees. Longitude float64 `json:"longitude,omitempty"` // ForceSendFields is a list of field names (e.g. "Altitude") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *GeoPoint) MarshalJSON() ([]byte, error) { type noMethod GeoPoint raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // GuideCategory: 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. type GuideCategory struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // Id: The ID that YouTube uses to uniquely identify the guide category. Id string `json:"id,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#guideCategory". Kind string `json:"kind,omitempty"` // Snippet: The snippet object contains basic details about the // category, such as its title. Snippet *GuideCategorySnippet `json:"snippet,omitempty"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *GuideCategory) MarshalJSON() ([]byte, error) { type noMethod GuideCategory raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type GuideCategoryListResponse struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // EventId: Serialized EventId of the request which produced this // response. EventId string `json:"eventId,omitempty"` // Items: 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. Items []*GuideCategory `json:"items,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#guideCategoryListResponse". Kind string `json:"kind,omitempty"` // NextPageToken: The token that can be used as the value of the // pageToken parameter to retrieve the next page in the result set. NextPageToken string `json:"nextPageToken,omitempty"` PageInfo *PageInfo `json:"pageInfo,omitempty"` // PrevPageToken: The token that can be used as the value of the // pageToken parameter to retrieve the previous page in the result set. PrevPageToken string `json:"prevPageToken,omitempty"` TokenPagination *TokenPagination `json:"tokenPagination,omitempty"` // VisitorId: The visitorId identifies the visitor. VisitorId string `json:"visitorId,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *GuideCategoryListResponse) MarshalJSON() ([]byte, error) { type noMethod GuideCategoryListResponse raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // GuideCategorySnippet: Basic details about a guide category. type GuideCategorySnippet struct { ChannelId string `json:"channelId,omitempty"` // Title: Description of the guide category. Title string `json:"title,omitempty"` // ForceSendFields is a list of field names (e.g. "ChannelId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *GuideCategorySnippet) MarshalJSON() ([]byte, error) { type noMethod GuideCategorySnippet raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // I18nLanguage: An i18nLanguage resource identifies a UI language // currently supported by YouTube. type I18nLanguage struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // Id: The ID that YouTube uses to uniquely identify the i18n language. Id string `json:"id,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#i18nLanguage". Kind string `json:"kind,omitempty"` // Snippet: The snippet object contains basic details about the i18n // language, such as language code and human-readable name. Snippet *I18nLanguageSnippet `json:"snippet,omitempty"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *I18nLanguage) MarshalJSON() ([]byte, error) { type noMethod I18nLanguage raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type I18nLanguageListResponse struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // EventId: Serialized EventId of the request which produced this // response. EventId string `json:"eventId,omitempty"` // Items: 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. Items []*I18nLanguage `json:"items,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#i18nLanguageListResponse". Kind string `json:"kind,omitempty"` // VisitorId: The visitorId identifies the visitor. VisitorId string `json:"visitorId,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *I18nLanguageListResponse) MarshalJSON() ([]byte, error) { type noMethod I18nLanguageListResponse raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // I18nLanguageSnippet: Basic details about an i18n language, such as // language code and human-readable name. type I18nLanguageSnippet struct { // Hl: A short BCP-47 code that uniquely identifies a language. Hl string `json:"hl,omitempty"` // Name: The human-readable name of the language in the language itself. Name string `json:"name,omitempty"` // ForceSendFields is a list of field names (e.g. "Hl") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *I18nLanguageSnippet) MarshalJSON() ([]byte, error) { type noMethod I18nLanguageSnippet raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // I18nRegion: A i18nRegion resource identifies a region where YouTube // is available. type I18nRegion struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // Id: The ID that YouTube uses to uniquely identify the i18n region. Id string `json:"id,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#i18nRegion". Kind string `json:"kind,omitempty"` // Snippet: The snippet object contains basic details about the i18n // region, such as region code and human-readable name. Snippet *I18nRegionSnippet `json:"snippet,omitempty"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *I18nRegion) MarshalJSON() ([]byte, error) { type noMethod I18nRegion raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type I18nRegionListResponse struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // EventId: Serialized EventId of the request which produced this // response. EventId string `json:"eventId,omitempty"` // Items: 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. Items []*I18nRegion `json:"items,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#i18nRegionListResponse". Kind string `json:"kind,omitempty"` // VisitorId: The visitorId identifies the visitor. VisitorId string `json:"visitorId,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *I18nRegionListResponse) MarshalJSON() ([]byte, error) { type noMethod I18nRegionListResponse raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // I18nRegionSnippet: Basic details about an i18n region, such as region // code and human-readable name. type I18nRegionSnippet struct { // Gl: The region code as a 2-letter ISO country code. Gl string `json:"gl,omitempty"` // Name: The human-readable name of the region. Name string `json:"name,omitempty"` // ForceSendFields is a list of field names (e.g. "Gl") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *I18nRegionSnippet) MarshalJSON() ([]byte, error) { type noMethod I18nRegionSnippet raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ImageSettings: Branding properties for images associated with the // channel. type ImageSettings struct { // BackgroundImageUrl: 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. BackgroundImageUrl *LocalizedProperty `json:"backgroundImageUrl,omitempty"` // BannerExternalUrl: This is used only in update requests; if it's set, // we use this URL to generate all of the above banner URLs. BannerExternalUrl string `json:"bannerExternalUrl,omitempty"` // BannerImageUrl: Banner image. Desktop size (1060x175). BannerImageUrl string `json:"bannerImageUrl,omitempty"` // BannerMobileExtraHdImageUrl: Banner image. Mobile size high // resolution (1440x395). BannerMobileExtraHdImageUrl string `json:"bannerMobileExtraHdImageUrl,omitempty"` // BannerMobileHdImageUrl: Banner image. Mobile size high resolution // (1280x360). BannerMobileHdImageUrl string `json:"bannerMobileHdImageUrl,omitempty"` // BannerMobileImageUrl: Banner image. Mobile size (640x175). BannerMobileImageUrl string `json:"bannerMobileImageUrl,omitempty"` // BannerMobileLowImageUrl: Banner image. Mobile size low resolution // (320x88). BannerMobileLowImageUrl string `json:"bannerMobileLowImageUrl,omitempty"` // BannerMobileMediumHdImageUrl: Banner image. Mobile size medium/high // resolution (960x263). BannerMobileMediumHdImageUrl string `json:"bannerMobileMediumHdImageUrl,omitempty"` // BannerTabletExtraHdImageUrl: Banner image. Tablet size extra high // resolution (2560x424). BannerTabletExtraHdImageUrl string `json:"bannerTabletExtraHdImageUrl,omitempty"` // BannerTabletHdImageUrl: Banner image. Tablet size high resolution // (2276x377). BannerTabletHdImageUrl string `json:"bannerTabletHdImageUrl,omitempty"` // BannerTabletImageUrl: Banner image. Tablet size (1707x283). BannerTabletImageUrl string `json:"bannerTabletImageUrl,omitempty"` // BannerTabletLowImageUrl: Banner image. Tablet size low resolution // (1138x188). BannerTabletLowImageUrl string `json:"bannerTabletLowImageUrl,omitempty"` // BannerTvHighImageUrl: Banner image. TV size high resolution // (1920x1080). BannerTvHighImageUrl string `json:"bannerTvHighImageUrl,omitempty"` // BannerTvImageUrl: Banner image. TV size extra high resolution // (2120x1192). BannerTvImageUrl string `json:"bannerTvImageUrl,omitempty"` // BannerTvLowImageUrl: Banner image. TV size low resolution (854x480). BannerTvLowImageUrl string `json:"bannerTvLowImageUrl,omitempty"` // BannerTvMediumImageUrl: Banner image. TV size medium resolution // (1280x720). BannerTvMediumImageUrl string `json:"bannerTvMediumImageUrl,omitempty"` // LargeBrandedBannerImageImapScript: The image map script for the large // banner image. LargeBrandedBannerImageImapScript *LocalizedProperty `json:"largeBrandedBannerImageImapScript,omitempty"` // LargeBrandedBannerImageUrl: The URL for the 854px by 70px image that // appears below the video player in the expanded video view of the // video watch page. LargeBrandedBannerImageUrl *LocalizedProperty `json:"largeBrandedBannerImageUrl,omitempty"` // SmallBrandedBannerImageImapScript: The image map script for the small // banner image. SmallBrandedBannerImageImapScript *LocalizedProperty `json:"smallBrandedBannerImageImapScript,omitempty"` // SmallBrandedBannerImageUrl: The URL for the 640px by 70px banner // image that appears below the video player in the default view of the // video watch page. SmallBrandedBannerImageUrl *LocalizedProperty `json:"smallBrandedBannerImageUrl,omitempty"` // TrackingImageUrl: The URL for a 1px by 1px tracking pixel that can be // used to collect statistics for views of the channel or video pages. TrackingImageUrl string `json:"trackingImageUrl,omitempty"` // WatchIconImageUrl: 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. WatchIconImageUrl string `json:"watchIconImageUrl,omitempty"` // ForceSendFields is a list of field names (e.g. "BackgroundImageUrl") // to unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ImageSettings) MarshalJSON() ([]byte, error) { type noMethod ImageSettings raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // IngestionInfo: Describes information necessary for ingesting an RTMP // or an HTTP stream. type IngestionInfo struct { // BackupIngestionAddress: 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. BackupIngestionAddress string `json:"backupIngestionAddress,omitempty"` // IngestionAddress: 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 IngestionAddress string `json:"ingestionAddress,omitempty"` // StreamName: The HTTP or RTMP stream name that YouTube assigns to the // video stream. StreamName string `json:"streamName,omitempty"` // ForceSendFields is a list of field names (e.g. // "BackupIngestionAddress") to unconditionally include in API requests. // By default, fields with empty values are omitted from API requests. // However, any non-pointer, non-interface field appearing in // ForceSendFields will be sent to the server regardless of whether the // field is empty or not. This may be used to include empty fields in // Patch requests. ForceSendFields []string `json:"-"` } func (s *IngestionInfo) MarshalJSON() ([]byte, error) { type noMethod IngestionInfo raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type InvideoBranding struct { ImageBytes string `json:"imageBytes,omitempty"` ImageUrl string `json:"imageUrl,omitempty"` Position *InvideoPosition `json:"position,omitempty"` TargetChannelId string `json:"targetChannelId,omitempty"` Timing *InvideoTiming `json:"timing,omitempty"` // ForceSendFields is a list of field names (e.g. "ImageBytes") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *InvideoBranding) MarshalJSON() ([]byte, error) { type noMethod InvideoBranding raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // InvideoPosition: 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. type InvideoPosition struct { // CornerPosition: Describes in which corner of the video the visual // widget will appear. // // Possible values: // "bottomLeft" // "bottomRight" // "topLeft" // "topRight" CornerPosition string `json:"cornerPosition,omitempty"` // Type: Defines the position type. // // Possible values: // "corner" Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "CornerPosition") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *InvideoPosition) MarshalJSON() ([]byte, error) { type noMethod InvideoPosition raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // InvideoPromotion: Describes an invideo promotion campaign consisting // of multiple promoted items. A campaign belongs to a single // channel_id. type InvideoPromotion struct { // DefaultTiming: The default temporal position within the video where // the promoted item will be displayed. Can be overriden by more // specific timing in the item. DefaultTiming *InvideoTiming `json:"defaultTiming,omitempty"` // Items: List of promoted items in decreasing priority. Items []*PromotedItem `json:"items,omitempty"` // Position: The spatial position within the video where the promoted // item will be displayed. Position *InvideoPosition `json:"position,omitempty"` // UseSmartTiming: 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. UseSmartTiming bool `json:"useSmartTiming,omitempty"` // ForceSendFields is a list of field names (e.g. "DefaultTiming") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *InvideoPromotion) MarshalJSON() ([]byte, error) { type noMethod InvideoPromotion raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // InvideoTiming: Describes a temporal position of a visual widget // inside a video. type InvideoTiming struct { // DurationMs: Defines the duration in milliseconds for which the // promotion should be displayed. If missing, the client should use the // default. DurationMs uint64 `json:"durationMs,omitempty,string"` // OffsetMs: 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. OffsetMs uint64 `json:"offsetMs,omitempty,string"` // Type: 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. // // Possible values: // "offsetFromEnd" // "offsetFromStart" Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "DurationMs") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *InvideoTiming) MarshalJSON() ([]byte, error) { type noMethod InvideoTiming raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type LanguageTag struct { Value string `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "Value") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *LanguageTag) MarshalJSON() ([]byte, error) { type noMethod LanguageTag raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // LiveBroadcast: A liveBroadcast resource represents an event that will // be streamed, via live video, on YouTube. type LiveBroadcast struct { // ContentDetails: The contentDetails object contains information about // the event's video content, such as whether the content can be shown // in an embedded video player or if it will be archived and therefore // available for viewing after the event has concluded. ContentDetails *LiveBroadcastContentDetails `json:"contentDetails,omitempty"` // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // Id: The ID that YouTube assigns to uniquely identify the broadcast. Id string `json:"id,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#liveBroadcast". Kind string `json:"kind,omitempty"` // Snippet: The snippet object contains basic details about the event, // including its title, description, start time, and end time. Snippet *LiveBroadcastSnippet `json:"snippet,omitempty"` // Statistics: The statistics object contains info about the event's // current stats. These include concurrent viewers and total chat count. // Statistics can change (in either direction) during the lifetime of an // event. Statistics are only returned while the event is live. Statistics *LiveBroadcastStatistics `json:"statistics,omitempty"` // Status: The status object contains information about the event's // status. Status *LiveBroadcastStatus `json:"status,omitempty"` TopicDetails *LiveBroadcastTopicDetails `json:"topicDetails,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "ContentDetails") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *LiveBroadcast) MarshalJSON() ([]byte, error) { type noMethod LiveBroadcast raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // LiveBroadcastContentDetails: Detailed settings of a broadcast. type LiveBroadcastContentDetails struct { // BoundStreamId: This value uniquely identifies the live stream bound // to the broadcast. BoundStreamId string `json:"boundStreamId,omitempty"` // EnableClosedCaptions: This setting indicates whether closed // captioning is enabled for this broadcast. The ingestion URL of the // closed captions is returned through the liveStreams API. EnableClosedCaptions bool `json:"enableClosedCaptions,omitempty"` // EnableContentEncryption: This setting indicates whether YouTube // should enable content encryption for the broadcast. EnableContentEncryption bool `json:"enableContentEncryption,omitempty"` // EnableDvr: 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. EnableDvr bool `json:"enableDvr,omitempty"` // EnableEmbed: 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. EnableEmbed bool `json:"enableEmbed,omitempty"` EnableLowLatency bool `json:"enableLowLatency,omitempty"` // MonitorStream: The monitorStream object contains information about // the monitor stream, which the broadcaster can use to review the event // content before the broadcast stream is shown publicly. MonitorStream *MonitorStreamInfo `json:"monitorStream,omitempty"` // RecordFromStart: 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. RecordFromStart bool `json:"recordFromStart,omitempty"` // StartWithSlate: 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. StartWithSlate bool `json:"startWithSlate,omitempty"` // ForceSendFields is a list of field names (e.g. "BoundStreamId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *LiveBroadcastContentDetails) MarshalJSON() ([]byte, error) { type noMethod LiveBroadcastContentDetails raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type LiveBroadcastListResponse struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // EventId: Serialized EventId of the request which produced this // response. EventId string `json:"eventId,omitempty"` // Items: A list of broadcasts that match the request criteria. Items []*LiveBroadcast `json:"items,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#liveBroadcastListResponse". Kind string `json:"kind,omitempty"` // NextPageToken: The token that can be used as the value of the // pageToken parameter to retrieve the next page in the result set. NextPageToken string `json:"nextPageToken,omitempty"` PageInfo *PageInfo `json:"pageInfo,omitempty"` // PrevPageToken: The token that can be used as the value of the // pageToken parameter to retrieve the previous page in the result set. PrevPageToken string `json:"prevPageToken,omitempty"` TokenPagination *TokenPagination `json:"tokenPagination,omitempty"` // VisitorId: The visitorId identifies the visitor. VisitorId string `json:"visitorId,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *LiveBroadcastListResponse) MarshalJSON() ([]byte, error) { type noMethod LiveBroadcastListResponse raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type LiveBroadcastSnippet struct { // ActualEndTime: 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 (YYYY-MM-DDThh:mm:ss.sZ) // format. ActualEndTime string `json:"actualEndTime,omitempty"` // ActualStartTime: 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 // (YYYY-MM-DDThh:mm:ss.sZ) format. ActualStartTime string `json:"actualStartTime,omitempty"` // ChannelId: The ID that YouTube uses to uniquely identify the channel // that is publishing the broadcast. ChannelId string `json:"channelId,omitempty"` // Description: 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. Description string `json:"description,omitempty"` IsDefaultBroadcast bool `json:"isDefaultBroadcast,omitempty"` // LiveChatId: The id of the live chat for this broadcast. LiveChatId string `json:"liveChatId,omitempty"` // PublishedAt: The date and time that the broadcast was added to // YouTube's live broadcast schedule. The value is specified in ISO 8601 // (YYYY-MM-DDThh:mm:ss.sZ) format. PublishedAt string `json:"publishedAt,omitempty"` // ScheduledEndTime: The date and time that the broadcast is scheduled // to end. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) // format. ScheduledEndTime string `json:"scheduledEndTime,omitempty"` // ScheduledStartTime: The date and time that the broadcast is scheduled // to start. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) // format. ScheduledStartTime string `json:"scheduledStartTime,omitempty"` // Thumbnails: A map of thumbnail images associated with the broadcast. // For each nested object in this object, the key is the name of the // thumbnail image, and the value is an object that contains other // information about the thumbnail. Thumbnails *ThumbnailDetails `json:"thumbnails,omitempty"` // Title: 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. Title string `json:"title,omitempty"` // ForceSendFields is a list of field names (e.g. "ActualEndTime") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *LiveBroadcastSnippet) MarshalJSON() ([]byte, error) { type noMethod LiveBroadcastSnippet raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // LiveBroadcastStatistics: 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. type LiveBroadcastStatistics struct { // ConcurrentViewers: 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. ConcurrentViewers uint64 `json:"concurrentViewers,omitempty,string"` // TotalChatCount: 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. TotalChatCount uint64 `json:"totalChatCount,omitempty,string"` // ForceSendFields is a list of field names (e.g. "ConcurrentViewers") // to unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *LiveBroadcastStatistics) MarshalJSON() ([]byte, error) { type noMethod LiveBroadcastStatistics raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type LiveBroadcastStatus struct { // LifeCycleStatus: The broadcast's status. The status can be updated // using the API's liveBroadcasts.transition method. // // Possible values: // "abandoned" // "complete" // "completeStarting" // "created" // "live" // "liveStarting" // "ready" // "reclaimed" // "revoked" // "testStarting" // "testing" LifeCycleStatus string `json:"lifeCycleStatus,omitempty"` // LiveBroadcastPriority: Priority of the live broadcast event (internal // state). // // Possible values: // "high" // "low" // "normal" LiveBroadcastPriority string `json:"liveBroadcastPriority,omitempty"` // PrivacyStatus: 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. // // Possible values: // "private" // "public" // "unlisted" PrivacyStatus string `json:"privacyStatus,omitempty"` // RecordingStatus: The broadcast's recording status. // // Possible values: // "notRecording" // "recorded" // "recording" RecordingStatus string `json:"recordingStatus,omitempty"` // ForceSendFields is a list of field names (e.g. "LifeCycleStatus") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *LiveBroadcastStatus) MarshalJSON() ([]byte, error) { type noMethod LiveBroadcastStatus raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type LiveBroadcastTopic struct { // Snippet: Information about the topic matched. Snippet *LiveBroadcastTopicSnippet `json:"snippet,omitempty"` // Type: The type of the topic. // // Possible values: // "videoGame" Type string `json:"type,omitempty"` // Unmatched: If this flag is set it means that we have not been able to // match the topic title and type provided to a known entity. Unmatched bool `json:"unmatched,omitempty"` // ForceSendFields is a list of field names (e.g. "Snippet") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *LiveBroadcastTopic) MarshalJSON() ([]byte, error) { type noMethod LiveBroadcastTopic raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type LiveBroadcastTopicDetails struct { Topics []*LiveBroadcastTopic `json:"topics,omitempty"` // ForceSendFields is a list of field names (e.g. "Topics") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *LiveBroadcastTopicDetails) MarshalJSON() ([]byte, error) { type noMethod LiveBroadcastTopicDetails raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type LiveBroadcastTopicSnippet struct { // Name: The name of the topic. Name string `json:"name,omitempty"` // ReleaseDate: The date at which the topic was released. Filled for // types: videoGame ReleaseDate string `json:"releaseDate,omitempty"` // ForceSendFields is a list of field names (e.g. "Name") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *LiveBroadcastTopicSnippet) MarshalJSON() ([]byte, error) { type noMethod LiveBroadcastTopicSnippet raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // LiveStream: A live stream describes a live ingestion point. type LiveStream struct { // Cdn: The cdn object defines the live stream's content delivery // network (CDN) settings. These settings provide details about the // manner in which you stream your content to YouTube. Cdn *CdnSettings `json:"cdn,omitempty"` // ContentDetails: The content_details object contains information about // the stream, including the closed captions ingestion URL. ContentDetails *LiveStreamContentDetails `json:"contentDetails,omitempty"` // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // Id: The ID that YouTube assigns to uniquely identify the stream. Id string `json:"id,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#liveStream". Kind string `json:"kind,omitempty"` // Snippet: The snippet object contains basic details about the stream, // including its channel, title, and description. Snippet *LiveStreamSnippet `json:"snippet,omitempty"` // Status: The status object contains information about live stream's // status. Status *LiveStreamStatus `json:"status,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Cdn") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *LiveStream) MarshalJSON() ([]byte, error) { type noMethod LiveStream raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type LiveStreamConfigurationIssue struct { // Description: The long-form description of the issue and how to // resolve it. Description string `json:"description,omitempty"` // Reason: The short-form reason for this issue. Reason string `json:"reason,omitempty"` // Severity: How severe this issue is to the stream. // // Possible values: // "error" // "info" // "warning" Severity string `json:"severity,omitempty"` // Type: The kind of error happening. // // Possible values: // "audioBitrateHigh" // "audioBitrateLow" // "audioBitrateMismatch" // "audioCodec" // "audioCodecMismatch" // "audioSampleRate" // "audioSampleRateMismatch" // "audioStereoMismatch" // "audioTooManyChannels" // "badContainer" // "bitrateHigh" // "bitrateLow" // "frameRateHigh" // "framerateMismatch" // "gopMismatch" // "gopSizeLong" // "gopSizeOver" // "gopSizeShort" // "interlacedVideo" // "multipleAudioStreams" // "multipleVideoStreams" // "noAudioStream" // "noVideoStream" // "openGop" // "resolutionMismatch" // "videoBitrateMismatch" // "videoCodec" // "videoCodecMismatch" // "videoIngestionStarved" // "videoInterlaceMismatch" // "videoProfileMismatch" // "videoResolutionSuboptimal" // "videoResolutionUnsupported" Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "Description") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *LiveStreamConfigurationIssue) MarshalJSON() ([]byte, error) { type noMethod LiveStreamConfigurationIssue raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // LiveStreamContentDetails: Detailed settings of a stream. type LiveStreamContentDetails struct { // ClosedCaptionsIngestionUrl: The ingestion URL where the closed // captions of this stream are sent. ClosedCaptionsIngestionUrl string `json:"closedCaptionsIngestionUrl,omitempty"` // IsReusable: 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. IsReusable bool `json:"isReusable,omitempty"` // ForceSendFields is a list of field names (e.g. // "ClosedCaptionsIngestionUrl") to unconditionally include in API // requests. By default, fields with empty values are omitted from API // requests. However, any non-pointer, non-interface field appearing in // ForceSendFields will be sent to the server regardless of whether the // field is empty or not. This may be used to include empty fields in // Patch requests. ForceSendFields []string `json:"-"` } func (s *LiveStreamContentDetails) MarshalJSON() ([]byte, error) { type noMethod LiveStreamContentDetails raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type LiveStreamHealthStatus struct { // ConfigurationIssues: The configurations issues on this stream ConfigurationIssues []*LiveStreamConfigurationIssue `json:"configurationIssues,omitempty"` // LastUpdateTimeSeconds: The last time this status was updated (in // seconds) LastUpdateTimeSeconds uint64 `json:"lastUpdateTimeSeconds,omitempty,string"` // Status: The status code of this stream // // Possible values: // "bad" // "good" // "noData" // "ok" // "revoked" Status string `json:"status,omitempty"` // ForceSendFields is a list of field names (e.g. "ConfigurationIssues") // to unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *LiveStreamHealthStatus) MarshalJSON() ([]byte, error) { type noMethod LiveStreamHealthStatus raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type LiveStreamListResponse struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // EventId: Serialized EventId of the request which produced this // response. EventId string `json:"eventId,omitempty"` // Items: A list of live streams that match the request criteria. Items []*LiveStream `json:"items,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#liveStreamListResponse". Kind string `json:"kind,omitempty"` // NextPageToken: The token that can be used as the value of the // pageToken parameter to retrieve the next page in the result set. NextPageToken string `json:"nextPageToken,omitempty"` PageInfo *PageInfo `json:"pageInfo,omitempty"` // PrevPageToken: The token that can be used as the value of the // pageToken parameter to retrieve the previous page in the result set. PrevPageToken string `json:"prevPageToken,omitempty"` TokenPagination *TokenPagination `json:"tokenPagination,omitempty"` // VisitorId: The visitorId identifies the visitor. VisitorId string `json:"visitorId,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *LiveStreamListResponse) MarshalJSON() ([]byte, error) { type noMethod LiveStreamListResponse raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type LiveStreamSnippet struct { // ChannelId: The ID that YouTube uses to uniquely identify the channel // that is transmitting the stream. ChannelId string `json:"channelId,omitempty"` // Description: The stream's description. The value cannot be longer // than 10000 characters. Description string `json:"description,omitempty"` IsDefaultStream bool `json:"isDefaultStream,omitempty"` // PublishedAt: The date and time that the stream was created. The value // is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. PublishedAt string `json:"publishedAt,omitempty"` // Title: The stream's title. The value must be between 1 and 128 // characters long. Title string `json:"title,omitempty"` // ForceSendFields is a list of field names (e.g. "ChannelId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *LiveStreamSnippet) MarshalJSON() ([]byte, error) { type noMethod LiveStreamSnippet raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // LiveStreamStatus: Brief description of the live stream status. type LiveStreamStatus struct { // HealthStatus: The health status of the stream. HealthStatus *LiveStreamHealthStatus `json:"healthStatus,omitempty"` // Possible values: // "active" // "created" // "error" // "inactive" // "ready" StreamStatus string `json:"streamStatus,omitempty"` // ForceSendFields is a list of field names (e.g. "HealthStatus") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *LiveStreamStatus) MarshalJSON() ([]byte, error) { type noMethod LiveStreamStatus raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type LocalizedProperty struct { Default string `json:"default,omitempty"` // DefaultLanguage: The language of the default property. DefaultLanguage *LanguageTag `json:"defaultLanguage,omitempty"` Localized []*LocalizedString `json:"localized,omitempty"` // ForceSendFields is a list of field names (e.g. "Default") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *LocalizedProperty) MarshalJSON() ([]byte, error) { type noMethod LocalizedProperty raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type LocalizedString struct { Language string `json:"language,omitempty"` Value string `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "Language") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *LocalizedString) MarshalJSON() ([]byte, error) { type noMethod LocalizedString raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // MonitorStreamInfo: Settings and Info of the monitor stream type MonitorStreamInfo struct { // BroadcastStreamDelayMs: If you have set the enableMonitorStream // property to true, then this property determines the length of the // live broadcast delay. BroadcastStreamDelayMs int64 `json:"broadcastStreamDelayMs,omitempty"` // EmbedHtml: HTML code that embeds a player that plays the monitor // stream. EmbedHtml string `json:"embedHtml,omitempty"` // EnableMonitorStream: 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. EnableMonitorStream bool `json:"enableMonitorStream,omitempty"` // ForceSendFields is a list of field names (e.g. // "BroadcastStreamDelayMs") to unconditionally include in API requests. // By default, fields with empty values are omitted from API requests. // However, any non-pointer, non-interface field appearing in // ForceSendFields will be sent to the server regardless of whether the // field is empty or not. This may be used to include empty fields in // Patch requests. ForceSendFields []string `json:"-"` } func (s *MonitorStreamInfo) MarshalJSON() ([]byte, error) { type noMethod MonitorStreamInfo raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // PageInfo: Paging details for lists of resources, including total // number of items available and number of resources returned in a // single page. type PageInfo struct { // ResultsPerPage: The number of results included in the API response. ResultsPerPage int64 `json:"resultsPerPage,omitempty"` // TotalResults: The total number of results in the result set. TotalResults int64 `json:"totalResults,omitempty"` // ForceSendFields is a list of field names (e.g. "ResultsPerPage") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *PageInfo) MarshalJSON() ([]byte, error) { type noMethod PageInfo raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // Playlist: 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. type Playlist struct { // ContentDetails: The contentDetails object contains information like // video count. ContentDetails *PlaylistContentDetails `json:"contentDetails,omitempty"` // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // Id: The ID that YouTube uses to uniquely identify the playlist. Id string `json:"id,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#playlist". Kind string `json:"kind,omitempty"` // Localizations: Localizations for different languages Localizations map[string]PlaylistLocalization `json:"localizations,omitempty"` // Player: The player object contains information that you would use to // play the playlist in an embedded player. Player *PlaylistPlayer `json:"player,omitempty"` // Snippet: The snippet object contains basic details about the // playlist, such as its title and description. Snippet *PlaylistSnippet `json:"snippet,omitempty"` // Status: The status object contains status information for the // playlist. Status *PlaylistStatus `json:"status,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "ContentDetails") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *Playlist) MarshalJSON() ([]byte, error) { type noMethod Playlist raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type PlaylistContentDetails struct { // ItemCount: The number of videos in the playlist. ItemCount int64 `json:"itemCount,omitempty"` // ForceSendFields is a list of field names (e.g. "ItemCount") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *PlaylistContentDetails) MarshalJSON() ([]byte, error) { type noMethod PlaylistContentDetails raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // PlaylistItem: 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. type PlaylistItem struct { // ContentDetails: The contentDetails object is included in the resource // if the included item is a YouTube video. The object contains // additional information about the video. ContentDetails *PlaylistItemContentDetails `json:"contentDetails,omitempty"` // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // Id: The ID that YouTube uses to uniquely identify the playlist item. Id string `json:"id,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#playlistItem". Kind string `json:"kind,omitempty"` // Snippet: The snippet object contains basic details about the playlist // item, such as its title and position in the playlist. Snippet *PlaylistItemSnippet `json:"snippet,omitempty"` // Status: The status object contains information about the playlist // item's privacy status. Status *PlaylistItemStatus `json:"status,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "ContentDetails") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *PlaylistItem) MarshalJSON() ([]byte, error) { type noMethod PlaylistItem raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type PlaylistItemContentDetails struct { // EndAt: 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. EndAt string `json:"endAt,omitempty"` // Note: A user-generated note for this item. Note string `json:"note,omitempty"` // StartAt: 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. StartAt string `json:"startAt,omitempty"` // VideoId: 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. VideoId string `json:"videoId,omitempty"` // ForceSendFields is a list of field names (e.g. "EndAt") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *PlaylistItemContentDetails) MarshalJSON() ([]byte, error) { type noMethod PlaylistItemContentDetails raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type PlaylistItemListResponse struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // EventId: Serialized EventId of the request which produced this // response. EventId string `json:"eventId,omitempty"` // Items: A list of playlist items that match the request criteria. Items []*PlaylistItem `json:"items,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#playlistItemListResponse". Kind string `json:"kind,omitempty"` // NextPageToken: The token that can be used as the value of the // pageToken parameter to retrieve the next page in the result set. NextPageToken string `json:"nextPageToken,omitempty"` PageInfo *PageInfo `json:"pageInfo,omitempty"` // PrevPageToken: The token that can be used as the value of the // pageToken parameter to retrieve the previous page in the result set. PrevPageToken string `json:"prevPageToken,omitempty"` TokenPagination *TokenPagination `json:"tokenPagination,omitempty"` // VisitorId: The visitorId identifies the visitor. VisitorId string `json:"visitorId,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *PlaylistItemListResponse) MarshalJSON() ([]byte, error) { type noMethod PlaylistItemListResponse raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // PlaylistItemSnippet: Basic details about a playlist, including title, // description and thumbnails. type PlaylistItemSnippet struct { // ChannelId: The ID that YouTube uses to uniquely identify the user // that added the item to the playlist. ChannelId string `json:"channelId,omitempty"` // ChannelTitle: Channel title for the channel that the playlist item // belongs to. ChannelTitle string `json:"channelTitle,omitempty"` // Description: The item's description. Description string `json:"description,omitempty"` // PlaylistId: The ID that YouTube uses to uniquely identify the // playlist that the playlist item is in. PlaylistId string `json:"playlistId,omitempty"` // Position: 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. Position int64 `json:"position,omitempty"` // PublishedAt: The date and time that the item was added to the // playlist. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) // format. PublishedAt string `json:"publishedAt,omitempty"` // ResourceId: The id object contains information that can be used to // uniquely identify the resource that is included in the playlist as // the playlist item. ResourceId *ResourceId `json:"resourceId,omitempty"` // Thumbnails: A map of thumbnail images associated with the playlist // item. For each object in the map, the key is the name of the // thumbnail image, and the value is an object that contains other // information about the thumbnail. Thumbnails *ThumbnailDetails `json:"thumbnails,omitempty"` // Title: The item's title. Title string `json:"title,omitempty"` // ForceSendFields is a list of field names (e.g. "ChannelId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *PlaylistItemSnippet) MarshalJSON() ([]byte, error) { type noMethod PlaylistItemSnippet raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // PlaylistItemStatus: Information about the playlist item's privacy // status. type PlaylistItemStatus struct { // PrivacyStatus: This resource's privacy status. // // Possible values: // "private" // "public" // "unlisted" PrivacyStatus string `json:"privacyStatus,omitempty"` // ForceSendFields is a list of field names (e.g. "PrivacyStatus") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *PlaylistItemStatus) MarshalJSON() ([]byte, error) { type noMethod PlaylistItemStatus raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type PlaylistListResponse struct { // Etag: Etag of this resource. Etag string `json:"etag,omitempty"` // EventId: Serialized EventId of the request which produced this // response. EventId string `json:"eventId,omitempty"` // Items: A list of playlists that match the request criteria. Items []*Playlist `json:"items,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed // string "youtube#playlistListResponse". Kind string `json:"kind,omitempty"` // NextPageToken: The token that can be used as the value of the // pageToken parameter to retrieve the next page in the result set. NextPageToken string `json:"nextPageToken,omitempty"` PageInfo *PageInfo `json:"pageInfo,omitempty"` // PrevPageToken: The token that can be used as the value of the // pageToken parameter to retrieve the previous page in the result set. PrevPageToken string `json:"prevPageToken,omitempty"` TokenPagination *TokenPagination `json:"tokenPagination,omitempty"` // VisitorId: The visitorId identifies the visitor. VisitorId string `json:"visitorId,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *PlaylistListResponse) MarshalJSON() ([]byte, error) { type noMethod PlaylistListResponse raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // PlaylistLocalization: Playlist localization setting type PlaylistLocalization struct { // Description: The localized strings for playlist's description. Description string `json:"description,omitempty"` // Title: The localized strings for playlist's title. Title string `json:"title,omitempty"` // ForceSendFields is a list of field names (e.g. "Description") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *PlaylistLocalization) MarshalJSON() ([]byte, error) { type noMethod PlaylistLocalization raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } type PlaylistPlayer struct { // EmbedHtml: An