<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.liveChatMessages.html">liveChatMessages</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#delete">delete(id)</a></code></p>
<p class="firstline">Deletes a chat message.</p>
<p class="toc_element">
  <code><a href="#insert">insert(part, body)</a></code></p>
<p class="firstline">Adds a message to a live chat.</p>
<p class="toc_element">
  <code><a href="#list">list(liveChatId, part, profileImageSize=None, hl=None, maxResults=None, pageToken=None)</a></code></p>
<p class="firstline">Lists live chat messages for a specific chat.</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="delete">delete(id)</code>
  <pre>Deletes a chat message.

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

<div class="method">
    <code class="details" id="insert">insert(part, body)</code>
  <pre>Adds a message to a live chat.

Args:
  part: string, The part parameter serves two purposes. It identifies the properties that the write operation will set as well as the properties that the API response will include. Set the parameter value to snippet. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # A liveChatMessage resource represents a chat message in a YouTube Live Chat.
    "snippet": { # The snippet object contains basic details about the message.
      "displayMessage": "A String", # Contains a string that can be displayed to the user. If this field is not present the message is silent, at the moment only messages of type TOMBSTONE and CHAT_ENDED_EVENT are silent.
      "messageRetractedDetails": {
        "retractedMessageId": "A String",
      },
      "fanFundingEventDetails": { # Details about the funding event, this is only set if the type is 'fanFundingEvent'.
        "currency": "A String", # The currency in which the fund was made.
        "amountDisplayString": "A String", # A rendered string that displays the fund amount and currency to the user.
        "userComment": "A String", # The comment added by the user to this fan funding event.
        "amountMicros": "A String", # The amount of the fund.
      },
      "hasDisplayContent": True or False, # Whether the message has display content that should be displayed to users.
      "publishedAt": "A String", # The date and time when the message was orignally published. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
      "userBannedDetails": {
        "banDurationSeconds": "A String", # The duration of the ban. This property is only present if the banType is temporary.
        "bannedUserDetails": { # The details of the user that was banned.
          "channelId": "A String", # The YouTube channel ID.
          "displayName": "A String", # The channel's display name.
          "profileImageUrl": "A String", # The channels's avatar URL.
          "channelUrl": "A String", # The channel's URL.
        },
        "banType": "A String", # The type of ban.
      },
      "liveChatId": "A String",
      "authorChannelId": "A String", # The ID of the user that authored this message, this field is not always filled. textMessageEvent - the user that wrote the message fanFundingEvent - the user that funded the broadcast newSponsorEvent - the user that just became a sponsor messageDeletedEvent - the moderator that took the action messageRetractedEvent - the author that retracted their message userBannedEvent - the moderator that took the action
      "textMessageDetails": { # Details about the text message, this is only set if the type is 'textMessageEvent'.
        "messageText": "A String", # The user's message.
      },
      "messageDeletedDetails": {
        "deletedMessageId": "A String",
      },
      "type": "A String", # The type of message, this will always be present, it determines the contents of the message as well as which fields will be present.
    },
    "kind": "youtube#liveChatMessage", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveChatMessage".
    "etag": "A String", # Etag of this resource.
    "authorDetails": { # The authorDetails object contains basic details about the user that posted this message.
      "displayName": "A String", # The channel's display name.
      "isChatModerator": True or False, # Whether the author is a moderator of the live chat.
      "channelId": "A String", # The YouTube channel ID.
      "isChatSponsor": True or False, # Whether the author is a sponsor of the live chat.
      "profileImageUrl": "A String", # The channels's avatar URL.
      "isChatOwner": True or False, # Whether the author is the owner of the live chat.
      "isVerified": True or False, # Whether the author's identity has been verified by YouTube.
      "channelUrl": "A String", # The channel's URL.
    },
    "id": "A String", # The ID that YouTube assigns to uniquely identify the message.
  }


