Ресурс liveChatMessage представляет собой сообщение в чате YouTube. Ресурс может содержать информацию о нескольких типах сообщений, включая недавно опубликованные текстовые сообщения или мероприятия по сбору средств от фанатов.
 Функция живого чата включена по умолчанию для прямых трансляций и доступна во время прямой трансляции. (После окончания мероприятия чат для этого мероприятия становится недоступным.)
Методы
 API поддерживает следующие методы для ресурсов liveChatMessages :
- list
- Выводит список сообщений чата в режиме реального времени для конкретного чата. Попробуйте прямо сейчас .
- streamList
- Обеспечивает потоковое соединение с сервером для получения сообщений чата в режиме реального времени для конкретного чата с низкой задержкой. Попробуйте прямо сейчас .
- insert
- Добавляет сообщение или опрос в чат. Попробуйте прямо сейчас .
- transition
- Изменяет состояние живого сообщения. Попробуйте прямо сейчас .
- delete
- Удаляет сообщение чата. API-запрос должен быть авторизован владельцем канала или модератором чата. Попробуйте сейчас .
Представление ресурсов
 Следующая структура JSON показывает формат ресурса liveChatMessages :
{
  "kind": "youtube#liveChatMessage",
  "etag": etag,
  "id": string,
  "snippet": {
    "type": string,
    "liveChatId": string,
    "authorChannelId": string,
    "publishedAt": datetime,
    "hasDisplayContent": boolean,
    "displayMessage": string,
    "fanFundingEventDetails": {
      "amountMicros": unsigned long,
      "currency": string,
      "amountDisplayString": string,
      "userComment": string
    },
    "textMessageDetails": {
      "messageText": string
    },
    "messageDeletedDetails": {
      "deletedMessageId": string
    },
    "userBannedDetails": {
      "bannedUserDetails": {
        "channelId": string,
        "channelUrl": string,
        "displayName": string,
        "profileImageUrl": string
      },
      "banType": string,
      "banDurationSeconds": unsigned long
    },
    "memberMilestoneChatDetails": {
      "userComment": string,
      "memberMonth": unsigned integer,
      "memberLevelName": string
    },
    "newSponsorDetails": {
      "memberLevelName": string,
      "isUpgrade": bool
    },
    "superChatDetails": {
      "amountMicros": unsigned long,
      "currency": string,
      "amountDisplayString": string,
      "userComment": string,
      "tier": unsigned integer
    },
    "superStickerDetails": {
      "superStickerMetadata": {
        "stickerId": string,
        "altText": string,
        "language": string
      },
      "amountMicros": unsigned long,
      "currency": string,
      "amountDisplayString": string,
      "tier": unsigned integer
    },
    "pollDetails": {
      "metadata": {
        "options": {
          "optionText": string,
          "tally": string,
        },
        "questionText": string,
        "status": enum
      },
    },
    "membershipGiftingDetails": {
      "giftMembershipsCount": integer,
      "giftMembershipsLevelName": string
    },
    "giftMembershipReceivedDetails": {
      "memberLevelName": string,
      "gifterChannelId": string,
      "associatedMembershipGiftingMessageId": string
    },
  },
  "authorDetails": {
    "channelId": string,
    "channelUrl": string,
    "displayName": string,
    "profileImageUrl": string,
    "isVerified": boolean,
    "isChatOwner": boolean,
    "isChatSponsor": boolean,
    "isChatModerator": boolean
  },
}Характеристики
В следующей таблице определены свойства, которые отображаются в этом ресурсе:
| Характеристики | |
|---|---|
| kind | stringОпределяет тип ресурса API. Значение будет youtube#liveChatMessage. | 
| etag | etagEtag этого ресурса. | 
| id | stringИдентификатор, который YouTube назначает для уникальной идентификации сообщения. | 
| snippet | objectОбъект snippetсодержит основные сведения о сообщении чата. | 
| snippet. type | stringТип сообщения. Это свойство всегда присутствует, и его значение определяет, какие поля присутствуют в ресурсе. Допустимые значения для этого свойства: 
 | 
