LiveChatMessages

Ресурс liveChatMessage представляет собой сообщение в чате трансляции на YouTube. Ресурс может содержать сведения о сообщениях нескольких типов, включая недавно опубликованные текстовые сообщения и события фан-фандинга.

Функция чата включена по умолчанию для прямых трансляций и доступна, пока трансляция активна. После окончания трансляции чат становится недоступен.

Методы

API поддерживает следующие методы для ресурсов liveChatMessages:

list
Возвращает список сообщений в определенном чате. Перейти
streamList
Включает подключение к серверу для потоковой передачи сообщений чата с низкой задержкой. Перейти
insert
Добавляет сообщение или опрос в чат. Перейти
переход
Изменяет статус сообщения в чате. Перейти
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
    },
    "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
    },
    "giftDetails": {
      "jewelsAmount": integer,
      "giftName": string,
      "giftUrl": string,
      "giftDuration": object,
      "seconds": integer,
      "nanos": integer,
      "hasVisualEffect": boolean,
      "comboCount": integer,
      "altText": string,
      "language": 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 присваивает сообщению.
Примечание. Для giftEvents один и тот же идентификатор может использоваться повторно, чтобы обновить количество комбо.
snippet object
Объект snippet содержит основные сведения о сообщении чата.
snippet.type string
Тип сообщения. Это свойство всегда присутствует, и его значение определяет, какие поля есть в ресурсе.

Допустимые значения для этого свойства:
  • chatEndedEvent – чат завершен, и после этого сообщения нельзя добавить новые. Это произойдет автоматически через некоторое время после окончания трансляции. Такие сообщения не отправляются в чатах трансляций по умолчанию.
  • sponsorOnlyModeEndedEvent – чат больше не предназначен только для спонсоров, поэтому пользователи, не являющиеся спонсорами, теперь могут отправлять сообщения. Для этого мероприятия не указан контент для показа.
  • sponsorOnlyModeStartedEvent – в чате включен режим "Только для спонсоров", в котором отправлять сообщения могут только спонсоры. У этого события нет контента для показа.
  • newSponsorEvent – новый пользователь стал спонсором канала, на котором проходит трансляция. Поля author содержат сведения о новом спонсоре.
  • memberMilestoneChatEvent – пользователь отправил спонсорское сообщение.
  • superChatEvent – пользователь приобрел сообщение Суперчата.
  • superStickerEvent – пользователь купил суперстикер.
  • textMessageEvent – пользователь отправил текстовое сообщение.
  • tombstone – сообщение с этим идентификатором и временем публикации существовало, но было удалено. Оно не отправляется при удалении сообщения, а показывается на месте удаленного сообщения. В сообщениях этого типа есть только поля snippet.liveChatId, snippet.type и snippet.publishedAt.
  • userBannedEvent – пользователь заблокирован модератором. Поле author содержит сведения о модераторе.
  • membershipGiftingEvent – пользователь купил спонсорство для других зрителей.
  • giftMembershipReceivedEvent – пользователь получил спонсорство в подарок.
  • pollDetails – пользователь создал опрос в прямом эфире.
  • giftEvent – пользователь обменял самоцветы на подарок.
snippet.liveChatId string
Уникальный идентификатор чата, с которым связано сообщение. Идентификатор чата, связанного с трансляцией, возвращается в свойстве snippet.liveChatId ресурса liveBroadcast.
snippet.authorChannelId string
Идентификатор пользователя, который написал сообщение. Это поле заполняется только для следующих типов сообщений:
  • Если тип сообщения – textMessageEvent, значение свойства идентифицирует пользователя, который написал сообщение.
  • Если тип сообщения – fanFundingEvent, то значение свойства идентифицирует пользователя, который спонсировал трансляцию.
  • Если тип сообщения – newSponsorEvent, значение свойства определяет пользователя, который только что стал спонсором.
  • Если тип сообщения – memberMilestoneChatEvent, значение свойства идентифицирует участника, отправившего сообщение.
  • Если тип сообщения – userBannedEvent, значение свойства идентифицирует модератора, который заблокировал пользователя.
  • Если тип сообщения – membershipGiftingEvent, значение свойства определяет пользователя, который купил спонсорство в подарок.
  • Если тип сообщения – giftMembershipReceivedEvent, значение свойства идентифицирует пользователя, который получил спонсорство в подарок.
  • Если тип сообщения – pollEvent, значение свойства определяет пользователя, который создал опрос.
  • Если тип сообщения – giftEvent, значение свойства идентифицирует пользователя, который отправил подарок.
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.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
Тип блокировки. Допустимые значения этого свойства:
  • Постоянно
  • temporary
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
Название уровня спонсорства зрителя. Названия уровней определяет автор канала. В некоторых случаях это поле не заполняется.
snippet.newSponsorDetails object
Этот объект содержит информацию о событии "Объявление о новом участнике". Задается, только если тип – newSponsorEvent. Спонсоры теперь называются участниками.
snippet.newSponsorDetails.memberLevelName string
Название уровня спонсорства. Названия уровней спонсорства задает автор канала. В некоторых случаях это поле не заполняется.
snippet.newSponsorDetails.isUpgrade bool
Указывает, перешел ли зритель на этот уровень с более низкого. Если зритель не был спонсором на момент покупки, в поле будет указано значение false.
snippet.superChatDetails object
Этот объект содержит сведения о событии Суперчата. Присутствует, только если тип сообщения – 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.

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

Подробнее о категориях сообщений в Суперчате… (См. раздел "О покупке сообщений в Суперчате".) В этом списке уровень с самой низкой суммой заказа – это уровень 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.

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

Уровни Суперчата, которые также распространяются на Суперстикеры, описаны в Справочном центре YouTube. (См. раздел "О покупке сообщений в Суперчате".) В этом списке уровень с наименьшей суммой заказа – это уровень 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 type имеет значение membershipGiftingEvent.
snippet.membershipGiftingDetails.giftMembershipsCount integer
Количество спонсорств в подарок, приобретенных пользователем.
snippet.membershipGiftingDetails.giftMembershipsLevelName string
Название уровня спонсорства в подарок, приобретенного пользователем. Названия уровней спонсорства задает автор канала. В некоторых случаях это поле не заполнено.
snippet.giftMembershipReceivedDetails object
Этот объект содержит информацию о событии "Получено спонсорство в подарок". Оно присутствует, только если для параметра message type задано значение giftMembershipReceivedEvent.
snippet.giftMembershipReceivedDetails.memberLevelName string
Название уровня спонсорства. Это значение совпадает с snippet.membershipGiftingDetails.giftMembershipsLevelName связанного сообщения о спонсорстве в подарок. Названия уровней спонсорства задает автор канала. В некоторых случаях это поле не заполнено.
snippet.giftMembershipReceivedDetails.gifterChannelId string
Идентификатор пользователя, который купил спонсорство в подарок. Это значение совпадает с snippet.authorChannelId связанного сообщения о спонсорстве в подарок.
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId string
Идентификатор сообщения о спонсорстве в подарок, связанного с этим спонсорством. Этот идентификатор всегда будет относиться к сообщению, у которого type – membershipGiftingEvent.
snippet.giftDetails object
Этот объект содержит сведения о событии, связанном с подарком. Оно присутствует, только если для message type задано значение giftEvent.
snippet.giftDetails.jewelsAmount integer
Количество самоцветов, потраченных на подарок.
snippet.giftDetails.giftName string
Название подарка.
snippet.giftDetails.giftUrl string
URL объекта подарка.
snippet.giftDetails.giftDuration object
Продолжительность показа URL подарка.
snippet.giftDetails.giftDuration.seconds integer
Количество секунд, в течение которых будет показываться URL подарка.
snippet.giftDetails.giftDuration.nanos integer
Количество наносекунд, в течение которых будет показываться URL подарка.
snippet.giftDetails.hasVisualEffect boolean
Есть ли у подарка визуальный эффект.
snippet.giftDetails.comboCount integer
Количество подарков в комбо. Если это не комбо, указывается 0.
snippet.giftDetails.altText string
Текстовая строка с описанием подарка.
snippet.giftDetails.language string
Язык значения свойства altText.
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
Значение, указывающее, является ли автор модератором чата.