<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.search.html">search</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, videoEmbeddable=None, channelType=None, forDeveloper=None, order=None, eventType=None, type=None, forMine=None, videoSyndicated=None, forContentOwner=None, publishedAfter=None, topicId=None, videoDimension=None, regionCode=None, videoCategoryId=None, relatedToVideoId=None, onBehalfOfContentOwner=None, videoCaption=None, videoLicense=None, relevanceLanguage=None, videoType=None, pageToken=None, safeSearch=None, q=None, maxResults=None, videoDefinition=None, channelId=None, locationRadius=None, location=None, publishedBefore=None, videoDuration=None, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves a list of search resources</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="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="list">list(part, videoEmbeddable=None, channelType=None, forDeveloper=None, order=None, eventType=None, type=None, forMine=None, videoSyndicated=None, forContentOwner=None, publishedAfter=None, topicId=None, videoDimension=None, regionCode=None, videoCategoryId=None, relatedToVideoId=None, onBehalfOfContentOwner=None, videoCaption=None, videoLicense=None, relevanceLanguage=None, videoType=None, pageToken=None, safeSearch=None, q=None, maxResults=None, videoDefinition=None, channelId=None, locationRadius=None, location=None, publishedBefore=None, videoDuration=None, x__xgafv=None)</code>
  <pre>Retrieves a list of search resources

