LiveChatMessages

O recurso liveChatMessage representa uma mensagem de chat 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 chat ao vivo é ativado por padrão para transmissões ao vivo e fica disponível enquanto o evento ao vivo está ativo. Depois que o evento terminar, 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. Faça um teste agora.
excluir
Exclui uma mensagem de chat. 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 do recurso da API. O valor será youtube#liveChatMessage.
etag etag
A ETag deste recurso.
id string
O ID que o YouTube atribui para identificar exclusivamente a mensagem.
snippet object
O objeto snippet contém os principais detalhes 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. Não é possível inserir mais mensagens depois deste. Isso ocorre naturalmente um pouco depois que a transmissão termina. No momento, esse tipo de mensagem não é enviado nos 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 conteúdo de exibição.
  • sponsorOnlyModeEndedEvent – O chat não está mais no modo somente patrocinadores, o que significa que os usuários que não são patrocinadores agora podem enviar mensagens. Este evento não tem conteúdo de exibição.
  • sponsorOnlyModeStartedEvent – O bate-papo entrou no modo somente para patrocinadores, o que significa que apenas os patrocinadores podem enviar mensagens. Este evento não tem conteúdo de exibição.
  • newSponsorEvent – Um novo usuário patrocinou o canal que é 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 existia com esse ID e horário de publicação, mas ela foi excluída. Ele não é enviado após a exclusão de uma mensagem, mas sim para indicar onde a mensagem 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 mensagem:
  • 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 de 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 de mensagem for membershipGiftingEvent, o valor da propriedade identificará o usuário que fez a compra da assinatura de presente.
  • Se o tipo de 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 aos 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 sobre 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: essa 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: essa propriedade foi descontinuada.

Uma string renderizada que mostra o valor e a moeda do fundo para o usuário.
snippet.fanFundingEventDetails.userComment string
Observação: esta propriedade foi descontinuada.

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 da propriedade id da mensagem de texto original. Por exemplo, se uma textMessageEvent tiver o valor 123 da propriedade id e essa mensagem for excluída, o valor snippet.messageDeletedDetails.deletedMessageId será 123 para essa mensagem.

Se você armazenar mensagens de chat em cache depois de recuperá-las, use o valor dessa 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. Ela também contém detalhes sobre a proibição em si. 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
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ó 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 de membros. Ela só estará presente se o tipo de mensagem for memberMilestoneChatEvent.
snippet.memberMilestoneChatDetails.userComment string
O comentário adicionado por um membro à mensagem prêmio para membros. Este campo fica vazio para mensagens sem comentários do membro.
snippet.memberMilestoneChatDetails.memberMonth unsigned integer
O total de meses (arredondados) que o espectador recebeu e recebeu esta mensagem prêmio para membros. Esse é o mesmo número de meses que está sendo exibido para os usuários do YouTube.
snippet.memberMilestoneChatDetails.memberLevelName string
O nome do nível de que o espectador participa. 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 de aviso de novos membros. Ele só será definido se o tipo for newSponsorEvent. Observação: "membro" é o novo termo para "patrocinador".
snippet.newSponsorDetails.memberLevelName string
O nome do nível de que o espectador participa. 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 montante 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
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 da compra e a moeda. 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. Em um recurso superChatEvent, a propriedade snippet.messageType contém esse valor.

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

Os níveis do Super Chat estão documentados 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 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ó é exibida como parte da mensagem do Super Sticker quando os usuários abrem a janela de chat no YouTube. No entanto, o URL da imagem não está disponível pela 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 que você quer para o texto.
snippet.superStickerDetails.superStickerMetadata.language string
O idioma do valor da propriedade snippet.superStickerDetails.superStickerMetadata.altText.
snippet.superStickerDetails.amountMicros unsigned long
O montante 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
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 da compra e a moeda. A string precisa ser mostrada ao usuário.
snippet.superStickerDetails.tier unsigned integer
O nível da mensagem paga. Em um recurso superChatEvent, a propriedade snippet.messageType contém esse valor.

O nível é baseado no valor gasto para comprar a mensagem. Ela também determina a cor usada para destacar a mensagem na interface do chat ao vivo, o tamanho máximo da mensagem e por quanto tempo ela fica fixada 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.membershipGiftingDetails object
Esse objeto contém detalhes sobre um evento de Assinatura de presente. Ele só estará presente se 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". Ele só estará presente se message type for giftMembershipReceivedEvent.
snippet.giftMembershipReceivedDetails.memberLevelName string
O nome do nível de que o espectador participa. Ele 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. Ele corresponde ao snippet.authorChannelId da mensagem de assinatura de presente associada.
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId string
O ID da mensagem de presente da assinatura relacionada à assinatura de presente. Esse ID sempre se refere a uma mensagem em que o type é membershipGiftingEvent.
authorDetails object
O objeto authorDetails contém detalhes adicionais 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 YouTube do autor.
authorDetails.profileImageUrl string
O URL do avatar do canal do YouTube do autor.
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 é um moderador do chat ao vivo.