<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="youtube_v3.html">YouTube Data API v3</a> . <a href="youtube_v3.channels.html">channels</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#list">list(part, categoryId=None, forUsername=None, hl=None, id=None, managedByMe=None, maxResults=None, mine=None, mySubscribers=None, onBehalfOfContentOwner=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves a list of resources, possibly filtered.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#update">update(part, body=None, onBehalfOfContentOwner=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates an existing resource.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="list">list(part, categoryId=None, forUsername=None, hl=None, id=None, managedByMe=None, maxResults=None, mine=None, mySubscribers=None, onBehalfOfContentOwner=None, pageToken=None, x__xgafv=None)</code>
  <pre>Retrieves a list of resources, possibly filtered.

Args:
  part: string, The *part* parameter specifies a comma-separated list of one or more channel resource properties that the API response will include. If the parameter identifies a property that contains child properties, the child properties will be included in the response. For example, in a channel resource, the contentDetails property contains other properties, such as the uploads properties. As such, if you set *part=contentDetails*, the API response will also contain all of those nested properties. (required) (repeated)
  categoryId: string, Return the channels within the specified guide category ID.
  forUsername: string, Return the channel associated with a YouTube username.
  hl: string, Stands for &quot;host language&quot;. Specifies the localization language of the metadata to be filled into snippet.localized. The field is filled with the default metadata if there is no localization in the specified language. The parameter value must be a language code included in the list returned by the i18nLanguages.list method (e.g. en_US, es_MX).
  id: string, Return the channels with the specified IDs. (repeated)
  managedByMe: boolean, Return the channels managed by the authenticated user.
  maxResults: integer, The *maxResults* parameter specifies the maximum number of items that should be returned in the result set.
  mine: boolean, Return the ids of channels owned by the authenticated user.
  mySubscribers: boolean, Return the channels subscribed to the authenticated user
  onBehalfOfContentOwner: string, *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request&#x27;s authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.
  pageToken: string, The *pageToken* parameter identifies a specific page in the result set that should be returned. In an API response, the nextPageToken and prevPageToken properties identify other pages that could be retrieved.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;etag&quot;: &quot;A String&quot;, # Etag of this resource.
  &quot;eventId&quot;: &quot;A String&quot;, # Serialized EventId of the request which produced this response.
  &quot;items&quot;: [
    { # A *channel* resource contains information about a YouTube channel.
      &quot;auditDetails&quot;: { # The auditDetails object encapsulates channel data that is relevant for YouTube Partners during the audit process. # The auditionDetails object encapsulates channel data that is relevant for YouTube Partners during the audition process.
        &quot;communityGuidelinesGoodStanding&quot;: True or False, # Whether or not the channel respects the community guidelines.
        &quot;contentIdClaimsGoodStanding&quot;: True or False, # Whether or not the channel has any unresolved claims.
        &quot;copyrightStrikesGoodStanding&quot;: True or False, # Whether or not the channel has any copyright strikes.
      },
      &quot;brandingSettings&quot;: { # Branding properties of a YouTube channel. # The brandingSettings object encapsulates information about the branding of the channel.
        &quot;channel&quot;: { # Branding properties for the channel view. # Branding properties for the channel view.
          &quot;country&quot;: &quot;A String&quot;, # The country of the channel.
          &quot;defaultLanguage&quot;: &quot;A String&quot;,
          &quot;defaultTab&quot;: &quot;A String&quot;, # Which content tab users should see when viewing the channel.
          &quot;description&quot;: &quot;A String&quot;, # Specifies the channel description.
          &quot;featuredChannelsTitle&quot;: &quot;A String&quot;, # Title for the featured channels tab.
          &quot;featuredChannelsUrls&quot;: [ # The list of featured channels.
            &quot;A String&quot;,
          ],
          &quot;keywords&quot;: &quot;A String&quot;, # Lists keywords associated with the channel, comma-separated.
          &quot;moderateComments&quot;: True or False, # Whether user-submitted comments left on the channel page need to be approved by the channel owner to be publicly visible.
          &quot;profileColor&quot;: &quot;A String&quot;, # A prominent color that can be rendered on this channel page.
          &quot;showBrowseView&quot;: True or False, # Whether the tab to browse the videos should be displayed.
          &quot;showRelatedChannels&quot;: True or False, # Whether related channels should be proposed.
          &quot;title&quot;: &quot;A String&quot;, # Specifies the channel title.
          &quot;trackingAnalyticsAccountId&quot;: &quot;A String&quot;, # The ID for a Google Analytics account to track and measure traffic to the channels.
          &quot;unsubscribedTrailer&quot;: &quot;A String&quot;, # The trailer of the channel, for users that are not subscribers.
        },
        &quot;hints&quot;: [ # Additional experimental branding properties.
          { # A pair Property / Value.
            &quot;property&quot;: &quot;A String&quot;, # A property.
            &quot;value&quot;: &quot;A String&quot;, # The property&#x27;s value.
          },
        ],
        &quot;image&quot;: { # Branding properties for images associated with the channel. # Branding properties for branding images.
          &quot;backgroundImageUrl&quot;: { # 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.
            &quot;default&quot;: &quot;A String&quot;,
            &quot;defaultLanguage&quot;: { # The language of the default property.
              &quot;value&quot;: &quot;A String&quot;,
            },
            &quot;localized&quot;: [
              {
                &quot;language&quot;: &quot;A String&quot;,
                &quot;value&quot;: &quot;A String&quot;,
              },
            ],
          },
          &quot;bannerExternalUrl&quot;: &quot;A String&quot;, # This is generated when a ChannelBanner.Insert request has succeeded for the given channel.
          &quot;bannerImageUrl&quot;: &quot;A String&quot;, # Banner image. Desktop size (1060x175).
          &quot;bannerMobileExtraHdImageUrl&quot;: &quot;A String&quot;, # Banner image. Mobile size high resolution (1440x395).
          &quot;bannerMobileHdImageUrl&quot;: &quot;A String&quot;, # Banner image. Mobile size high resolution (1280x360).
          &quot;bannerMobileImageUrl&quot;: &quot;A String&quot;, # Banner image. Mobile size (640x175).
          &quot;bannerMobileLowImageUrl&quot;: &quot;A String&quot;, # Banner image. Mobile size low resolution (320x88).
          &quot;bannerMobileMediumHdImageUrl&quot;: &quot;A String&quot;, # Banner image. Mobile size medium/high resolution (960x263).
          &quot;bannerTabletExtraHdImageUrl&quot;: &quot;A String&quot;, # Banner image. Tablet size extra high resolution (2560x424).
          &quot;bannerTabletHdImageUrl&quot;: &quot;A String&quot;, # Banner image. Tablet size high resolution (2276x377).
          &quot;bannerTabletImageUrl&quot;: &quot;A String&quot;, # Banner image. Tablet size (1707x283).
          &quot;bannerTabletLowImageUrl&quot;: &quot;A String&quot;, # Banner image. Tablet size low resolution (1138x188).
          &quot;bannerTvHighImageUrl&quot;: &quot;A String&quot;, # Banner image. TV size high resolution (1920x1080).
          &quot;bannerTvImageUrl&quot;: &quot;A String&quot;, # Banner image. TV size extra high resolution (2120x1192).
          &quot;bannerTvLowImageUrl&quot;: &quot;A String&quot;, # Banner image. TV size low resolution (854x480).
          &quot;bannerTvMediumImageUrl&quot;: &quot;A String&quot;, # Banner image. TV size medium resolution (1280x720).
          &quot;largeBrandedBannerImageImapScript&quot;: { # The image map script for the large banner image.
            &quot;default&quot;: &quot;A String&quot;,
            &quot;defaultLanguage&quot;: { # The language of the default property.
              &quot;value&quot;: &quot;A String&quot;,
            },
            &quot;localized&quot;: [
              {
                &quot;language&quot;: &quot;A String&quot;,
                &quot;value&quot;: &quot;A String&quot;,
              },
            ],
          },
          &quot;largeBrandedBannerImageUrl&quot;: { # The URL for the 854px by 70px image that appears below the video player in the expanded video view of the video watch page.
            &quot;default&quot;: &quot;A String&quot;,
            &quot;defaultLanguage&quot;: { # The language of the default property.
              &quot;value&quot;: &quot;A String&quot;,
            },
            &quot;localized&quot;: [
              {
                &quot;language&quot;: &quot;A String&quot;,
                &quot;value&quot;: &quot;A String&quot;,
              },
            ],
          },
          &quot;smallBrandedBannerImageImapScript&quot;: { # The image map script for the small banner image.
            &quot;default&quot;: &quot;A String&quot;,
            &quot;defaultLanguage&quot;: { # The language of the default property.
              &quot;value&quot;: &quot;A String&quot;,
            },
            &quot;localized&quot;: [
              {
                &quot;language&quot;: &quot;A String&quot;,
                &quot;value&quot;: &quot;A String&quot;,
              },
            ],
          },
          &quot;smallBrandedBannerImageUrl&quot;: { # The URL for the 640px by 70px banner image that appears below the video player in the default view of the video watch page. The URL for the image that appears above the top-left corner of the video player. This is a 25-pixel-high image with a flexible width that cannot exceed 170 pixels.
            &quot;default&quot;: &quot;A String&quot;,
            &quot;defaultLanguage&quot;: { # The language of the default property.
              &quot;value&quot;: &quot;A String&quot;,
            },
            &quot;localized&quot;: [
              {
                &quot;language&quot;: &quot;A String&quot;,
                &quot;value&quot;: &quot;A String&quot;,
              },
            ],
          },
          &quot;trackingImageUrl&quot;: &quot;A String&quot;, # The URL for a 1px by 1px tracking pixel that can be used to collect statistics for views of the channel or video pages.
          &quot;watchIconImageUrl&quot;: &quot;A String&quot;,
        },
        &quot;watch&quot;: { # Branding properties for the watch. All deprecated. # Branding properties for the watch page.
          &quot;backgroundColor&quot;: &quot;A String&quot;, # The text color for the video watch page&#x27;s branded area.
          &quot;featuredPlaylistId&quot;: &quot;A String&quot;, # An ID that uniquely identifies a playlist that displays next to the video player.
          &quot;textColor&quot;: &quot;A String&quot;, # The background color for the video watch page&#x27;s branded area.
        },
      },
      &quot;contentDetails&quot;: { # Details about the content of a channel. # The contentDetails object encapsulates information about the channel&#x27;s content.
        &quot;relatedPlaylists&quot;: {
          &quot;favorites&quot;: &quot;A String&quot;, # The ID of the playlist that contains the channel&quot;s favorite videos. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list.
          &quot;likes&quot;: &quot;A String&quot;, # The ID of the playlist that contains the channel&quot;s liked videos. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list.
          &quot;uploads&quot;: &quot;A String&quot;, # The ID of the playlist that contains the channel&quot;s uploaded videos. Use the videos.insert method to upload new videos and the videos.delete method to delete previously uploaded videos.
          &quot;watchHistory&quot;: &quot;A String&quot;, # The ID of the playlist that contains the channel&quot;s watch history. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list.
          &quot;watchLater&quot;: &quot;A String&quot;, # The ID of the playlist that contains the channel&quot;s watch later playlist. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list.
        },
      },
      &quot;contentOwnerDetails&quot;: { # The contentOwnerDetails object encapsulates channel data that is relevant for YouTube Partners linked with the channel. # The contentOwnerDetails object encapsulates channel data that is relevant for YouTube Partners linked with the channel.
        &quot;contentOwner&quot;: &quot;A String&quot;, # The ID of the content owner linked to the channel.
        &quot;timeLinked&quot;: &quot;A String&quot;, # The date and time when the channel was linked to the content owner.
      },
      &quot;conversionPings&quot;: { # The conversionPings object encapsulates information about conversion pings that need to be respected by the channel. # The conversionPings object encapsulates information about conversion pings that need to be respected by the channel.
        &quot;pings&quot;: [ # 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 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.
            &quot;context&quot;: &quot;A String&quot;, # Defines the context of the ping.
            &quot;conversionUrl&quot;: &quot;A String&quot;, # The url (without the schema) that the player shall send the ping to. It&#x27;s at caller&#x27;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&amp;labe=default The caller must append biscotti authentication (ms param in case of mobile, for example) to this ping.
          },
        ],
      },
      &quot;etag&quot;: &quot;A String&quot;, # Etag of this resource.
      &quot;id&quot;: &quot;A String&quot;, # The ID that YouTube uses to uniquely identify the channel.
      &quot;kind&quot;: &quot;youtube#channel&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;youtube#channel&quot;.
      &quot;localizations&quot;: { # Localizations for different languages
        &quot;a_key&quot;: { # Channel localization setting
          &quot;description&quot;: &quot;A String&quot;, # The localized strings for channel&#x27;s description.
          &quot;title&quot;: &quot;A String&quot;, # The localized strings for channel&#x27;s title.
        },
      },
      &quot;snippet&quot;: { # Basic details about a channel, including title, description and thumbnails. # The snippet object contains basic details about the channel, such as its title, description, and thumbnail images.
        &quot;country&quot;: &quot;A String&quot;, # The country of the channel.
        &quot;customUrl&quot;: &quot;A String&quot;, # The custom url of the channel.
        &quot;defaultLanguage&quot;: &quot;A String&quot;, # The language of the channel&#x27;s default title and description.
        &quot;description&quot;: &quot;A String&quot;, # The description of the channel.
        &quot;localized&quot;: { # Channel localization setting # Localized title and description, read-only.
          &quot;description&quot;: &quot;A String&quot;, # The localized strings for channel&#x27;s description.
          &quot;title&quot;: &quot;A String&quot;, # The localized strings for channel&#x27;s title.
        },
        &quot;publishedAt&quot;: &quot;A String&quot;, # The date and time that the channel was created.
        &quot;thumbnails&quot;: { # Internal representation of thumbnails for a YouTube resource. # 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. When displaying thumbnails in your application, make sure that your code uses the image URLs exactly as they are returned in API responses. For example, your application should not use the http domain instead of the https domain in a URL returned in an API response. Beginning in July 2018, channel thumbnail URLs will only be available in the https domain, which is how the URLs appear in API responses. After that time, you might see broken images in your application if it tries to load YouTube images from the http domain. Thumbnail images might be empty for newly created channels and might take up to one day to populate.
          &quot;default&quot;: { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
            &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
            &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
            &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
          },
          &quot;high&quot;: { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
            &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
            &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
            &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
          },
          &quot;maxres&quot;: { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
            &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
            &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
            &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
          },
          &quot;medium&quot;: { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
            &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
            &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
            &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
          },
          &quot;standard&quot;: { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
            &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
            &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
            &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
          },
        },
        &quot;title&quot;: &quot;A String&quot;, # The channel&#x27;s title.
      },
      &quot;statistics&quot;: { # Statistics about a channel: number of subscribers, number of videos in the channel, etc. # The statistics object encapsulates statistics for the channel.
        &quot;commentCount&quot;: &quot;A String&quot;, # The number of comments for the channel.
        &quot;hiddenSubscriberCount&quot;: True or False, # Whether or not the number of subscribers is shown for this user.
        &quot;subscriberCount&quot;: &quot;A String&quot;, # The number of subscribers that the channel has.
        &quot;videoCount&quot;: &quot;A String&quot;, # The number of videos uploaded to the channel.
        &quot;viewCount&quot;: &quot;A String&quot;, # The number of times the channel has been viewed.
      },
      &quot;status&quot;: { # JSON template for the status part of a channel. # The status object encapsulates information about the privacy status of the channel.
        &quot;isLinked&quot;: True or False, # If true, then the user is linked to either a YouTube username or G+ account. Otherwise, the user doesn&#x27;t have a public YouTube identity.
        &quot;longUploadsStatus&quot;: &quot;A String&quot;, # The long uploads status of this channel. See https://support.google.com/youtube/answer/71673 for more information.
        &quot;madeForKids&quot;: True or False,
        &quot;privacyStatus&quot;: &quot;A String&quot;, # Privacy status of the channel.
        &quot;selfDeclaredMadeForKids&quot;: True or False,
      },
      &quot;topicDetails&quot;: { # Freebase topic information related to the channel. # The topicDetails object encapsulates information about Freebase topics associated with the channel.
        &quot;topicCategories&quot;: [ # A list of Wikipedia URLs that describe the channel&#x27;s content.
          &quot;A String&quot;,
        ],
        &quot;topicIds&quot;: [ # A list of Freebase topic IDs associated with the channel. You can retrieve information about each topic using the Freebase Topic API.
          &quot;A String&quot;,
        ],
      },
    },
  ],
  &quot;kind&quot;: &quot;youtube#channelListResponse&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;youtube#channelListResponse&quot;.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set.
  &quot;pageInfo&quot;: { # Paging details for lists of resources, including total number of items available and number of resources returned in a single page. # General pagination information.
    &quot;resultsPerPage&quot;: 42, # The number of results included in the API response.
    &quot;totalResults&quot;: 42, # The total number of results in the result set.
  },
  &quot;prevPageToken&quot;: &quot;A String&quot;, # The token that can be used as the value of the pageToken parameter to retrieve the previous page in the result set.
  &quot;tokenPagination&quot;: { # Stub token pagination template to suppress results.
  },
  &quot;visitorId&quot;: &quot;A String&quot;, # The visitorId identifies the visitor.
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="update">update(part, body=None, onBehalfOfContentOwner=None, x__xgafv=None)</code>
  <pre>Updates an existing resource.

