<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.liveStreams.html">liveStreams</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#delete">delete(id)</a></code></p>
<p class="firstline">Delete a live stream.</p>
<p class="toc_element">
  <code><a href="#insert">insert(part, body)</a></code></p>
<p class="firstline">Insert a YouTube live stream.</p>
<p class="toc_element">
  <code><a href="#list">list(part, onBehalfOf=None, pageToken=None, maxResults=None, mine=None, id=None)</a></code></p>
<p class="firstline">Browse the YouTube live stream collection.</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=None, body)</a></code></p>
<p class="firstline">Update a YouTube live stream.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="delete">delete(id)</code>
  <pre>Delete a live stream.

Args:
  id: string, The id parameter specifies the YouTube live stream ID for the resource that is being deleted. (required)
</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(part, body)</code>
  <pre>Insert a YouTube live stream.

Args:
  part: string, Live stream parts to include in the returned response. Valid values are: id, snippet, cdn, status. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # A live stream describes a live ingestion point.
    "status": { # Brief description of the live stream status. # Status of the live stream.
      "streamStatus": "A String", # The status of the stream.
    },
    "kind": "youtube#liveStream", # The type of this API resource.
    "cdn": { # Brief description of the live stream cdn settings. # Cdn settings of the live stream.
      "ingestionType": "A String", # The live stream ingestion type. Allowed values: rtmp, http, multicast.
      "ingestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting an RTMP or an HTTP stream.
        "backupIngestionAddress": "A String", # The backup address of the inbound data.
        "streamName": "A String", # Ingestion stream name.
        "ingestionAddress": "A String", # The address of the inbound data.
      },
      "multicastIngestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting a multicast stream.
        "multicastAddress": "A String", # The IP address of the multicast data.
      },
      "format": "A String", # The format of the inbound data. Allowed values: 240p, 360p, 480p, 720p, 1080p, webm_360p, multicast_qcif, multicast_240p, multicast_360p, multicast_480p, multicast_720p, multicast_1080p.
    },
    "snippet": { # Basic details about a live stream, including title and description. # Basic details about the live stream.
      "channelId": "A String", # Channel publishing the live stream.
      "description": "A String", # Description of the live stream.
      "publishedAt": "A String", # Date and time the live stream was published at.
      "title": "A String", # Title of the live stream.
    },
    "etag": "A String", # The eTag of the stream.
    "id": "A String", # The unique id of the stream.
  }


Returns:
  An object of the form:

    { # A live stream describes a live ingestion point.
      "status": { # Brief description of the live stream status. # Status of the live stream.
        "streamStatus": "A String", # The status of the stream.
      },
      "kind": "youtube#liveStream", # The type of this API resource.
      "cdn": { # Brief description of the live stream cdn settings. # Cdn settings of the live stream.
        "ingestionType": "A String", # The live stream ingestion type. Allowed values: rtmp, http, multicast.
        "ingestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting an RTMP or an HTTP stream.
          "backupIngestionAddress": "A String", # The backup address of the inbound data.
          "streamName": "A String", # Ingestion stream name.
          "ingestionAddress": "A String", # The address of the inbound data.
        },
        "multicastIngestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting a multicast stream.
          "multicastAddress": "A String", # The IP address of the multicast data.
        },
        "format": "A String", # The format of the inbound data. Allowed values: 240p, 360p, 480p, 720p, 1080p, webm_360p, multicast_qcif, multicast_240p, multicast_360p, multicast_480p, multicast_720p, multicast_1080p.
      },
      "snippet": { # Basic details about a live stream, including title and description. # Basic details about the live stream.
        "channelId": "A String", # Channel publishing the live stream.
        "description": "A String", # Description of the live stream.
        "publishedAt": "A String", # Date and time the live stream was published at.
        "title": "A String", # Title of the live stream.
      },
      "etag": "A String", # The eTag of the stream.
      "id": "A String", # The unique id of the stream.
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(part, onBehalfOf=None, pageToken=None, maxResults=None, mine=None, id=None)</code>
  <pre>Browse the YouTube live stream collection.

Args:
  part: string, Live stream parts to include in the returned response. Valid values are: id, snippet, cdn, status. (required)
  onBehalfOf: string, ID of the Google+ Page for the channel that the request is to be on behalf of
  pageToken: string, Token for the page selection.
  maxResults: integer, Maximum number of results to return
  mine: boolean, Filter to only live streams owned by authenticated user.
  id: string, IDs of the live streams to be returned.

