LiveChatMessages

O recurso liveChatMessage representa uma mensagem em um chat ao vivo do YouTube. O recurso pode conter detalhes sobre vários tipos de mensagens, incluindo uma mensagem de texto recém-postada ou um evento de financiamento por fãs.

O recurso de chat ao vivo fica ativado por padrão para transmissões ao vivo e fica disponível enquanto o evento ao vivo está ativo. Após o término do evento, o chat ao vivo não estará mais disponível.

Métodos

A API oferece suporte aos seguintes métodos para recursos liveChatMessages:

list
Lista as mensagens de um chat ao vivo específico. Faça um teste agora.
inserir
Adiciona uma mensagem a um chat ao vivo. Teste agora mesmo.
excluir
Exclui uma mensagem de bate-papo. A solicitação de API precisa ser autorizada pelo proprietário do canal ou por um moderador do chat ao vivo. Faça um teste agora.

Representação de recurso

A estrutura JSON a seguir mostra o formato de um recurso 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
    },
    "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
  },
}

Propriedades

A tabela a seguir define as propriedades que aparecem neste recurso:

Propriedades
kind string
Identifica o tipo de recurso da API. O valor será youtube#liveChatMessage.
etag etag
A Etag desse recurso.
id string
O ID atribuído pelo YouTube para identificar a mensagem de forma exclusiva.
snippet object
O objeto snippet contém detalhes importantes sobre a mensagem de chat.
snippet.type string
O tipo da mensagem. Essa propriedade está sempre presente, e o valor dela determina quais campos estão presentes no recurso.

Os valores válidos para essa propriedade são:
  • chatEndedEvent: o chat foi encerrado e não é possível inserir mais mensagens depois dele. Isso ocorrerá naturalmente um pouco após o término da transmissão. Esse tipo de mensagem não é enviada para chats ao vivo na transmissão padrão de um canal.
  • messageDeletedEvent: uma mensagem foi excluída por um moderador. O campo author contém os detalhes do moderador. Este evento não tem nenhum conteúdo de exibição.
  • sponsorOnlyModeEndedEvent – O chat não está mais no modo exclusivo para patrocinadores, o que significa que os usuários que não são patrocinadores agora podem enviar mensagens. Este evento não tem nenhum conteúdo de exibição.
  • sponsorOnlyModeStartedEvent – O chat entrou no modo somente para patrocinadores, o que significa que somente os patrocinadores podem enviar mensagens. Este evento não tem conteúdo de exibição.
  • newSponsorEvent: um novo usuário patrocinou o canal proprietário do chat ao vivo. Os campos author contêm os detalhes do novo patrocinador.
  • memberMilestoneChatEvent: um usuário enviou uma Mensagem prêmio para membros.
  • superChatEvent – Um usuário comprou um Super Chat.
  • superStickerEvent – Um usuário comprou um Super Sticker.
  • textMessageEvent: um usuário enviou uma mensagem de texto.
  • tombstone: uma tombstone significa que uma mensagem já existia com o ID e o horário de publicação, mas foi excluída. Ele não é enviado após a exclusão de uma mensagem, mas sim para indicar onde ela estava antes da exclusão. Apenas os campos snippet.liveChatId, snippet.type e snippet.publishedAt estão presentes nesse tipo de mensagem.
  • userBannedEvent – Um usuário foi banido por um moderador. O campo author contém os detalhes do moderador.
  • membershipGiftingEvent – Um usuário comprou assinaturas para outros espectadores.
  • giftMembershipReceivedEvent: um usuário recebeu uma assinatura de presente.