Args:
  part: string, The *part* parameter serves two purposes in this operation. It identifies the properties that the write operation will set as well as the properties that the API response will include. The API currently only allows the parameter value to be set to either brandingSettings or invideoPromotion. (You cannot update both of those parts with a single request.) Note that this method overrides the existing values for all of the mutable properties that are contained in any parts that the parameter value specifies. (required) (repeated)
  body: object, The request body.
    The object takes the form of:

{ # A *channel* resource contains information about a YouTube channel.
  &quot;auditDetails&quot;: { # The auditDetails object encapsulates channel data that is relevant for YouTube Partners during the audit process. # The auditionDetails object encapsulates channel data that is relevant for YouTube Partners during the audition process.
    &quot;communityGuidelinesGoodStanding&quot;: True or False, # Whether or not the channel respects the community guidelines.
    &quot;contentIdClaimsGoodStanding&quot;: True or False, # Whether or not the channel has any unresolved claims.
    &quot;copyrightStrikesGoodStanding&quot;: True or False, # Whether or not the channel has any copyright strikes.
  },
  &quot;brandingSettings&quot;: { # Branding properties of a YouTube channel. # The brandingSettings object encapsulates information about the branding of the channel.
    &quot;channel&quot;: { # Branding properties for the channel view. # Branding properties for the channel view.
      &quot;country&quot;: &quot;A String&quot;, # The country of the channel.
      &quot;defaultLanguage&quot;: &quot;A String&quot;,
      &quot;defaultTab&quot;: &quot;A String&quot;, # Which content tab users should see when viewing the channel.
      &quot;description&quot;: &quot;A String&quot;, # Specifies the channel description.
      &quot;featuredChannelsTitle&quot;: &quot;A String&quot;, # Title for the featured channels tab.
      &quot;featuredChannelsUrls&quot;: [ # The list of featured channels.
        &quot;A String&quot;,
      ],
      &quot;keywords&quot;: &quot;A String&quot;, # Lists keywords associated with the channel, comma-separated.
      &quot;moderateComments&quot;: True or False, # Whether user-submitted comments left on the channel page need to be approved by the channel owner to be publicly visible.
      &quot;profileColor&quot;: &quot;A String&quot;, # A prominent color that can be rendered on this channel page.
      &quot;showBrowseView&quot;: True or False, # Whether the tab to browse the videos should be displayed.
      &quot;showRelatedChannels&quot;: True or False, # Whether related channels should be proposed.
      &quot;title&quot;: &quot;A String&quot;, # Specifies the channel title.
      &quot;trackingAnalyticsAccountId&quot;: &quot;A String&quot;, # The ID for a Google Analytics account to track and measure traffic to the channels.
      &quot;unsubscribedTrailer&quot;: &quot;A String&quot;, # The trailer of the channel, for users that are not subscribers.
    },
    &quot;hints&quot;: [ # Additional experimental branding properties.
      { # A pair Property / Value.
        &quot;property&quot;: &quot;A String&quot;, # A property.
        &quot;value&quot;: &quot;A String&quot;, # The property&#x27;s value.
      },
    ],
    &quot;image&quot;: { # Branding properties for images associated with the channel. # Branding properties for branding images.
      &quot;backgroundImageUrl&quot;: { # 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.
        &quot;default&quot;: &quot;A String&quot;,
        &quot;defaultLanguage&quot;: { # The language of the default property.
          &quot;value&quot;: &quot;A String&quot;,
        },
        &quot;localized&quot;: [
          {
            &quot;language&quot;: &quot;A String&quot;,
            &quot;value&quot;: &quot;A String&quot;,
          },
        ],
      },
      &quot;bannerExternalUrl&quot;: &quot;A String&quot;, # This is generated when a ChannelBanner.Insert request has succeeded for the given channel.
      &quot;bannerImageUrl&quot;: &quot;A String&quot;, # Banner image. Desktop size (1060x175).
      &quot;bannerMobileExtraHdImageUrl&quot;: &quot;A String&quot;, # Banner image. Mobile size high resolution (1440x395).
      &quot;bannerMobileHdImageUrl&quot;: &quot;A String&quot;, # Banner image. Mobile size high resolution (1280x360).
      &quot;bannerMobileImageUrl&quot;: &quot;A String&quot;, # Banner image. Mobile size (640x175).
      &quot;bannerMobileLowImageUrl&quot;: &quot;A String&quot;, # Banner image. Mobile size low resolution (320x88).
      &quot;bannerMobileMediumHdImageUrl&quot;: &quot;A String&quot;, # Banner image. Mobile size medium/high resolution (960x263).
      &quot;bannerTabletExtraHdImageUrl&quot;: &quot;A String&quot;, # Banner image. Tablet size extra high resolution (2560x424).
      &quot;bannerTabletHdImageUrl&quot;: &quot;A String&quot;, # Banner image. Tablet size high resolution (2276x377).
      &quot;bannerTabletImageUrl&quot;: &quot;A String&quot;, # Banner image. Tablet size (1707x283).
      &quot;bannerTabletLowImageUrl&quot;: &quot;A String&quot;, # Banner image. Tablet size low resolution (1138x188).
      &quot;bannerTvHighImageUrl&quot;: &quot;A String&quot;, # Banner image. TV size high resolution (1920x1080).
      &quot;bannerTvImageUrl&quot;: &quot;A String&quot;, # Banner image. TV size extra high resolution (2120x1192).
      &quot;bannerTvLowImageUrl&quot;: &quot;A String&quot;, # Banner image. TV size low resolution (854x480).
      &quot;bannerTvMediumImageUrl&quot;: &quot;A String&quot;, # Banner image. TV size medium resolution (1280x720).
      &quot;largeBrandedBannerImageImapScript&quot;: { # The image map script for the large banner image.
        &quot;default&quot;: &quot;A String&quot;,
        &quot;defaultLanguage&quot;: { # The language of the default property.
          &quot;value&quot;: &quot;A String&quot;,
        },
        &quot;localized&quot;: [
          {
            &quot;language&quot;: &quot;A String&quot;,
            &quot;value&quot;: &quot;A String&quot;,
          },
        ],
      },
      &quot;largeBrandedBannerImageUrl&quot;: { # The URL for the 854px by 70px image that appears below the video player in the expanded video view of the video watch page.
        &quot;default&quot;: &quot;A String&quot;,
        &quot;defaultLanguage&quot;: { # The language of the default property.
          &quot;value&quot;: &quot;A String&quot;,
        },
        &quot;localized&quot;: [
          {
            &quot;language&quot;: &quot;A String&quot;,
            &quot;value&quot;: &quot;A String&quot;,
          },
        ],
      },
      &quot;smallBrandedBannerImageImapScript&quot;: { # The image map script for the small banner image.
        &quot;default&quot;: &quot;A String&quot;,
        &quot;defaultLanguage&quot;: { # The language of the default property.
          &quot;value&quot;: &quot;A String&quot;,
        },
        &quot;localized&quot;: [
          {
            &quot;language&quot;: &quot;A String&quot;,
            &quot;value&quot;: &quot;A String&quot;,
          },
        ],
      },
      &quot;smallBrandedBannerImageUrl&quot;: { # The URL for the 640px by 70px banner image that appears below the video player in the default view of the video watch page. The URL for the image that appears above the top-left corner of the video player. This is a 25-pixel-high image with a flexible width that cannot exceed 170 pixels.
        &quot;default&quot;: &quot;A String&quot;,
        &quot;defaultLanguage&quot;: { # The language of the default property.
          &quot;value&quot;: &quot;A String&quot;,
        },
        &quot;localized&quot;: [
          {
            &quot;language&quot;: &quot;A String&quot;,
            &quot;value&quot;: &quot;A String&quot;,
          },
        ],
      },
      &quot;trackingImageUrl&quot;: &quot;A String&quot;, # The URL for a 1px by 1px tracking pixel that can be used to collect statistics for views of the channel or video pages.
      &quot;watchIconImageUrl&quot;: &quot;A String&quot;,
    },
    &quot;watch&quot;: { # Branding properties for the watch. All deprecated. # Branding properties for the watch page.
      &quot;backgroundColor&quot;: &quot;A String&quot;, # The text color for the video watch page&#x27;s branded area.
      &quot;featuredPlaylistId&quot;: &quot;A String&quot;, # An ID that uniquely identifies a playlist that displays next to the video player.
      &quot;textColor&quot;: &quot;A String&quot;, # The background color for the video watch page&#x27;s branded area.
    },
  },
  &quot;contentDetails&quot;: { # Details about the content of a channel. # The contentDetails object encapsulates information about the channel&#x27;s content.
    &quot;relatedPlaylists&quot;: {
      &quot;favorites&quot;: &quot;A String&quot;, # The ID of the playlist that contains the channel&quot;s favorite videos. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list.
      &quot;likes&quot;: &quot;A String&quot;, # The ID of the playlist that contains the channel&quot;s liked videos. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list.
      &quot;uploads&quot;: &quot;A String&quot;, # The ID of the playlist that contains the channel&quot;s uploaded videos. Use the videos.insert method to upload new videos and the videos.delete method to delete previously uploaded videos.
      &quot;watchHistory&quot;: &quot;A String&quot;, # The ID of the playlist that contains the channel&quot;s watch history. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list.
      &quot;watchLater&quot;: &quot;A String&quot;, # The ID of the playlist that contains the channel&quot;s watch later playlist. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list.
    },
  },
  &quot;contentOwnerDetails&quot;: { # The contentOwnerDetails object encapsulates channel data that is relevant for YouTube Partners linked with the channel. # The contentOwnerDetails object encapsulates channel data that is relevant for YouTube Partners linked with the channel.
    &quot;contentOwner&quot;: &quot;A String&quot;, # The ID of the content owner linked to the channel.
    &quot;timeLinked&quot;: &quot;A String&quot;, # The date and time when the channel was linked to the content owner.
  },
  &quot;conversionPings&quot;: { # The conversionPings object encapsulates information about conversion pings that need to be respected by the channel. # The conversionPings object encapsulates information about conversion pings that need to be respected by the channel.
    &quot;pings&quot;: [ # 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 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.
        &quot;context&quot;: &quot;A String&quot;, # Defines the context of the ping.
        &quot;conversionUrl&quot;: &quot;A String&quot;, # The url (without the schema) that the player shall send the ping to. It&#x27;s at caller&#x27;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&amp;labe=default The caller must append biscotti authentication (ms param in case of mobile, for example) to this ping.
      },
    ],
  },
  &quot;etag&quot;: &quot;A String&quot;, # Etag of this resource.
  &quot;id&quot;: &quot;A String&quot;, # The ID that YouTube uses to uniquely identify the channel.
  &quot;kind&quot;: &quot;youtube#channel&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;youtube#channel&quot;.
  &quot;localizations&quot;: { # Localizations for different languages
    &quot;a_key&quot;: { # Channel localization setting
      &quot;description&quot;: &quot;A String&quot;, # The localized strings for channel&#x27;s description.
      &quot;title&quot;: &quot;A String&quot;, # The localized strings for channel&#x27;s title.
    },
  },
  &quot;snippet&quot;: { # Basic details about a channel, including title, description and thumbnails. # The snippet object contains basic details about the channel, such as its title, description, and thumbnail images.
    &quot;country&quot;: &quot;A String&quot;, # The country of the channel.
    &quot;customUrl&quot;: &quot;A String&quot;, # The custom url of the channel.
    &quot;defaultLanguage&quot;: &quot;A String&quot;, # The language of the channel&#x27;s default title and description.
    &quot;description&quot;: &quot;A String&quot;, # The description of the channel.
    &quot;localized&quot;: { # Channel localization setting # Localized title and description, read-only.
      &quot;description&quot;: &quot;A String&quot;, # The localized strings for channel&#x27;s description.
      &quot;title&quot;: &quot;A String&quot;, # The localized strings for channel&#x27;s title.
    },
    &quot;publishedAt&quot;: &quot;A String&quot;, # The date and time that the channel was created.
    &quot;thumbnails&quot;: { # Internal representation of thumbnails for a YouTube resource. # 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. When displaying thumbnails in your application, make sure that your code uses the image URLs exactly as they are returned in API responses. For example, your application should not use the http domain instead of the https domain in a URL returned in an API response. Beginning in July 2018, channel thumbnail URLs will only be available in the https domain, which is how the URLs appear in API responses. After that time, you might see broken images in your application if it tries to load YouTube images from the http domain. Thumbnail images might be empty for newly created channels and might take up to one day to populate.
      &quot;default&quot;: { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;high&quot;: { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;maxres&quot;: { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;medium&quot;: { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;standard&quot;: { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
    },
    &quot;title&quot;: &quot;A String&quot;, # The channel&#x27;s title.
  },
  &quot;statistics&quot;: { # Statistics about a channel: number of subscribers, number of videos in the channel, etc. # The statistics object encapsulates statistics for the channel.
    &quot;commentCount&quot;: &quot;A String&quot;, # The number of comments for the channel.
    &quot;hiddenSubscriberCount&quot;: True or False, # Whether or not the number of subscribers is shown for this user.
    &quot;subscriberCount&quot;: &quot;A String&quot;, # The number of subscribers that the channel has.
    &quot;videoCount&quot;: &quot;A String&quot;, # The number of videos uploaded to the channel.
    &quot;viewCount&quot;: &quot;A String&quot;, # The number of times the channel has been viewed.
  },
  &quot;status&quot;: { # JSON template for the status part of a channel. # The status object encapsulates information about the privacy status of the channel.
    &quot;isLinked&quot;: True or False, # If true, then the user is linked to either a YouTube username or G+ account. Otherwise, the user doesn&#x27;t have a public YouTube identity.
    &quot;longUploadsStatus&quot;: &quot;A String&quot;, # The long uploads status of this channel. See https://support.google.com/youtube/answer/71673 for more information.
    &quot;madeForKids&quot;: True or False,
    &quot;privacyStatus&quot;: &quot;A String&quot;, # Privacy status of the channel.
    &quot;selfDeclaredMadeForKids&quot;: True or False,
  },
  &quot;topicDetails&quot;: { # Freebase topic information related to the channel. # The topicDetails object encapsulates information about Freebase topics associated with the channel.
    &quot;topicCategories&quot;: [ # A list of Wikipedia URLs that describe the channel&#x27;s content.
      &quot;A String&quot;,
    ],
    &quot;topicIds&quot;: [ # A list of Freebase topic IDs associated with the channel. You can retrieve information about each topic using the Freebase Topic API.
      &quot;A String&quot;,
    ],
  },
}

  onBehalfOfContentOwner: string, The *onBehalfOfContentOwner* parameter indicates that the authenticated user is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The actual CMS account that the user authenticates with needs to be linked to the specified YouTube content owner.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A *channel* resource contains information about a YouTube channel.
  &quot;auditDetails&quot;: { # The auditDetails object encapsulates channel data that is relevant for YouTube Partners during the audit process. # The auditionDetails object encapsulates channel data that is relevant for YouTube Partners during the audition process.
    &quot;communityGuidelinesGoodStanding&quot;: True or False, # Whether or not the channel respects the community guidelines.
    &quot;contentIdClaimsGoodStanding&quot;: True or False, # Whether or not the channel has any unresolved claims.
    &quot;copyrightStrikesGoodStanding&quot;: True or False, # Whether or not the channel has any copyright strikes.
  },
  &quot;brandingSettings&quot;: { # Branding properties of a YouTube channel. # The brandingSettings object encapsulates information about the branding of the channel.
    &quot;channel&quot;: { # Branding properties for the channel view. # Branding properties for the channel view.
      &quot;country&quot;: &quot;A String&quot;, # The country of the channel.
      &quot;defaultLanguage&quot;: &quot;A String&quot;,
      &quot;defaultTab&quot;: &quot;A String&quot;, # Which content tab users should see when viewing the channel.
      &quot;description&quot;: &quot;A String&quot;, # Specifies the channel description.
      &quot;featuredChannelsTitle&quot;: &quot;A String&quot;, # Title for the featured channels tab.
      &quot;featuredChannelsUrls&quot;: [ # The list of featured channels.
        &quot;A String&quot;,
      ],
      &quot;keywords&quot;: &quot;A String&quot;, # Lists keywords associated with the channel, comma-separated.
      &quot;moderateComments&quot;: True or False, # Whether user-submitted comments left on the channel page need to be approved by the channel owner to be publicly visible.
      &quot;profileColor&quot;: &quot;A String&quot;, # A prominent color that can be rendered on this channel page.
      &quot;showBrowseView&quot;: True or False, # Whether the tab to browse the videos should be displayed.
      &quot;showRelatedChannels&quot;: True or False, # Whether related channels should be proposed.
      &quot;title&quot;: &quot;A String&quot;, # Specifies the channel title.
      &quot;trackingAnalyticsAccountId&quot;: &quot;A String&quot;, # The ID for a Google Analytics account to track and measure traffic to the channels.
      &quot;unsubscribedTrailer&quot;: &quot;A String&quot;, # The trailer of the channel, for users that are not subscribers.
    },
    &quot;hints&quot;: [ # Additional experimental branding properties.
      { # A pair Property / Value.
        &quot;property&quot;: &quot;A String&quot;, # A property.
        &quot;value&quot;: &quot;A String&quot;, # The property&#x27;s value.
      },
    ],
    &quot;image&quot;: { # Branding properties for images associated with the channel. # Branding properties for branding images.
      &quot;backgroundImageUrl&quot;: { # 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.
        &quot;default&quot;: &quot;A String&quot;,
        &quot;defaultLanguage&quot;: { # The language of the default property.
          &quot;value&quot;: &quot;A String&quot;,
        },
        &quot;localized&quot;: [
          {
            &quot;language&quot;: &quot;A String&quot;,
            &quot;value&quot;: &quot;A String&quot;,
          },
        ],
      },
      &quot;bannerExternalUrl&quot;: &quot;A String&quot;, # This is generated when a ChannelBanner.Insert request has succeeded for the given channel.
      &quot;bannerImageUrl&quot;: &quot;A String&quot;, # Banner image. Desktop size (1060x175).
      &quot;bannerMobileExtraHdImageUrl&quot;: &quot;A String&quot;, # Banner image. Mobile size high resolution (1440x395).
      &quot;bannerMobileHdImageUrl&quot;: &quot;A String&quot;, # Banner image. Mobile size high resolution (1280x360).
      &quot;bannerMobileImageUrl&quot;: &quot;A String&quot;, # Banner image. Mobile size (640x175).
      &quot;bannerMobileLowImageUrl&quot;: &quot;A String&quot;, # Banner image. Mobile size low resolution (320x88).
      &quot;bannerMobileMediumHdImageUrl&quot;: &quot;A String&quot;, # Banner image. Mobile size medium/high resolution (960x263).
      &quot;bannerTabletExtraHdImageUrl&quot;: &quot;A String&quot;, # Banner image. Tablet size extra high resolution (2560x424).
      &quot;bannerTabletHdImageUrl&quot;: &quot;A String&quot;, # Banner image. Tablet size high resolution (2276x377).
      &quot;bannerTabletImageUrl&quot;: &quot;A String&quot;, # Banner image. Tablet size (1707x283).
      &quot;bannerTabletLowImageUrl&quot;: &quot;A String&quot;, # Banner image. Tablet size low resolution (1138x188).
      &quot;bannerTvHighImageUrl&quot;: &quot;A String&quot;, # Banner image. TV size high resolution (1920x1080).
      &quot;bannerTvImageUrl&quot;: &quot;A String&quot;, # Banner image. TV size extra high resolution (2120x1192).
      &quot;bannerTvLowImageUrl&quot;: &quot;A String&quot;, # Banner image. TV size low resolution (854x480).
      &quot;bannerTvMediumImageUrl&quot;: &quot;A String&quot;, # Banner image. TV size medium resolution (1280x720).
      &quot;largeBrandedBannerImageImapScript&quot;: { # The image map script for the large banner image.
        &quot;default&quot;: &quot;A String&quot;,
        &quot;defaultLanguage&quot;: { # The language of the default property.
          &quot;value&quot;: &quot;A String&quot;,
        },
        &quot;localized&quot;: [
          {
            &quot;language&quot;: &quot;A String&quot;,
            &quot;value&quot;: &quot;A String&quot;,
          },
        ],
      },
      &quot;largeBrandedBannerImageUrl&quot;: { # The URL for the 854px by 70px image that appears below the video player in the expanded video view of the video watch page.
        &quot;default&quot;: &quot;A String&quot;,
        &quot;defaultLanguage&quot;: { # The language of the default property.
          &quot;value&quot;: &quot;A String&quot;,
        },
        &quot;localized&quot;: [
          {
            &quot;language&quot;: &quot;A String&quot;,
            &quot;value&quot;: &quot;A String&quot;,
          },
        ],
      },
      &quot;smallBrandedBannerImageImapScript&quot;: { # The image map script for the small banner image.
        &quot;default&quot;: &quot;A String&quot;,
        &quot;defaultLanguage&quot;: { # The language of the default property.
          &quot;value&quot;: &quot;A String&quot;,
        },
        &quot;localized&quot;: [
          {
            &quot;language&quot;: &quot;A String&quot;,
            &quot;value&quot;: &quot;A String&quot;,
          },
        ],
      },
      &quot;smallBrandedBannerImageUrl&quot;: { # The URL for the 640px by 70px banner image that appears below the video player in the default view of the video watch page. The URL for the image that appears above the top-left corner of the video player. This is a 25-pixel-high image with a flexible width that cannot exceed 170 pixels.
        &quot;default&quot;: &quot;A String&quot;,
        &quot;defaultLanguage&quot;: { # The language of the default property.
          &quot;value&quot;: &quot;A String&quot;,
        },
        &quot;localized&quot;: [
          {
            &quot;language&quot;: &quot;A String&quot;,
            &quot;value&quot;: &quot;A String&quot;,
          },
        ],
      },
      &quot;trackingImageUrl&quot;: &quot;A String&quot;, # The URL for a 1px by 1px tracking pixel that can be used to collect statistics for views of the channel or video pages.
      &quot;watchIconImageUrl&quot;: &quot;A String&quot;,
    },
    &quot;watch&quot;: { # Branding properties for the watch. All deprecated. # Branding properties for the watch page.
      &quot;backgroundColor&quot;: &quot;A String&quot;, # The text color for the video watch page&#x27;s branded area.
      &quot;featuredPlaylistId&quot;: &quot;A String&quot;, # An ID that uniquely identifies a playlist that displays next to the video player.
      &quot;textColor&quot;: &quot;A String&quot;, # The background color for the video watch page&#x27;s branded area.
    },
  },
  &quot;contentDetails&quot;: { # Details about the content of a channel. # The contentDetails object encapsulates information about the channel&#x27;s content.
    &quot;relatedPlaylists&quot;: {
      &quot;favorites&quot;: &quot;A String&quot;, # The ID of the playlist that contains the channel&quot;s favorite videos. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list.
      &quot;likes&quot;: &quot;A String&quot;, # The ID of the playlist that contains the channel&quot;s liked videos. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list.
      &quot;uploads&quot;: &quot;A String&quot;, # The ID of the playlist that contains the channel&quot;s uploaded videos. Use the videos.insert method to upload new videos and the videos.delete method to delete previously uploaded videos.
      &quot;watchHistory&quot;: &quot;A String&quot;, # The ID of the playlist that contains the channel&quot;s watch history. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list.
      &quot;watchLater&quot;: &quot;A String&quot;, # The ID of the playlist that contains the channel&quot;s watch later playlist. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list.
    },
  },
  &quot;contentOwnerDetails&quot;: { # The contentOwnerDetails object encapsulates channel data that is relevant for YouTube Partners linked with the channel. # The contentOwnerDetails object encapsulates channel data that is relevant for YouTube Partners linked with the channel.
    &quot;contentOwner&quot;: &quot;A String&quot;, # The ID of the content owner linked to the channel.
    &quot;timeLinked&quot;: &quot;A String&quot;, # The date and time when the channel was linked to the content owner.
  },
  &quot;conversionPings&quot;: { # The conversionPings object encapsulates information about conversion pings that need to be respected by the channel. # The conversionPings object encapsulates information about conversion pings that need to be respected by the channel.
    &quot;pings&quot;: [ # 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 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.
        &quot;context&quot;: &quot;A String&quot;, # Defines the context of the ping.
        &quot;conversionUrl&quot;: &quot;A String&quot;, # The url (without the schema) that the player shall send the ping to. It&#x27;s at caller&#x27;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&amp;labe=default The caller must append biscotti authentication (ms param in case of mobile, for example) to this ping.
      },
    ],
  },
  &quot;etag&quot;: &quot;A String&quot;, # Etag of this resource.
  &quot;id&quot;: &quot;A String&quot;, # The ID that YouTube uses to uniquely identify the channel.
  &quot;kind&quot;: &quot;youtube#channel&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;youtube#channel&quot;.
  &quot;localizations&quot;: { # Localizations for different languages
    &quot;a_key&quot;: { # Channel localization setting
      &quot;description&quot;: &quot;A String&quot;, # The localized strings for channel&#x27;s description.
      &quot;title&quot;: &quot;A String&quot;, # The localized strings for channel&#x27;s title.
    },
  },
  &quot;snippet&quot;: { # Basic details about a channel, including title, description and thumbnails. # The snippet object contains basic details about the channel, such as its title, description, and thumbnail images.
    &quot;country&quot;: &quot;A String&quot;, # The country of the channel.
    &quot;customUrl&quot;: &quot;A String&quot;, # The custom url of the channel.
    &quot;defaultLanguage&quot;: &quot;A String&quot;, # The language of the channel&#x27;s default title and description.
    &quot;description&quot;: &quot;A String&quot;, # The description of the channel.
    &quot;localized&quot;: { # Channel localization setting # Localized title and description, read-only.
      &quot;description&quot;: &quot;A String&quot;, # The localized strings for channel&#x27;s description.
      &quot;title&quot;: &quot;A String&quot;, # The localized strings for channel&#x27;s title.
    },
    &quot;publishedAt&quot;: &quot;A String&quot;, # The date and time that the channel was created.
    &quot;thumbnails&quot;: { # Internal representation of thumbnails for a YouTube resource. # 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. When displaying thumbnails in your application, make sure that your code uses the image URLs exactly as they are returned in API responses. For example, your application should not use the http domain instead of the https domain in a URL returned in an API response. Beginning in July 2018, channel thumbnail URLs will only be available in the https domain, which is how the URLs appear in API responses. After that time, you might see broken images in your application if it tries to load YouTube images from the http domain. Thumbnail images might be empty for newly created channels and might take up to one day to populate.
      &quot;default&quot;: { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;high&quot;: { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;maxres&quot;: { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;medium&quot;: { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;standard&quot;: { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
    },
    &quot;title&quot;: &quot;A String&quot;, # The channel&#x27;s title.
  },
  &quot;statistics&quot;: { # Statistics about a channel: number of subscribers, number of videos in the channel, etc. # The statistics object encapsulates statistics for the channel.
    &quot;commentCount&quot;: &quot;A String&quot;, # The number of comments for the channel.
    &quot;hiddenSubscriberCount&quot;: True or False, # Whether or not the number of subscribers is shown for this user.
    &quot;subscriberCount&quot;: &quot;A String&quot;, # The number of subscribers that the channel has.
    &quot;videoCount&quot;: &quot;A String&quot;, # The number of videos uploaded to the channel.
    &quot;viewCount&quot;: &quot;A String&quot;, # The number of times the channel has been viewed.
  },
  &quot;status&quot;: { # JSON template for the status part of a channel. # The status object encapsulates information about the privacy status of the channel.
    &quot;isLinked&quot;: True or False, # If true, then the user is linked to either a YouTube username or G+ account. Otherwise, the user doesn&#x27;t have a public YouTube identity.
    &quot;longUploadsStatus&quot;: &quot;A String&quot;, # The long uploads status of this channel. See https://support.google.com/youtube/answer/71673 for more information.
    &quot;madeForKids&quot;: True or False,
    &quot;privacyStatus&quot;: &quot;A String&quot;, # Privacy status of the channel.
    &quot;selfDeclaredMadeForKids&quot;: True or False,
  },
  &quot;topicDetails&quot;: { # Freebase topic information related to the channel. # The topicDetails object encapsulates information about Freebase topics associated with the channel.
    &quot;topicCategories&quot;: [ # A list of Wikipedia URLs that describe the channel&#x27;s content.
      &quot;A String&quot;,
    ],
    &quot;topicIds&quot;: [ # A list of Freebase topic IDs associated with the channel. You can retrieve information about each topic using the Freebase Topic API.
      &quot;A String&quot;,
    ],
  },
}</pre>
</div>

</body></html>