<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.thumbnails.html">thumbnails</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#set">set(videoId, onBehalfOfContentOwner=None, x__xgafv=None, media_body=None, media_mime_type=None)</a></code></p>
<p class="firstline">As this is not an insert in a strict sense (it supports uploading/setting</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="set">set(videoId, onBehalfOfContentOwner=None, x__xgafv=None, media_body=None, media_mime_type=None)</code>
  <pre>As this is not an insert in a strict sense (it supports uploading/setting
of a thumbnail for multiple videos, which doesn&#x27;t result in creation of a
single resource), I use a custom verb here.

Args:
  videoId: string, Returns the Thumbnail with the given video IDs for Stubby or Apiary. (required)
  onBehalfOfContentOwner: string, &lt;strong&gt;Note:&lt;/strong&gt; This parameter is intended exclusively for YouTube
content partners.&lt;br&gt;&lt;br&gt;The
&lt;code&gt;&lt;strong&gt;onBehalfOfContentOwner&lt;/strong&gt;&lt;/code&gt; 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 actual
CMS account that the user authenticates with must be linked to the
specified YouTube content owner.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
  media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.

Returns:
  An object of the form:

    {
    &quot;eventId&quot;: &quot;A String&quot;, # Serialized EventId of the request which produced this response.
    &quot;items&quot;: [ # A list of thumbnails.
      { # Internal representation of thumbnails for a YouTube resource.
        &quot;medium&quot;: { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
          &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
          &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
          &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;width&quot;: 42, # (Optional) Width of the thumbnail image.
          &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
          &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        },
        &quot;default&quot;: { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
          &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
          &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
          &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;width&quot;: 42, # (Optional) Width of the thumbnail image.
          &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
          &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;width&quot;: 42, # (Optional) Width of the thumbnail image.
          &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
          &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        },
      },
    ],
    &quot;visitorId&quot;: &quot;A String&quot;, # The &lt;code&gt;visitorId&lt;/code&gt; identifies the visitor.
    &quot;kind&quot;: &quot;youtube#thumbnailSetResponse&quot;, # Identifies what kind of resource this is. Value: the fixed string
        # &lt;code&gt;&quot;youtube#thumbnailSetResponse&quot;&lt;/code&gt;.
    &quot;etag&quot;: &quot;A String&quot;, # Etag of this resource.
  }</pre>
</div>

</body></html>