snippet.liveChatId string
O ID que identifica exclusivamente o chat ao vivo a que a mensagem está associada. O ID do chat ao vivo associado a uma transmissão é retornado na propriedade snippet.liveChatId do recurso liveBroadcast.
snippet.authorChannelId string
O ID do usuário que criou a mensagem. Esse campo só é preenchido para os seguintes tipos de mensagens:
  • Se o tipo de mensagem for textMessageEvent, o valor da propriedade identificará o usuário que escreveu a mensagem.
  • Se o tipo de mensagem for fanFundingEvent, o valor da propriedade identificará o usuário que financiou a transmissão.
  • Se o tipo de mensagem for messageDeletedEvent, o valor da propriedade identificará o moderador que excluiu a mensagem.
  • Se o tipo de mensagem for newSponsorEvent, o valor da propriedade identificará o usuário que acabou de se tornar um patrocinador.
  • Se o tipo da mensagem for memberMilestoneChatEvent, o valor da propriedade identificará o membro que enviou a mensagem.
  • Se o tipo de mensagem for userBannedEvent, o valor da propriedade identificará o moderador que baniu o usuário.
  • Se o tipo da mensagem for membershipGiftingEvent, o valor da propriedade identificará o usuário que fez a compra da assinatura de presente.
  • Se o tipo da mensagem for giftMembershipReceivedEvent, o valor da propriedade identificará o usuário que recebeu a assinatura de presente.
snippet.publishedAt datetime
A data e a hora em que a mensagem foi publicada originalmente. O valor é especificado no formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.hasDisplayContent boolean
Indica se a mensagem tem conteúdo que precisa ser mostrado aos usuários.
snippet.displayMessage string
Contém uma string que é exibida para os usuários. Este campo não estará presente se o tipo de mensagem for chatEndedEvent ou tombstone.
snippet.fanFundingEventDetails object
Observação: o uso desse objeto e das propriedades filhas dele foi descontinuado. A partir de 28 de fevereiro de 2017, os recursos do liveChatMessage não retornarão mais detalhes de eventos de Financiamento por fãs.

Esse objeto contém detalhes sobre o evento de financiamento. Ela só estará presente se o tipo de mensagem for fanFundingEvent.
snippet.fanFundingEventDetails.amountMicros unsigned long
Observação: esta propriedade foi descontinuada.

O valor do fundo.
snippet.fanFundingEventDetails.currency string
Observação: esta propriedade foi descontinuada.

A moeda em que o fundo foi criado.
snippet.fanFundingEventDetails.amountDisplayString string
Observação: esta propriedade foi descontinuada.

Uma string renderizada que mostra o valor do fundo e a moeda ao usuário.
snippet.fanFundingEventDetails.userComment string
Observação: o uso desta propriedade foi descontinuado.

O comentário adicionado pelo usuário a este evento de financiamento por fãs.
snippet.textMessageDetails object
Esse objeto contém detalhes sobre a mensagem de texto. Ela só estará presente se o tipo de mensagem for textMessageEvent.
snippet.textMessageDetails.messageText string
A mensagem do usuário.
snippet.messageDeletedDetails object
Esse objeto contém detalhes sobre uma mensagem excluída por um moderador de chat ou pelo proprietário do canal da transmissão ao vivo. Ela só estará presente se o tipo de mensagem for messageDeletedEvent.
snippet.messageDeletedDetails.deletedMessageId string
O ID que identifica exclusivamente a mensagem excluída. O valor é igual ao valor da propriedade id da mensagem de texto original. Por exemplo, se um textMessageEvent tiver um valor de propriedade id de 123 e essa mensagem for excluída depois, o valor snippet.messageDeletedDetails.deletedMessageId será 123 para a mensagem.

Se você armazenar mensagens de chat em cache depois de recuperá-las, use o valor desta propriedade para identificar a mensagem que não deve mais ser exibida.
snippet.userBannedDetails object
Esse objeto contém detalhes sobre um usuário que foi banido do chat. Também contém detalhes sobre o banimento. Os usuários podem ser banidos de um chat de forma permanente ou temporária.
snippet.userBannedDetails.bannedUserDetails object
Esse objeto contém informações sobre o usuário banido.
snippet.userBannedDetails.bannedUserDetails.channelId string
O ID do canal do YouTube do usuário banido.
snippet.userBannedDetails.bannedUserDetails.channelUrl string
É o URL do canal do YouTube do usuário banido.
snippet.userBannedDetails.bannedUserDetails.displayName string
O nome de exibição do canal do YouTube do usuário banido.
snippet.userBannedDetails.bannedUserDetails.profileImageUrl string
O avatar do canal do YouTube do usuário banido.
snippet.userBannedDetails.banType string
O tipo de banimento. Os valores válidos para esta propriedade são:
  • permanente
  • temporary
