<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",
      },
      "superChatDetails": { # Details about the Super Chat event, this is only set if the type is 'superChatEvent'.
        "tier": 42, # The tier in which the amount belongs. Lower amounts belong to lower tiers. The lowest tier is 1.
        "currency": "A String", # The currency in which the purchase 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 Super Chat event.
        "amountMicros": "A String", # The amount purchased by the user, in micros (1,750,000 micros = 1.75).
      },
      "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.
      },
      "superStickerDetails": { # Details about the Super Sticker event, this is only set if the type is 'superStickerEvent'.
        "tier": 42, # The tier in which the amount belongs. Lower amounts belong to lower tiers. The lowest tier is 1.
        "currency": "A String", # The currency in which the purchase was made.
        "amountDisplayString": "A String", # A rendered string that displays the fund amount and currency to the user.
        "superStickerMetadata": { # Information about the Super Sticker.
          "altText": "A String", # Internationalized alt text that describes the sticker image and any animation associated with it.
          "altTextLanguage": "A String", # Specifies the localization language in which the alt text is returned.
          "stickerId": "A String", # Unique identifier of the Super Sticker. This is a shorter form of the alt_text that includes pack name and a recognizable characteristic of the sticker.
        },
        "amountMicros": "A String", # The amount purchased by the user, in micros (1,750,000 micros = 1.75).
      },
      "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 superChatEvent - the user that made the purchase
      "pollEditedDetails": {
        "items": [
          {
            "itemId": "A String",
            "description": "A String", # Plain text description of the item.
          },
        ],
        "prompt": "A String",
        "id": "A String",
      },
      "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",
      },
      "pollVotedDetails": {
        "itemId": "A String", # The poll item the user chose.
        "pollId": "A String", # The poll the user voted on.
      },
      "pollOpenedDetails": {
        "items": [
          {
            "itemId": "A String",
            "description": "A String", # Plain text description of the item.
          },
        ],
        "prompt": "A String",
        "id": "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.
      "pollClosedDetails": {
        "pollId": "A String", # The id of the poll that was closed.
      },
    },
    "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",
        },
        "superChatDetails": { # Details about the Super Chat event, this is only set if the type is 'superChatEvent'.
          "tier": 42, # The tier in which the amount belongs. Lower amounts belong to lower tiers. The lowest tier is 1.
          "currency": "A String", # The currency in which the purchase 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 Super Chat event.
          "amountMicros": "A String", # The amount purchased by the user, in micros (1,750,000 micros = 1.75).
        },
        "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.
        },
        "superStickerDetails": { # Details about the Super Sticker event, this is only set if the type is 'superStickerEvent'.
          "tier": 42, # The tier in which the amount belongs. Lower amounts belong to lower tiers. The lowest tier is 1.
          "currency": "A String", # The currency in which the purchase was made.
          "amountDisplayString": "A String", # A rendered string that displays the fund amount and currency to the user.
          "superStickerMetadata": { # Information about the Super Sticker.
            "altText": "A String", # Internationalized alt text that describes the sticker image and any animation associated with it.
            "altTextLanguage": "A String", # Specifies the localization language in which the alt text is returned.
            "stickerId": "A String", # Unique identifier of the Super Sticker. This is a shorter form of the alt_text that includes pack name and a recognizable characteristic of the sticker.
          },
          "amountMicros": "A String", # The amount purchased by the user, in micros (1,750,000 micros = 1.75).
        },
        "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 superChatEvent - the user that made the purchase
        "pollEditedDetails": {
          "items": [
            {
              "itemId": "A String",
              "description": "A String", # Plain text description of the item.
            },
          ],
          "prompt": "A String",
          "id": "A String",
        },
        "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",
        },
        "pollVotedDetails": {
          "itemId": "A String", # The poll item the user chose.
          "pollId": "A String", # The poll the user voted on.
        },
        "pollOpenedDetails": {
          "items": [
            {
              "itemId": "A String",
              "description": "A String", # Plain text description of the item.
            },
          ],
          "prompt": "A String",
          "id": "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.
        "pollClosedDetails": {
          "pollId": "A String", # The id of the poll that was closed.
        },
      },
      "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",
            },
            "superChatDetails": { # Details about the Super Chat event, this is only set if the type is 'superChatEvent'.
              "tier": 42, # The tier in which the amount belongs. Lower amounts belong to lower tiers. The lowest tier is 1.
              "currency": "A String", # The currency in which the purchase 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 Super Chat event.
              "amountMicros": "A String", # The amount purchased by the user, in micros (1,750,000 micros = 1.75).
            },
            "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.
            },
            "superStickerDetails": { # Details about the Super Sticker event, this is only set if the type is 'superStickerEvent'.
              "tier": 42, # The tier in which the amount belongs. Lower amounts belong to lower tiers. The lowest tier is 1.
              "currency": "A String", # The currency in which the purchase was made.
              "amountDisplayString": "A String", # A rendered string that displays the fund amount and currency to the user.
              "superStickerMetadata": { # Information about the Super Sticker.
                "altText": "A String", # Internationalized alt text that describes the sticker image and any animation associated with it.
                "altTextLanguage": "A String", # Specifies the localization language in which the alt text is returned.
                "stickerId": "A String", # Unique identifier of the Super Sticker. This is a shorter form of the alt_text that includes pack name and a recognizable characteristic of the sticker.
              },
              "amountMicros": "A String", # The amount purchased by the user, in micros (1,750,000 micros = 1.75).
            },
            "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 superChatEvent - the user that made the purchase
            "pollEditedDetails": {
              "items": [
                {
                  "itemId": "A String",
                  "description": "A String", # Plain text description of the item.
                },
              ],
              "prompt": "A String",
              "id": "A String",
            },
            "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",
            },
            "pollVotedDetails": {
              "itemId": "A String", # The poll item the user chose.
              "pollId": "A String", # The poll the user voted on.
            },
            "pollOpenedDetails": {
              "items": [
                {
                  "itemId": "A String",
                  "description": "A String", # Plain text description of the item.
                },
              ],
              "prompt": "A String",
              "id": "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.
            "pollClosedDetails": {
              "pollId": "A String", # The id of the poll that was closed.
            },
          },
          "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>