| snippet. liveChatId | stringИдентификатор, однозначно идентифицирующий чат, с которым связано сообщение. Идентификатор чата, связанный с трансляцией, возвращается в свойстве snippet.liveChatIdресурсаliveBroadcast. | 
| snippet. authorChannelId | stringИдентификатор пользователя, создавшего сообщение. Это поле заполняется только для следующих типов сообщений: 
 | 
| snippet. publishedAt | datetimeДата и время первоначальной публикации сообщения. Значение указывается в формате ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). | 
| snippet. hasDisplayContent | booleanУказывает, содержит ли сообщение отображаемое содержимое, которое следует отображать пользователям. | 
| snippet. displayMessage | stringСодержит строку, отображаемую пользователям. Это поле отсутствует, если тип сообщения — chatEndedEventилиtombstone. | 
| snippet. fanFundingEventDetails | objectПримечание: Этот объект и его дочерние свойства устарели. С 28 февраля 2017 г. ресурсы liveChatMessageбольше не будут возвращать информацию о мероприятиях по сбору средств от поклонников.Этот объект содержит информацию о мероприятии по сбору средств. Он присутствует только в том случае, если тип сообщения — fanFundingEvent. | 
| snippet.fanFundingEventDetails. amountMicros | unsigned longПримечание: это свойство устарело. Размер фонда. | 
| snippet.fanFundingEventDetails. currency | stringПримечание: это свойство устарело. Валюта, в которой был создан фонд. | 
| snippet.fanFundingEventDetails. amountDisplayString | stringПримечание: это свойство устарело. Отображаемая строка, которая отображает пользователю сумму и валюту фонда. | 
| snippet.fanFundingEventDetails. userComment | stringПримечание: это свойство устарело. Комментарий, добавленный пользователем к этому мероприятию по сбору средств фанатами. | 
| snippet. textMessageDetails | objectЭтот объект содержит сведения о текстовом сообщении. Он присутствует только в том случае, если тип сообщения — textMessageEvent. | 
| snippet.textMessageDetails. messageText | stringСообщение пользователя. | 
| snippet. messageDeletedDetails | objectЭтот объект содержит информацию о сообщении, удаленном модератором чата или владельцем канала прямой трансляции. Он присутствует только для сообщений типа messageDeletedEvent. | 
| snippet.messageDeletedDetails. deletedMessageId | stringИдентификатор, который однозначно идентифицирует удалённое сообщение. Значение совпадает со значением свойства idисходного текстового сообщения. Например, если уtextMessageEventсвойствоidравно123, и это сообщение впоследствии удаляется, значениеsnippet.messageDeletedDetails.deletedMessageIdдля этого сообщения будет123.Если вы кэшируете сообщения чата после их извлечения, используйте значение этого свойства для определения сообщения, которое больше не должно отображаться. | 
| snippet. userBannedDetails | objectЭтот объект содержит информацию о пользователе, которому был забанен доступ к чату. Он также содержит информацию о самом забане. Пользователи могут быть забанены в чате постоянно или временно. | 
| snippet.userBannedDetails. bannedUserDetails | objectЭтот объект содержит информацию о забаненном пользователе. | 
| snippet.userBannedDetails.bannedUserDetails. channelId | stringИдентификатор канала YouTube заблокированного пользователя. | 
| snippet.userBannedDetails.bannedUserDetails. channelUrl | stringURL-адрес канала заблокированного пользователя на YouTube. | 
| snippet.userBannedDetails.bannedUserDetails. displayName | stringОтображаемое имя канала заблокированного пользователя YouTube. | 
| snippet.userBannedDetails.bannedUserDetails. profileImageUrl | stringАватар YouTube-канала заблокированного пользователя. | 
| snippet.userBannedDetails. banType | stringТип запрета. Допустимые значения этого свойства: 
 | 