Returns:
  An object of the form:

    { # List of live streams.
    "nextPageToken": "A String", # The token that can be used as the value of the {@code pageInfo} parameter to retrieve the next page in the result set.
    "kind": "youtube#liveStreamList", # The type of this API resource.
    "items": [ # A list of live streams that match the request criteria.
      { # A live stream describes a live ingestion point.
          "status": { # Brief description of the live stream status. # Status of the live stream.
            "streamStatus": "A String", # The status of the stream.
          },
          "kind": "youtube#liveStream", # The type of this API resource.
          "cdn": { # Brief description of the live stream cdn settings. # Cdn settings of the live stream.
            "ingestionType": "A String", # The live stream ingestion type. Allowed values: rtmp, http, multicast.
            "ingestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting an RTMP or an HTTP stream.
              "backupIngestionAddress": "A String", # The backup address of the inbound data.
              "streamName": "A String", # Ingestion stream name.
              "ingestionAddress": "A String", # The address of the inbound data.
            },
            "multicastIngestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting a multicast stream.
              "multicastAddress": "A String", # The IP address of the multicast data.
            },
            "format": "A String", # The format of the inbound data. Allowed values: 240p, 360p, 480p, 720p, 1080p, webm_360p, multicast_qcif, multicast_240p, multicast_360p, multicast_480p, multicast_720p, multicast_1080p.
          },
          "snippet": { # Basic details about a live stream, including title and description. # Basic details about the live stream.
            "channelId": "A String", # Channel publishing the live stream.
            "description": "A String", # Description of the live stream.
            "publishedAt": "A String", # Date and time the live stream was published at.
            "title": "A String", # Title of the live stream.
          },
          "etag": "A String", # The eTag of the stream.
          "id": "A String", # The unique id of the stream.
        },
    ],
    "etag": "A String", # The eTag of the chart.
    "prevPageToken": "A String", # The token that can be used as the value of the {@code pageInfo} 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 {@code 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>

<div class="method">
    <code class="details" id="update">update(part=None, body)</code>
  <pre>Update a YouTube live stream.

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 part names that you can include in the parameter value are id, snippet, cdn, status. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # A live stream describes a live ingestion point.
    "status": { # Brief description of the live stream status. # Status of the live stream.
      "streamStatus": "A String", # The status of the stream.
    },
    "kind": "youtube#liveStream", # The type of this API resource.
    "cdn": { # Brief description of the live stream cdn settings. # Cdn settings of the live stream.
      "ingestionType": "A String", # The live stream ingestion type. Allowed values: rtmp, http, multicast.
      "ingestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting an RTMP or an HTTP stream.
        "backupIngestionAddress": "A String", # The backup address of the inbound data.
        "streamName": "A String", # Ingestion stream name.
        "ingestionAddress": "A String", # The address of the inbound data.
      },
      "multicastIngestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting a multicast stream.
        "multicastAddress": "A String", # The IP address of the multicast data.
      },
      "format": "A String", # The format of the inbound data. Allowed values: 240p, 360p, 480p, 720p, 1080p, webm_360p, multicast_qcif, multicast_240p, multicast_360p, multicast_480p, multicast_720p, multicast_1080p.
    },
    "snippet": { # Basic details about a live stream, including title and description. # Basic details about the live stream.
      "channelId": "A String", # Channel publishing the live stream.
      "description": "A String", # Description of the live stream.
      "publishedAt": "A String", # Date and time the live stream was published at.
      "title": "A String", # Title of the live stream.
    },
    "etag": "A String", # The eTag of the stream.
    "id": "A String", # The unique id of the stream.
  }


Returns:
  An object of the form:

    { # A live stream describes a live ingestion point.
      "status": { # Brief description of the live stream status. # Status of the live stream.
        "streamStatus": "A String", # The status of the stream.
      },
      "kind": "youtube#liveStream", # The type of this API resource.
      "cdn": { # Brief description of the live stream cdn settings. # Cdn settings of the live stream.
        "ingestionType": "A String", # The live stream ingestion type. Allowed values: rtmp, http, multicast.
        "ingestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting an RTMP or an HTTP stream.
          "backupIngestionAddress": "A String", # The backup address of the inbound data.
          "streamName": "A String", # Ingestion stream name.
          "ingestionAddress": "A String", # The address of the inbound data.
        },
        "multicastIngestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting a multicast stream.
          "multicastAddress": "A String", # The IP address of the multicast data.
        },
        "format": "A String", # The format of the inbound data. Allowed values: 240p, 360p, 480p, 720p, 1080p, webm_360p, multicast_qcif, multicast_240p, multicast_360p, multicast_480p, multicast_720p, multicast_1080p.
      },
      "snippet": { # Basic details about a live stream, including title and description. # Basic details about the live stream.
        "channelId": "A String", # Channel publishing the live stream.
        "description": "A String", # Description of the live stream.
        "publishedAt": "A String", # Date and time the live stream was published at.
        "title": "A String", # Title of the live stream.
      },
      "etag": "A String", # The eTag of the stream.
      "id": "A String", # The unique id of the stream.
    }</pre>
</div>

</body></html>