snippet.userBannedDetails.banDurationSeconds unsigned long
A duração da proibição. Essa propriedade só vai estar presente se o valor da propriedade snippet.userBannedDetails.banType for temporary.
snippet.memberMilestoneChatDetails object
Esse objeto contém detalhes sobre um evento de marco do membro. Ela só estará presente se o tipo de mensagem for memberMilestoneChatEvent.
snippet.memberMilestoneChatDetails.userComment string
O comentário adicionado pela pessoa a esta mensagem prêmio para membros. Este campo fica vazio nas mensagens sem um comentário do participante.
snippet.memberMilestoneChatDetails.memberMonth unsigned integer
Número total de meses (arredondados) de que o espectador foi assinante e concedeu a ele essa mensagem prêmio para membros. É o mesmo número de meses que está sendo exibido aos usuários do YouTube.
snippet.memberMilestoneChatDetails.memberLevelName string
O nome do nível do qual o espectador é membro. Os nomes dos níveis são definidos pelo canal do YouTube que oferece a assinatura. Em algumas situações, esse campo não é preenchido.
snippet.newSponsorDetails object
Este objeto contém detalhes sobre o evento Anúncio de novos membros. Isso só será definido se o tipo for newSponsorEvent. "Membro" é o termo "patrocinador".
snippet.newSponsorDetails.memberLevelName string
O nome do nível do qual o espectador é membro. Os nomes dos níveis são definidos pelo canal do YouTube que oferece a assinatura. Em algumas situações, esse campo não é preenchido.
snippet.newSponsorDetails.isUpgrade bool
Indica se o visualizador acabou de fazer upgrade de um nível inferior. Para espectadores que não eram membros no momento da compra, o valor do campo é false.
snippet.superChatDetails object
Esse objeto contém detalhes sobre um evento do Super Chat. Ela só estará presente se o tipo de mensagem for superChatEvent.
snippet.superChatDetails.amountMicros unsigned long
O valor da compra, em micros da moeda da compra. Por exemplo, se o montante da compra for um dólar, o valor da propriedade snippet.amountMicros será 1000000.
snippet.superChatDetails.currency string
A moeda em que a compra foi feita. O valor é um código de moeda ISO 4217.
snippet.superChatDetails.amountDisplayString string
Uma string, como $1.00, que contém o montante e a moeda da compra. A string precisa ser mostrada ao usuário.
snippet.superChatDetails.userComment string
O comentário adicionado pelo usuário a este evento do Super Chat.
snippet.superChatDetails.tier unsigned integer
O nível da mensagem paga. Observe que, em um recurso superChatEvent, a propriedade snippet.messageType contém esse valor.

O nível é baseado no valor gasto na compra da mensagem. Ele também determina a cor usada para destacar a mensagem na interface do chat ao vivo, o tamanho máximo dela e por quanto tempo ela fica fixada no mostrador.

As camadas do Super Chat estão documentadas na Central de Ajuda do YouTube. Consulte a seção expansível sobre os detalhes da compra do Super Chat. Nessa lista, o nível com o menor valor de compra é o nível 1, o próximo valor mais baixo é o nível 2 e assim por diante.
snippet.superStickerDetails object
Esse objeto contém detalhes sobre um evento de Super Sticker. Ela só estará presente se o tipo de mensagem for superStickerEvent.
snippet.superStickerDetails.superStickerMetadata object
Detalhes sobre o Super Sticker.
snippet.superStickerDetails.superStickerMetadata.stickerId string
Um ID exclusivo que identifica a imagem do adesivo. Observe que a imagem só aparece como parte da mensagem do Super Sticker quando os usuários visualizam a janela do chat no YouTube. No entanto, o URL da imagem não fica disponível usando a API. Apenas para referência, você pode encontrar quais IDs de adesivos estão relacionados a quais Super Stickers neste arquivo CSV.
snippet.superStickerDetails.superStickerMetadata.altText string
Uma string de texto que descreve o adesivo. O campo snippet.superStickerDetails.superStickerMetadata.language identifica o idioma do texto. Ao chamar o método liveChatMessages.list, defina o valor do parâmetro hl como o idioma escolhido para o texto.
snippet.superStickerDetails.superStickerMetadata.language string
O idioma do valor da propriedade snippet.superStickerDetails.superStickerMetadata.altText.
snippet.superStickerDetails.amountMicros unsigned long
O valor da compra, em micros da moeda da compra. Por exemplo, se o montante da compra for um dólar, o valor da propriedade snippet.amountMicros será 1000000.
snippet.superStickerDetails.currency string
A moeda em que a compra foi feita. O valor é um código de moeda ISO 4217.
snippet.superStickerDetails.amountDisplayString string
Uma string, como $1.00, que contém o montante e a moeda da compra. A string precisa ser mostrada ao usuário.
snippet.superStickerDetails.tier unsigned integer
O nível da mensagem paga. Observe que, em um recurso superChatEvent, a propriedade snippet.messageType contém esse valor.