| snippet.userBannedDetails. banDurationSeconds | unsigned longПродолжительность бана. Это свойство присутствует только в том случае, если значение свойства snippet.userBannedDetails.banType—temporary. | 
| snippet. memberMilestoneChatDetails | objectЭтот объект содержит сведения о событии Member Milestone . Он присутствует только в том случае, если тип сообщения — memberMilestoneChatEvent. | 
| snippet.memberMilestoneChatDetails. userComment | stringКомментарий, добавленный участником к этому чату Milestone Chat. Это поле пусто для сообщений без комментария от участника. | 
| snippet.memberMilestoneChatDetails. memberMonth | unsigned integerОбщее количество месяцев (округлённое в большую сторону), в течение которых зритель был участником, предоставившим ему этот чат. Это количество месяцев отображается пользователям YouTube. | 
| snippet.memberMilestoneChatDetails. memberLevelName | stringНазвание уровня, на котором находится зритель. Названия уровней определяются каналом YouTube, предлагающим подписку. В некоторых случаях это поле не заполняется. | 
| snippet. newSponsorDetails | objectЭтот объект содержит сведения о событии «Объявление о новом участнике». Задаётся только для типа newSponsorEvent. «Участник» — это термин, обозначающий «спонсора». | 
| snippet.newSponsorDetails. memberLevelName | stringНазвание уровня, на котором находится зритель. Названия уровней определяются каналом YouTube, предлагающим подписку. В некоторых случаях это поле не заполняется. | 
| snippet.newSponsorDetails. isUpgrade | boolУказывает, перешёл ли зритель с более низкого уровня. Для зрителей, которые не были зарегистрированы на момент покупки, значение поля — false. | 
| snippet. superChatDetails | objectЭтот объект содержит информацию о событии Super Chat. Он присутствует только для сообщений типа superChatEvent. | 
| snippet.superChatDetails. amountMicros | unsigned longСумма покупки в микродолях валюты покупки. Например, если сумма покупки составляет один доллар, значение свойства snippet.amountMicrosбудет равно1000000. | 
| snippet.superChatDetails. currency | stringВалюта, в которой была совершена покупка. Значение представляет собой код валюты ISO 4217 . | 
| snippet.superChatDetails. amountDisplayString | stringСтрока, например, $1.00, содержащая сумму покупки и валюту. Эта строка предназначена для отображения пользователю. | 
| snippet.superChatDetails. userComment | stringКомментарий, добавленный пользователем к этому событию Суперчата. | 
| snippet.superChatDetails. tier | unsigned integerУровень платного сообщения. Обратите внимание, что в ресурсе superChatEventсвойствоsnippet.messageTypeсодержит это значение.Уровень зависит от суммы, потраченной на покупку сообщения. Он также определяет цвет, используемый для выделения сообщения в интерфейсе онлайн-чата, максимальную длину сообщения и время, в течение которого сообщение будет закреплено в тикере. Уровни Super Chat описаны в Справочном центре YouTube . (См. расширенный раздел с подробностями покупки Super Chat.) В этом списке уровень с наименьшей суммой покупки — это уровень 1, следующая наименьшая сумма — это уровень 2 и т. д. | 
| snippet. superStickerDetails | objectЭтот объект содержит информацию о событии «Суперстикер». Он присутствует только для сообщения типа superStickerEvent. | 
| snippet.superStickerDetails. superStickerMetadata | objectПодробная информация о Супер Наклейке. | 
| snippet.superStickerDetails.superStickerMetadata. stickerId | stringУникальный идентификатор, идентифицирующий изображение стикера. Обратите внимание, что изображение отображается только как часть сообщения суперстикера, когда пользователи просматривают окно чата на YouTube. Однако URL-адрес изображения недоступен через API. Только для справки: в этом CSV-файле вы можете найти, какие идентификаторы стикеров соответствуют тем или иным суперстикерам. | 
| snippet.superStickerDetails.superStickerMetadata. altText | stringТекстовая строка с описанием стикера. Поле snippet.superStickerDetails.superStickerMetadata.languageопределяет язык текста. При вызове методаliveChatMessages.listзадайте значение параметра hl равным выбранному языку текста. | 
| snippet.superStickerDetails.superStickerMetadata. language | stringЯзык значения свойства snippet.superStickerDetails.superStickerMetadata.altText. | 
| snippet.superStickerDetails. amountMicros | unsigned longСумма покупки в микродолях валюты покупки. Например, если сумма покупки составляет один доллар, значение свойства snippet.amountMicrosбудет равно1000000. | 
| snippet.superStickerDetails. currency | stringВалюта, в которой была совершена покупка. Значение представляет собой код валюты ISO 4217 . | 
| snippet.superStickerDetails. amountDisplayString | stringСтрока, например, $1.00, содержащая сумму покупки и валюту. Эта строка предназначена для отображения пользователю. | 
| snippet.superStickerDetails. tier | unsigned integerУровень платного сообщения. Обратите внимание, что в ресурсе superChatEventсвойствоsnippet.messageTypeсодержит это значение.Уровень зависит от суммы, потраченной на покупку сообщения. Он также определяет цвет, используемый для выделения сообщения в интерфейсе онлайн-чата, максимальную длину сообщения и время, в течение которого сообщение будет закреплено в тикере. Уровни Super Chat, которые также охватывают Super Stickers, описаны в Справочном центре YouTube . (См. расширенный раздел с подробностями покупки Super Chat.) В этом списке уровень с наименьшей суммой покупки — это уровень 1, следующий по величине — уровень 2 и т. д. | 
| snippet. pollDetails | objectЭтот объект содержит сведения о событии опроса. Он присутствует только в том случае, если тип сообщения — pollEvent. | 
| snippet.pollDetails. metadata | objectПодробная информация о мероприятии по опросу. | 
| snippet.pollDetails.metadata. options | objectВарианты ответов в опросе в режиме реального времени. | 
| snippet.pollDetails.metadata.options. optionText | stringТекст варианта живого опроса. | 
| snippet.pollDetails.metadata.options. tally | stringПодсчёт результатов опроса в режиме реального времени. Подсчёт доступен только в том случае, если запрос к API авторизован владельцем канала. | 
| snippet.pollDetails.metadata. questionText | stringТекст вопроса опроса в режиме реального времени. | 
| snippet.pollDetails.metadata. status | enumСтатус события опроса в режиме реального времени. Допустимые значения этого свойства: 
 | 