Args:
  part: string, The *part* parameter specifies a comma-separated list of one or more search resource properties that the API response will include. Set the parameter value to snippet. (required) (repeated)
  videoEmbeddable: string, Filter on embeddable videos.
    Allowed values
      videoEmbeddableUnspecified - 
      any - Return all videos, embeddable or not.
      true - Only retrieve embeddable videos.
  channelType: string, Add a filter on the channel search.
    Allowed values
      channelTypeUnspecified - 
      any - Return all channels.
      show - Only retrieve shows.
  forDeveloper: boolean, Restrict the search to only retrieve videos uploaded using the project id of the authenticated user.
  order: string, Sort order of the results.
    Allowed values
      searchSortUnspecified - 
      date - Resources are sorted in reverse chronological order based on the date they were created.
      rating - Resources are sorted from highest to lowest rating.
      viewCount - Resources are sorted from highest to lowest number of views.
      relevance - Resources are sorted based on their relevance to the search query. This is the default value for this parameter.
      title - Resources are sorted alphabetically by title.
      videoCount - Channels are sorted in descending order of their number of uploaded videos.
  eventType: string, Filter on the livestream status of the videos.
    Allowed values
      none - 
      upcoming - The live broadcast is upcoming.
      live - The live broadcast is active.
      completed - The live broadcast has been completed.
  type: string, Restrict results to a particular set of resource types from One Platform. (repeated)
  forMine: boolean, Search for the private videos of the authenticated user.
  videoSyndicated: string, Filter on syndicated videos.
    Allowed values
      videoSyndicatedUnspecified - 
      any - Return all videos, syndicated or not.
      true - Only retrieve syndicated videos.
  forContentOwner: boolean, Search owned by a content owner.
  publishedAfter: string, Filter on resources published after this date.
  topicId: string, Restrict results to a particular topic.
  videoDimension: string, Filter on 3d videos.
    Allowed values
      any - 
      2d - Restrict search results to exclude 3D videos.
      3d - Restrict search results to only include 3D videos.
  regionCode: string, Display the content as seen by viewers in this country.
  videoCategoryId: string, Filter on videos in a specific category.
  relatedToVideoId: string, Search related to a resource.
  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.
  videoCaption: string, Filter on the presence of captions on the videos.
    Allowed values
      videoCaptionUnspecified - 
      any - Do not filter results based on caption availability.
      closedCaption - Only include videos that have captions.
      none - Only include videos that do not have captions.
  videoLicense: string, Filter on the license of the videos.
    Allowed values
      any - Return all videos, regardless of which license they have, that match the query parameters.
      youtube - Only return videos that have the standard YouTube license.
      creativeCommon - Only return videos that have a Creative Commons license. Users can reuse videos with this license in other videos that they create. Learn more.
  relevanceLanguage: string, Return results relevant to this language.
  videoType: string, Filter on videos of a specific type.
    Allowed values
      videoTypeUnspecified - 
      any - Return all videos.
      movie - Only retrieve movies.
      episode - Only retrieve episodes of shows.
  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.
  safeSearch: string, Indicates whether the search results should include restricted content as well as standard content.
    Allowed values
      safeSearchSettingUnspecified - 
      none - YouTube will not filter the search result set.
      moderate - YouTube will filter some content from search results and, at the least, will filter content that is restricted in your locale. Based on their content, search results could be removed from search results or demoted in search results. This is the default parameter value.
      strict - YouTube will try to exclude all restricted content from the search result set. Based on their content, search results could be removed from search results or demoted in search results.
  q: string, Textual search terms to match.
  maxResults: integer, The *maxResults* parameter specifies the maximum number of items that should be returned in the result set.
  videoDefinition: string, Filter on the definition of the videos.
    Allowed values
      any - Return all videos, regardless of their resolution.
      standard - Only retrieve videos in standard definition.
      high - Only retrieve HD videos.
  channelId: string, Filter on resources belonging to this channelId.
  locationRadius: string, Filter on distance from the location (specified above).
  location: string, Filter on location of the video
  publishedBefore: string, Filter on resources published before this date.
  videoDuration: string, Filter on the duration of the videos.
    Allowed values
      videoDurationUnspecified - 
      any - Do not filter video search results based on their duration. This is the default value.
      short - Only include videos that are less than four minutes long.
      medium - Only include videos that are between four and 20 minutes long (inclusive).
      long - Only include videos longer than 20 minutes.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &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;etag&quot;: &quot;A String&quot;, # Etag of this resource.
    &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;eventId&quot;: &quot;A String&quot;, # Serialized EventId of the request which produced this response.
    &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;regionCode&quot;: &quot;A String&quot;,
    &quot;items&quot;: [ # Pagination information for token pagination.
      { # A search result contains information about a YouTube video, channel, or playlist that matches the search parameters specified in an API request. While a search result points to a uniquely identifiable resource, like a video, it does not have its own persistent data.
        &quot;etag&quot;: &quot;A String&quot;, # Etag of this resource.
        &quot;snippet&quot;: { # Basic details about a search result, including title, description and thumbnails of the item referenced by the search result. # The snippet object contains basic details about a search result, such as its title or description. For example, if the search result is a video, then the title will be the video&#x27;s title and the description will be the video&#x27;s description.
          &quot;publishedAt&quot;: &quot;A String&quot;, # The creation date and time of the resource that the search result identifies. The value is specified in ISO 8601 format.
          &quot;thumbnails&quot;: { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the search result. 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.
            &quot;default&quot;: { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
              &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
              &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
              &quot;height&quot;: 42, # (Optional) Height 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;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
              &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
              &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
            },
            &quot;medium&quot;: { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
              &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
              &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
              &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
            },
            &quot;standard&quot;: { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
              &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
              &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
              &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
            },
            &quot;high&quot;: { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
              &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
              &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
              &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
            },
          },
          &quot;channelId&quot;: &quot;A String&quot;, # The value that YouTube uses to uniquely identify the channel that published the resource that the search result identifies.
          &quot;channelTitle&quot;: &quot;A String&quot;, # The title of the channel that published the resource that the search result identifies.
          &quot;title&quot;: &quot;A String&quot;, # The title of the search result.
          &quot;description&quot;: &quot;A String&quot;, # A description of the search result.
          &quot;liveBroadcastContent&quot;: &quot;A String&quot;, # It indicates if the resource (video or channel) has upcoming/active live broadcast content. Or it&#x27;s &quot;none&quot; if there is not any upcoming/active live broadcasts.
        },
        &quot;id&quot;: { # A resource id is a generic reference that points to another YouTube resource. # The id object contains information that can be used to uniquely identify the resource that matches the search request.
          &quot;videoId&quot;: &quot;A String&quot;, # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
          &quot;kind&quot;: &quot;A String&quot;, # The type of the API resource.
          &quot;playlistId&quot;: &quot;A String&quot;, # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
          &quot;channelId&quot;: &quot;A String&quot;, # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
        },
        &quot;kind&quot;: &quot;youtube#searchResult&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;youtube#searchResult&quot;.
      },
    ],
    &quot;tokenPagination&quot;: { # Stub token pagination template to suppress results.
    },
    &quot;visitorId&quot;: &quot;A String&quot;, # The visitorId identifies the visitor.
    &quot;kind&quot;: &quot;youtube#searchListResponse&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;youtube#searchListResponse&quot;.
  }</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>

</body></html>