O nível é baseado no valor gasto na compra da mensagem. Eles também determinam a cor usada para destacar a mensagem na interface do chat ao vivo, o tamanho máximo dela e o tempo que ela passa no mostrador.

As camadas do Super Chat, que também abrangem os Super Stickers, estão documentadas na Central de Ajuda do YouTube. Consulte a seção expansível sobre os detalhes da compra do Super Chat. Nessa lista, o nível com o menor valor de compra é o nível 1, o próximo valor mais baixo é o nível 2 e assim por diante.
snippet.pollDetails object
Esse objeto contém detalhes sobre um evento de enquete. Ela só estará presente se o tipo de mensagem for pollEvent.
snippet.pollDetails.metadata object
Detalhes sobre o evento da enquete.
snippet.pollDetails.metadata.options object
As opções na enquete ao vivo.
snippet.pollDetails.metadata.options.optionText string
O texto da opção de enquete ao vivo.
snippet.pollDetails.metadata.options.questionText string
O texto da pergunta da enquete ao vivo.
snippet.pollDetails.metadata.status enum
O status do evento da enquete ao vivo. Os valores válidos para essa propriedade são:
  • unknown
  • active
  • closed
snippet.membershipGiftingDetails object
Esse objeto contém detalhes sobre um evento "Assinatura de presente". Ela só estará presente se o message type for membershipGiftingEvent.
snippet.membershipGiftingDetails.giftMembershipsCount integer
O número de assinaturas de presente compradas pelo usuário.
snippet.membershipGiftingDetails.giftMembershipsLevelName string
O nome do nível das assinaturas de presente compradas pelo usuário. Os nomes dos níveis são definidos pelo canal do YouTube que oferece a assinatura. Em algumas situações, esse campo não é preenchido.
snippet.giftMembershipReceivedDetails object
Esse objeto contém detalhes sobre um evento Assinatura de presente recebida. Ela só estará presente se o message type for giftMembershipReceivedEvent.
snippet.giftMembershipReceivedDetails.memberLevelName string
O nome do nível do qual o espectador é membro. Isso corresponde ao snippet.membershipGiftingDetails.giftMembershipsLevelName da mensagem de assinatura de presente associada. Os nomes dos níveis são definidos pelo canal do YouTube que oferece a assinatura. Em algumas situações, esse campo não é preenchido.
snippet.giftMembershipReceivedDetails.gifterChannelId string
O ID do usuário que fez a compra da assinatura de presente. Isso corresponde ao snippet.authorChannelId da mensagem de assinatura de presente associada.
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId string
O ID da mensagem de Assinatura de presente relacionada à assinatura de presente. Esse ID sempre se referirá a uma mensagem em que o type é membershipGiftingEvent.
authorDetails object
O objeto authorDetails contém outros detalhes sobre o usuário que postou essa mensagem.
authorDetails.channelId string
O ID do canal do YouTube do autor.
authorDetails.channelUrl string
É o URL do canal do YouTube do autor.
authorDetails.displayName string
É o nome de exibição do canal do autor no YouTube.
authorDetails.profileImageUrl string
É o URL do avatar do canal do autor no YouTube.
authorDetails.isVerified boolean
Esse valor indica se a identidade do autor foi verificada pelo YouTube.
authorDetails.isChatOwner boolean
Esse valor indica se o autor é o proprietário do chat ao vivo.
authorDetails.isChatSponsor boolean
Esse valor indica se o autor é um patrocinador do chat ao vivo.
authorDetails.isChatModerator boolean
Esse valor indica se o autor é moderador do chat ao vivo.