<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="plusDomains_v1.html">Google+ Domains API</a> . <a href="plusDomains_v1.media.html">media</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#insert">insert(userId, collection, body=None, media_body=None)</a></code></p>
<p class="firstline">Add a new media item to an album. The current upload size limitations are 36MB for a photo and 1GB for a video. Uploads do not count against quota if photos are less than 2048 pixels on their longest side or videos are less than 15 minutes in length.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="insert">insert(userId, collection, body=None, media_body=None)</code>
  <pre>Add a new media item to an album. The current upload size limitations are 36MB for a photo and 1GB for a video. Uploads do not count against quota if photos are less than 2048 pixels on their longest side or videos are less than 15 minutes in length.

Args:
  userId: string, The ID of the user to create the activity on behalf of. (required)
  collection: string, A parameter (required)
    Allowed values
      cloud - Upload the media to share on Google+.
  body: object, The request body.
    The object takes the form of:

{
    "kind": "plus#media", # The type of resource.
    "displayName": "A String", # The display name for this media.
    "exif": { # Exif information of the media item.
      "time": "A String", # The time the media was captured. Formatted as an RFC 3339 timestamp.
    },
    "author": { # The person who uploaded this media.
      "url": "A String", # A link to the author's Google profile.
      "image": { # The author's Google profile image.
        "url": "A String", # The URL of the author's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
      },
      "displayName": "A String", # The author's name.
      "id": "A String", # ID of the author.
    },
    "url": "A String", # The URL for the page that hosts this media.
    "mediaUrl": "A String", # The URL of this photo or video's still image.
    "videoStatus": "A String", # The encoding status of this video. Possible values are:
        # - "UPLOADING" - Not all the video bytes have been received.
        # - "PENDING" - Video not yet processed.
        # - "FAILED" - Video processing failed.
        # - "READY" - A single video stream is playable.
        # - "FINAL" - All video streams are playable.
    "updated": "A String", # The time at which this media was last updated. This includes changes to media metadata. Formatted as an RFC 3339 timestamp.
    "summary": "A String", # A description, or caption, for this media.
    "height": 42, # The height in pixels of the original image.
    "videoDuration": "A String", # The duration in milliseconds of this video.
    "sizeBytes": "A String", # The size in bytes of this video.
    "etag": "A String", # ETag of this response for caching purposes.
    "streams": [ # The list of video streams for this video. There might be several different streams available for a single video, either Flash or MPEG, of various sizes
      {
        "url": "A String", # URL of the video stream.
        "width": 42, # The width, in pixels, of the video resource.
        "type": "A String", # MIME type of the video stream.
        "height": 42, # The height, in pixels, of the video resource.
      },
    ],
    "width": 42, # The width in pixels of the original image.
    "published": "A String", # The time at which this media was uploaded. Formatted as an RFC 3339 timestamp.
    "mediaCreatedTime": "A String", # The time at which this media was originally created in UTC. Formatted as an RFC 3339 timestamp that matches this example: 2010-11-25T14:30:27.655Z
    "id": "A String", # ID of this media, which is generated by the API.
  }

  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.

Returns:
  An object of the form:

    {
      "kind": "plus#media", # The type of resource.
      "displayName": "A String", # The display name for this media.
      "exif": { # Exif information of the media item.
        "time": "A String", # The time the media was captured. Formatted as an RFC 3339 timestamp.
      },
      "author": { # The person who uploaded this media.
        "url": "A String", # A link to the author's Google profile.
        "image": { # The author's Google profile image.
          "url": "A String", # The URL of the author's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
        },
        "displayName": "A String", # The author's name.
        "id": "A String", # ID of the author.
      },
      "url": "A String", # The URL for the page that hosts this media.
      "mediaUrl": "A String", # The URL of this photo or video's still image.
      "videoStatus": "A String", # The encoding status of this video. Possible values are:
          # - "UPLOADING" - Not all the video bytes have been received.
          # - "PENDING" - Video not yet processed.
          # - "FAILED" - Video processing failed.
          # - "READY" - A single video stream is playable.
          # - "FINAL" - All video streams are playable.
      "updated": "A String", # The time at which this media was last updated. This includes changes to media metadata. Formatted as an RFC 3339 timestamp.
      "summary": "A String", # A description, or caption, for this media.
      "height": 42, # The height in pixels of the original image.
      "videoDuration": "A String", # The duration in milliseconds of this video.
      "sizeBytes": "A String", # The size in bytes of this video.
      "etag": "A String", # ETag of this response for caching purposes.
      "streams": [ # The list of video streams for this video. There might be several different streams available for a single video, either Flash or MPEG, of various sizes
        {
          "url": "A String", # URL of the video stream.
          "width": 42, # The width, in pixels, of the video resource.
          "type": "A String", # MIME type of the video stream.
          "height": 42, # The height, in pixels, of the video resource.
        },
      ],
      "width": 42, # The width in pixels of the original image.
      "published": "A String", # The time at which this media was uploaded. Formatted as an RFC 3339 timestamp.
      "mediaCreatedTime": "A String", # The time at which this media was originally created in UTC. Formatted as an RFC 3339 timestamp that matches this example: 2010-11-25T14:30:27.655Z
      "id": "A String", # ID of this media, which is generated by the API.
    }</pre>
</div>

</body></html>