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 – Пользователь приобрел Суперчат.
  • 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 больше не будут возвращать информацию о мероприятиях по сбору средств от поклонников.

Этот объект содержит информацию о мероприятии по сбору средств. Он присутствует только в том случае, если тип сообщения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.banTypetemporary .
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
Статус события опроса в режиме реального времени. Допустимые значения этого свойства:
  • 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
Это значение указывает, является ли автор модератором чата.