Returns:
  An object of the form:

    { # A liveChatMessage resource represents a chat message in a YouTube Live Chat.
      "snippet": { # The snippet object contains basic details about the message.
        "displayMessage": "A String", # Contains a string that can be displayed to the user. If this field is not present the message is silent, at the moment only messages of type TOMBSTONE and CHAT_ENDED_EVENT are silent.
        "messageRetractedDetails": {
          "retractedMessageId": "A String",
        },
        "fanFundingEventDetails": { # Details about the funding event, this is only set if the type is 'fanFundingEvent'.
          "currency": "A String", # The currency in which the fund was made.
          "amountDisplayString": "A String", # A rendered string that displays the fund amount and currency to the user.
          "userComment": "A String", # The comment added by the user to this fan funding event.
          "amountMicros": "A String", # The amount of the fund.
        },
        "hasDisplayContent": True or False, # Whether the message has display content that should be displayed to users.
        "publishedAt": "A String", # The date and time when the message was orignally published. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
        "userBannedDetails": {
          "banDurationSeconds": "A String", # The duration of the ban. This property is only present if the banType is temporary.
          "bannedUserDetails": { # The details of the user that was banned.
            "channelId": "A String", # The YouTube channel ID.
            "displayName": "A String", # The channel's display name.
            "profileImageUrl": "A String", # The channels's avatar URL.
            "channelUrl": "A String", # The channel's URL.
          },
          "banType": "A String", # The type of ban.
        },
        "liveChatId": "A String",
        "authorChannelId": "A String", # The ID of the user that authored this message, this field is not always filled. textMessageEvent - the user that wrote the message fanFundingEvent - the user that funded the broadcast newSponsorEvent - the user that just became a sponsor messageDeletedEvent - the moderator that took the action messageRetractedEvent - the author that retracted their message userBannedEvent - the moderator that took the action
        "textMessageDetails": { # Details about the text message, this is only set if the type is 'textMessageEvent'.
          "messageText": "A String", # The user's message.
        },
        "messageDeletedDetails": {
          "deletedMessageId": "A String",
        },
        "type": "A String", # The type of message, this will always be present, it determines the contents of the message as well as which fields will be present.
      },
      "kind": "youtube#liveChatMessage", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveChatMessage".
      "etag": "A String", # Etag of this resource.
      "authorDetails": { # The authorDetails object contains basic details about the user that posted this message.
        "displayName": "A String", # The channel's display name.
        "isChatModerator": True or False, # Whether the author is a moderator of the live chat.
        "channelId": "A String", # The YouTube channel ID.
        "isChatSponsor": True or False, # Whether the author is a sponsor of the live chat.
        "profileImageUrl": "A String", # The channels's avatar URL.
        "isChatOwner": True or False, # Whether the author is the owner of the live chat.
        "isVerified": True or False, # Whether the author's identity has been verified by YouTube.
        "channelUrl": "A String", # The channel's URL.
      },
      "id": "A String", # The ID that YouTube assigns to uniquely identify the message.
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(liveChatId, part, profileImageSize=None, hl=None, maxResults=None, pageToken=None)</code>
  <pre>Lists live chat messages for a specific chat.

Args:
  liveChatId: string, The liveChatId parameter specifies the ID of the chat whose messages will be returned. (required)
  part: string, The part parameter specifies the liveChatComment resource parts that the API response will include. Supported values are id and snippet. (required)
  profileImageSize: integer, The profileImageSize parameter specifies the size of the user profile pictures that should be returned in the result set. Default: 88.
  hl: string, The hl parameter instructs the API to retrieve localized resource metadata for a specific application language that the YouTube website supports. The parameter value must be a language code included in the list returned by the i18nLanguages.list method.

If localized resource details are available in that language, the resource's snippet.localized object will contain the localized values. However, if localized details are not available, the snippet.localized object will contain resource details in the resource's default language.
  maxResults: integer, The maxResults parameter specifies the maximum number of messages that should be returned in the result set.
  pageToken: string, The pageToken parameter identifies a specific page in the result set that should be returned. In an API response, the nextPageToken property identify other pages that could be retrieved.

Returns:
  An object of the form:

    {
    "eventId": "A String", # Serialized EventId of the request which produced this response.
    "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#liveChatMessageListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveChatMessageListResponse".
    "visitorId": "A String", # The visitorId identifies the visitor.
    "items": [ # A list of live chat messages.
      { # A liveChatMessage resource represents a chat message in a YouTube Live Chat.
          "snippet": { # The snippet object contains basic details about the message.
            "displayMessage": "A String", # Contains a string that can be displayed to the user. If this field is not present the message is silent, at the moment only messages of type TOMBSTONE and CHAT_ENDED_EVENT are silent.
            "messageRetractedDetails": {
              "retractedMessageId": "A String",
            },
            "fanFundingEventDetails": { # Details about the funding event, this is only set if the type is 'fanFundingEvent'.
              "currency": "A String", # The currency in which the fund was made.
              "amountDisplayString": "A String", # A rendered string that displays the fund amount and currency to the user.
              "userComment": "A String", # The comment added by the user to this fan funding event.
              "amountMicros": "A String", # The amount of the fund.
            },
            "hasDisplayContent": True or False, # Whether the message has display content that should be displayed to users.
            "publishedAt": "A String", # The date and time when the message was orignally published. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
            "userBannedDetails": {
              "banDurationSeconds": "A String", # The duration of the ban. This property is only present if the banType is temporary.
              "bannedUserDetails": { # The details of the user that was banned.
                "channelId": "A String", # The YouTube channel ID.
                "displayName": "A String", # The channel's display name.
                "profileImageUrl": "A String", # The channels's avatar URL.
                "channelUrl": "A String", # The channel's URL.
              },
              "banType": "A String", # The type of ban.
            },
            "liveChatId": "A String",
            "authorChannelId": "A String", # The ID of the user that authored this message, this field is not always filled. textMessageEvent - the user that wrote the message fanFundingEvent - the user that funded the broadcast newSponsorEvent - the user that just became a sponsor messageDeletedEvent - the moderator that took the action messageRetractedEvent - the author that retracted their message userBannedEvent - the moderator that took the action
            "textMessageDetails": { # Details about the text message, this is only set if the type is 'textMessageEvent'.
              "messageText": "A String", # The user's message.
            },
            "messageDeletedDetails": {
              "deletedMessageId": "A String",
            },
            "type": "A String", # The type of message, this will always be present, it determines the contents of the message as well as which fields will be present.
          },
          "kind": "youtube#liveChatMessage", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveChatMessage".
          "etag": "A String", # Etag of this resource.
          "authorDetails": { # The authorDetails object contains basic details about the user that posted this message.
            "displayName": "A String", # The channel's display name.
            "isChatModerator": True or False, # Whether the author is a moderator of the live chat.
            "channelId": "A String", # The YouTube channel ID.
            "isChatSponsor": True or False, # Whether the author is a sponsor of the live chat.
            "profileImageUrl": "A String", # The channels's avatar URL.
            "isChatOwner": True or False, # Whether the author is the owner of the live chat.
            "isVerified": True or False, # Whether the author's identity has been verified by YouTube.
            "channelUrl": "A String", # The channel's URL.
          },
          "id": "A String", # The ID that YouTube assigns to uniquely identify the message.
        },
    ],
    "tokenPagination": { # Stub token pagination template to suppress results.
    },
    "etag": "A String", # Etag of this resource.
    "pollingIntervalMillis": 42, # The amount of time the client should wait before polling again.
    "pageInfo": { # Paging details for lists of resources, including total number of items available and number of resources returned in a single page.
      "totalResults": 42, # The total number of results in the result set.
      "resultsPerPage": 42, # The number of results included in the API response.
    },
    "offlineAt": "A String", # The date and time when the underlying stream went offline. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
  }</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>