| snippet. membershipGiftingDetails | objectЭтот объект содержит сведения о событии «Подарка членства». Он присутствует только в том случае, если message type—membershipGiftingEvent. | 
| snippet.membershipGiftingDetails. giftMembershipsCount | integerКоличество подарочных членств, приобретенных пользователем. | 
| snippet.membershipGiftingDetails. giftMembershipsLevelName | stringНазвание уровня подарочного абонемента, приобретённого пользователем. Названия уровней определяются каналом YouTube, предлагающим абонемент. В некоторых случаях это поле не заполняется. | 
| snippet. giftMembershipReceivedDetails | objectЭтот объект содержит сведения о событии «Получение подарочного членства». Он присутствует только в том случае, если message type—giftMembershipReceivedEvent. | 
| snippet.giftMembershipReceivedDetails. memberLevelName | stringНазвание уровня, на котором находится зритель. Соответствует snippet.membershipGiftingDetails.giftMembershipsLevelNameсоответствующего сообщения о подарке членства. Названия уровней определяются каналом YouTube, предлагающим это членство. В некоторых случаях это поле не заполняется. | 
| snippet.giftMembershipReceivedDetails. gifterChannelId | stringИдентификатор пользователя, совершившего покупку подарочного членства. Соответствует фрагменту snippet.authorChannelIdсоответствующего сообщения о подарочном членстве. | 
| snippet.giftMembershipReceivedDetails. associatedMembershipGiftingMessageId | stringИдентификатор сообщения о подарке членства, связанного с этим подарком. Этот идентификатор всегда будет относиться к сообщению typemembershipGiftingEvent. | 
| authorDetails | objectОбъект authorDetailsсодержит дополнительные сведения о пользователе, опубликовавшем это сообщение. | 
| authorDetails. channelId | stringИдентификатор канала автора на YouTube. | 
| authorDetails. channelUrl | stringURL канала автора на YouTube. | 
| authorDetails. displayName | stringОтображаемое имя канала автора на YouTube. | 
| authorDetails. profileImageUrl | stringURL-адрес аватара YouTube-канала автора. | 
| authorDetails. isVerified | booleanЭто значение указывает, была ли личность автора подтверждена YouTube. | 
| authorDetails. isChatOwner | booleanЭто значение указывает, является ли автор владельцем чата. | 
| authorDetails. isChatSponsor | booleanЭто значение указывает, является ли автор спонсором чата. | 
| authorDetails. isChatModerator | booleanЭто значение указывает, является ли автор модератором чата. |