<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</a> . <a href="youtube_v3.channels.html">channels</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#list">list(part=None, onBehalfOfContentOwner=None, pageToken=None, categoryId=None, maxResults=None, mine=None, mySubscribers=None, id=None)</a></code></p>
<p class="firstline">Returns a collection of zero or more channel resources that match the request criteria.</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>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="list">list(part=None, onBehalfOfContentOwner=None, pageToken=None, categoryId=None, maxResults=None, mine=None, mySubscribers=None, id=None)</code>
  <pre>Returns a collection of zero or more channel resources that match the request criteria.

Args:
  part: string, The part parameter specifies a comma-separated list of one or more channel resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, contentDetails, statistics, and topicDetails.

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)
  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.
  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.
  categoryId: string, The categoryId parameter specifies a YouTube guide category, thereby requesting YouTube channels associated with that category.
  maxResults: integer, The maxResults parameter specifies the maximum number of items that should be returned in the result set.
  mine: boolean, Set this parameter's value to true to instruct the API to only return channels owned by the authenticated user.
  mySubscribers: string, Set this parameter's value to true to retrieve a list of channels that subscribed to the authenticated user's channel.
  id: string, The id parameter specifies a comma-separated list of the YouTube channel ID(s) for the resource(s) that are being retrieved. In a channel resource, the id property specifies the channel's YouTube channel ID.

Returns:
  An object of the form:

    { # A paginated list of channels returned as the response to a youtube.channels.list call.
    "nextPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set.
    "kind": "youtube#channelListResponse", # The type of the API response. For this operation, the value will be youtube#channelListResponse.
    "items": [ # A list of channels that match the request criteria.
      { # A channel resource contains information about a YouTube channel.
        "status": { # JSON template for the status part of a channel. # The status object encapsulates information about the privacy status of the channel.
          "privacyStatus": "A String", # Privacy status of the channel.
        },
        "topicDetails": { # Freebase topic information related to the channel. # The topicDetails object encapsulates information about Freebase topics associated with the channel.
          "topicIds": [ # A list of Freebase topic IDs associated with the channel. You can retrieve information about each topic using the Freebase Topic API.
            "A String",
          ],
        },
        "kind": "youtube#channel", # The type of the API resource. For channel resources, the value will be youtube#channel.
        "statistics": { # Statistics about a channel: number of subscribers, number of videos in the channel, etc. # The statistics object encapsulates statistics for the channel.
          "commentCount": "A String", # The number of comments for the channel.
          "subscriberCount": "A String", # The number of subscribers that the channel has.
          "videoCount": "A String", # The number of videos uploaded to the channel.
          "viewCount": "A String", # The number of times the channel has been viewed.
        },
        "contentDetails": { # Details about the content of a channel. # The contentDetails object encapsulates information about the channel's content.
          "relatedPlaylists": { # The relatedPlaylists object is a map that identifies playlists associated with the channel, such as the channel's uploaded videos or favorite videos. You can retrieve any of these playlists using the playlists.list method.
            "watchLater": "A String", # The ID of the channel's watch later playlist. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list.
            "watchHistory": "A String", # 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.
            "likes": "A String", # 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.
            "favorites": "A String", # 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.
            "uploads": "A String", # 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.
          },
          "googlePlusUserId": "A String", # The googlePlusUserId object identifies the Google+ profile ID associated with this channel.
        },
        "brandingSettings": { # Branding properties of a YouTube channel. # The brandingSettings object encapsulates information about the branding of the channel.
          "image": {
            "largeBrandedBannerImageUrl": { # Represent a property available in different languages.
              "default": "A String",
              "localizeds": [
                { # A localized string.
                  "value": "A String",
                  "language": "A String",
                },
              ],
            },
            "bannerImageUrl": "A String",
            "backgroundImageUrl": { # Represent a property available in different languages.
              "default": "A String",
              "localizeds": [
                { # A localized string.
                  "value": "A String",
                  "language": "A String",
                },
              ],
            },
            "largeBrandedBannerImageImapScript": { # Represent a property available in different languages.
              "default": "A String",
              "localizeds": [
                { # A localized string.
                  "value": "A String",
                  "language": "A String",
                },
              ],
            },
            "bannerMobileImageUrl": "A String",
            "smallBrandedBannerImageUrl": { # Represent a property available in different languages.
              "default": "A String",
              "localizeds": [
                { # A localized string.
                  "value": "A String",
                  "language": "A String",
                },
              ],
            },
            "smallBrandedBannerImageImapScript": { # Represent a property available in different languages.
              "default": "A String",
              "localizeds": [
                { # A localized string.
                  "value": "A String",
                  "language": "A String",
                },
              ],
            },
            "trackingImageUrl": "A String",
            "watchIconImageUrl": "A String",
          },
          "watch": { # Branding properties for the watch.
            "textColor": "A String",
            "featuredPlaylistId": "A String",
            "backgroundColor": "A String",
          },
          "channel": { # Branding properties for the channel view.
            "description": "A String",
            "title": "A String",
            "moderateComments": True or False,
            "showBrowseView": True or False,
            "featuredChannelsTitle": "A String",
            "unsubscribedTrailer": "A String",
            "keywords": "A String",
            "defaultTab": "A String",
            "featuredChannelsUrls": [
              "A String",
            ],
            "trackingAnalyticsAccountId": "A String",
            "showRelatedChannels": True or False,
          },
          "hints": [
            { # A key value for the experimental branding properties.
              "property": "A String",
              "value": "A String",
            },
          ],
        },
        "snippet": { # 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.
          "title": "A String", # The channel's title.
          "description": "A String", # The description of the channel.
          "publishedAt": "A String", # The date and time that the channel was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
          "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.
            "a_key": { # A thumbnail is an image representing a YouTube resource. # Name of the thumbnail, to easily identify it. The set of names is dependent on the resource the thumbnail is for.
              "url": "A String", # The thumbnail image's URL.
              "width": 42, # (Optional) Width of the thumbnail image.
              "height": 42, # (Optional) Height of the thumbnail image.
            },
          },
        },
        "etag": "A String", # The ETag for the channel resource.
        "id": "A String", # The ID that YouTube uses to uniquely identify the channel.
      },
    ],
    "etag": "A String", # The ETag for the response.
    "prevPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the previous page in the result set.
    "pageInfo": { # Paging details for lists of resources, including total number of items available and number of resources returned in a single page. # The pageInfo object encapsulates paging information for the result set.
      "totalResults": 42, # The total number of results in the result set.
      "resultsPerPage": 42, # The number of results included in the API response.
    },
  }</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 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

</body></html>