LiveChatMessages

Ресурс 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 etag
Etag этого ресурса.
id string
Идентификатор, который YouTube присваивает для однозначной идентификации сообщения.
snippet object
Объект snippet содержит основные сведения о сообщении чата.
snippet. type string
Тип сообщения. Это свойство всегда присутствует, и его значение определяет, какие поля будут присутствовать в ресурсе.

Допустимые значения для этого свойства:
  • chatEndedEvent – ​​Чат завершился, и после этого сообщения больше вставлять нельзя. Это произойдет естественным образом вскоре после окончания трансляции. Такое сообщение не отправляется для прямых трансляций в рамках стандартной трансляции канала.
  • messageDeletedEvent – ​​Сообщение было удалено модератором. Поле author содержит данные модератора. Это событие не имеет отображаемого содержимого.
  • sponsorOnlyModeEndedEvent – ​​Чат больше не находится в режиме только для спонсоров, это означает, что пользователи, не являющиеся спонсорами, теперь могут отправлять сообщения. Это событие не содержит никакого отображаемого контента.
  • sponsorOnlyModeStartedEvent – ​​Чат перешел в режим «только для спонсоров», что означает, что отправлять сообщения могут только спонсоры. Это событие не содержит отображаемого контента.
  • newSponsorEvent – ​​Новый пользователь выступил спонсором канала, которому принадлежит чат в прямом эфире. В полях author указаны данные нового спонсора.
  • memberMilestoneChatEvent – ​​Пользователь отправил сообщение в чат, посвященное достижению определённого этапа в жизни участника .
  • superChatEvent – ​​Пользователь приобрел Super Chat.
  • superStickerEvent – ​​Пользователь приобрел суперстикер.
  • textMessageEvent – ​​Пользователь отправил текстовое сообщение.
  • tombstone — это надгробная плита, указывающая на то, что сообщение с таким идентификатором и временем публикации ранее существовало, но было удалено. Она не отправляется при удалении сообщения, а отображается, чтобы показать, где сообщение находилось до удаления. В сообщениях этого типа присутствуют только поля snippet.liveChatId , snippet.type и snippet.publishedAt .
  • userBannedEvent – ​​Пользователь был заблокирован модератором. В поле author указаны данные модератора.
  • membershipGiftingEvent – ​​Пользователь приобрел подписки для других зрителей.
  • giftMembershipReceivedEvent – ​​Пользователь получил подарочную подписку.
  • pollDetails – Пользователь создал интерактивный опрос.
snippet. liveChatId string
Идентификатор, однозначно определяющий чат, с которым связано сообщение. Идентификатор чата, связанного с трансляцией, возвращается в свойстве snippet.liveChatId ресурса liveBroadcast .
snippet. authorChannelId string
Идентификатор пользователя, создавшего сообщение. Это поле заполняется только для следующих типов сообщений:
  • Если тип сообщения — textMessageEvent , значение свойства идентифицирует пользователя, написавшего сообщение.
  • Если тип сообщения — fanFundingEvent , значение свойства идентифицирует пользователя, который профинансировал трансляцию.
  • Если тип сообщения — messageDeletedEvent , значение свойства указывает модератора, удалившего сообщение.
  • Если тип сообщения — newSponsorEvent , значение свойства идентифицирует пользователя, который только что стал спонсором.
  • Если тип сообщения — memberMilestoneChatEvent , значение свойства указывает на участника, отправившего сообщение.
  • Если тип сообщения — userBannedEvent , значение свойства указывает модератора, заблокировавшего пользователя.
  • Если тип сообщения — membershipGiftingEvent , значение свойства идентифицирует пользователя, совершившего покупку подарочного членства.
  • Если тип сообщения — giftMembershipReceivedEvent , значение свойства идентифицирует пользователя, получившего подарочное членство.
  • Если тип сообщения — pollEvent , значение свойства идентифицирует пользователя, создавшего опрос в режиме реального времени.
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 больше не будут возвращать подробную информацию о событиях Fan Funding.

Этот объект содержит подробную информацию о событии финансирования. Он присутствует только в том случае, если тип сообщения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 string
URL 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
Этот объект содержит подробную информацию о событии "Важный этап в жизни участника" . Он присутствует только в том случае, если тип сообщенияmemberMilestoneChatEvent .
snippet.memberMilestoneChatDetails. userComment string
Комментарий, добавленный участником в чат, посвященный достижениям участника. Это поле пустое для сообщений без комментария от участника.
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
Комментарий, добавленный пользователем к этому событию Super Chat.
snippet.superChatDetails. tier unsigned integer
Уровень платного сообщения. Обратите внимание, что в ресурсе superChatEvent это значение содержится в свойстве snippet.messageType .

Уровень тарифа определяется суммой, потраченной на покупку сообщения. Он также определяет цвет, используемый для выделения сообщения в интерфейсе чата, максимальную длину сообщения и время, в течение которого сообщение будет закреплено в бегущей строке.

Уровни Super Chat описаны в Справочном центре YouTube . (См. раскрывающийся раздел с подробной информацией о покупке Super Chat.) В этом списке уровень с наименьшей суммой покупки — это уровень 1, следующий по величине — уровень 2 и так далее.
snippet. superStickerDetails object
Этот объект содержит подробную информацию о событии Super Sticker. Он присутствует только в том случае, если тип сообщенияsuperStickerEvent .
snippet.superStickerDetails. superStickerMetadata object
Подробности о супернаклейке.
snippet.superStickerDetails.superStickerMetadata. stickerId string
Уникальный идентификатор, который определяет изображение стикера. Обратите внимание, что изображение отображается только как часть сообщения Super Sticker, когда пользователи просматривают окно чата на YouTube. Однако URL-адрес изображения недоступен через API. Для справки, вы можете найти, какие идентификаторы стикеров соответствуют каким Super Stickers, в этом 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
Статус текущего опроса. Допустимые значения для этого свойства:
  • unknown
  • active
  • closed
snippet. membershipGiftingDetails object
Этот объект содержит подробную информацию о событии «Дарение членства». Он присутствует только в том случае, если message typemembershipGiftingEvent .
snippet.membershipGiftingDetails. giftMembershipsCount integer
Количество подарочных абонементов, приобретенных пользователем.
snippet.membershipGiftingDetails. giftMembershipsLevelName string
Название уровня подарочной подписки, приобретенной пользователем. Названия уровней определяются каналом YouTube, предлагающим подписку. В некоторых случаях это поле не заполняется.
snippet. giftMembershipReceivedDetails object
Этот объект содержит подробную информацию о событии «Получено подарочное членство». Он присутствует только в том случае, если message typegiftMembershipReceivedEvent .
snippet.giftMembershipReceivedDetails. memberLevelName string
Название уровня, на котором находится зритель в качестве участника. Это соответствует фрагменту snippet.membershipGiftingDetails.giftMembershipsLevelName соответствующего сообщения о дарении членства. Названия уровней определяются каналом YouTube, предлагающим членство. В некоторых случаях это поле не заполняется.
snippet.giftMembershipReceivedDetails. gifterChannelId string
Идентификатор пользователя, совершившего покупку подарочного членства. Он соответствует snippet.authorChannelId соответствующего сообщения о подарочном членстве.
snippet.giftMembershipReceivedDetails. associatedMembershipGiftingMessageId string
Идентификатор сообщения о дарении членства, связанного с этим подарочным членством. Этот идентификатор всегда будет указывать на сообщение type membershipGiftingEvent .
authorDetails object
Объект authorDetails содержит дополнительные сведения о пользователе, отправившем это сообщение.
authorDetails. channelId string
Идентификатор YouTube-канала автора.
authorDetails. channelUrl string
URL-адрес YouTube-канала автора.
authorDetails. displayName string
Отображаемое название YouTube-канала автора.
authorDetails. profileImageUrl string
URL-адрес аватара YouTube-канала автора.
authorDetails. isVerified boolean
Это значение указывает, была ли личность автора подтверждена YouTube.
authorDetails. isChatOwner boolean
Это значение указывает, является ли автор владельцем онлайн-чата.
authorDetails. isChatSponsor boolean
Это значение указывает, является ли автор спонсором онлайн-чата.
authorDetails. isChatModerator boolean
Это значение указывает, является ли автор модератором онлайн-чата.