LiveChatMessages

Um 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-publicada ou um evento de financiamento por fãs.

O recurso de chat ao vivo é ativado por padrão para transmissões ao vivo e fica disponível enquanto o evento está ativo. Depois que o evento termina, o chat ao vivo não está mais disponível para ele.

Métodos

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

list
Lista as mensagens de chat ao vivo de uma conversa específica. Faça um teste agora.
inserir
Adiciona uma mensagem ou uma enquete a um chat ao vivo. Faça um teste agora.
transition
Transiciona o estado de uma mensagem ao vivo. Faça um teste agora.
delete
Exclui uma mensagem de chat. A solicitação da 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
    },
    "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
  },
}

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 e nenhuma mensagem pode ser inserida depois desta. Isso vai acontecer naturalmente um pouco depois que uma transmissão terminar. Esse tipo de mensagem não é enviado 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 conteúdo de exibição.
  • sponsorOnlyModeEndedEvent: o chat não está mais no modo somente para 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 chat 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 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 lápide indica que uma mensagem existia com esse ID e horário de publicação, mas foi excluída. Ele não é enviado após a exclusão de uma mensagem, mas aparece para indicar onde a mensagem estava antes da exclusão. Somente os campos snippet.liveChatId, snippet.type e snippet.publishedAt estão presentes neste 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.
  • pollDetails: um usuário criou uma enquete ao vivo.
snippet.liveChatId string
O ID que identifica exclusivamente o chat ao vivo associado à mensagem. 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. Este campo só é preenchido para os seguintes tipos de mensagem:
  • Se o tipo de mensagem for textMessageEvent, o valor da propriedade vai identificar o usuário que escreveu a mensagem.
  • Se o tipo de mensagem for fanFundingEvent, o valor da propriedade vai identificar o usuário que financiou a transmissão.
  • Se o tipo de mensagem for messageDeletedEvent, o valor da propriedade vai identificar o moderador que excluiu a mensagem.
  • Se o tipo de mensagem for newSponsorEvent, o valor da propriedade vai identificar o usuário que acabou de se tornar patrocinador.
  • Se o tipo de mensagem for memberMilestoneChatEvent, o valor da propriedade vai identificar o membro que enviou a mensagem.
  • Se o tipo de mensagem for userBannedEvent, o valor da propriedade vai identificar o moderador que baniu o usuário.
  • Se o tipo de mensagem for membershipGiftingEvent, o valor da propriedade vai identificar o usuário que fez a compra de presente de assinatura.
  • Se o tipo de mensagem for giftMembershipReceivedEvent, o valor da propriedade vai identificar o usuário que recebeu a assinatura de presente.
  • Se o tipo de mensagem for pollEvent, o valor da propriedade vai identificar o usuário que criou uma enquete ao vivo.
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 de exibição que precisa ser mostrado aos usuários.
snippet.displayMessage string
Contém uma string exibida para os usuários. Este campo não está presente se o tipo de mensagem for chatEndedEvent ou tombstone.
snippet.fanFundingEventDetails object
Observação: esse objeto e as propriedades filhas dele foram descontinuados. A partir de 28 de fevereiro de 2017, os recursos liveChatMessage não vão mais retornar detalhes dos eventos de financiamento por fãs.

Esse objeto contém detalhes sobre o evento de financiamento. Ele só está 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: essa 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 ao usuário.
snippet.fanFundingEventDetails.userComment string
Observação: essa propriedade foi descontinuada.

O comentário adicionado pelo usuário a esse evento de financiamento por fãs.
snippet.textMessageDetails object
Esse objeto contém detalhes sobre a mensagem de texto. Ele só está 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 do chat ou pelo proprietário do canal da transmissão ao vivo. Ele só está 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 um valor de propriedade id de 123 e essa mensagem for excluída posteriormente, o valor de snippet.messageDeletedDetails.deletedMessageId será 123 para essa mensagem.

Se você armazenar em cache as mensagens de chat 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. Ele também contém detalhes sobre a própria proibição. Os usuários podem ser banidos de uma conversa 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 usuário banido do YouTube.
snippet.userBannedDetails.bannedUserDetails.profileImageUrl string
O avatar do canal do usuário banido do YouTube.
snippet.userBannedDetails.banType string
O tipo de proibição. Os valores válidos para essa propriedade são:
  • permanente
  • temporário
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. Ele só está presente se o tipo de mensagem for memberMilestoneChatEvent.
snippet.memberMilestoneChatDetails.userComment string
O comentário adicionado pelo membro a esta mensagem prêmio para membros. Este campo fica vazio para mensagens sem um comentário do membro.
snippet.memberMilestoneChatDetails.memberMonth unsigned integer
O total de meses (arredondado para cima) em que o espectador foi membro e recebeu a Mensagem prêmio para membros. Esse é o mesmo número de meses que aparece para os usuários do YouTube.
snippet.memberMilestoneChatDetails.memberLevelName string
O nome do nível em que o espectador é membro. Os nomes dos níveis são definidos pelo canal do YouTube que oferece o Clube. Em algumas situações, esse campo não é preenchido.
snippet.newSponsorDetails object
Esse objeto contém detalhes sobre o evento "Novo membro". Isso só é definido se o tipo for newSponsorEvent. "Membro" é o termo para "patrocinador".
snippet.newSponsorDetails.memberLevelName string
O nome do nível em que o espectador é membro. Os nomes dos níveis são definidos pelo canal do YouTube que oferece o Clube. Em algumas situações, esse campo não é preenchido.
snippet.newSponsorDetails.isUpgrade bool
Indica se o espectador acabou de fazer upgrade de um nível mais baixo. Para os 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. Ele só está 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 valor 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 valor e a moeda da compra. A string é destinada a ser exibida 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. Também determina a cor usada para destacar a mensagem na interface do chat ao vivo, o comprimento máximo da mensagem e o tempo que a mensagem fica fixada no ticker.

As categorias do Super Chat estão documentadas na Central de Ajuda do YouTube. Consulte a seção expandível sobre os detalhes da compra do Super Chat. Na lista, o nível com o menor valor de compra é o 1, o próximo menor é o 2 e assim por diante.
snippet.superStickerDetails object
Esse objeto contém detalhes sobre um evento de Super Sticker. Ele só está 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. A imagem só aparece como parte da mensagem do Superadesivo quando os usuários acessam a janela de chat no YouTube. No entanto, o URL da imagem não está disponível usando a API. Para referência, confira quais IDs de adesivos estão relacionados a quais superadesivos 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
A linguagem do valor da propriedade snippet.superStickerDetails.superStickerMetadata.altText.
snippet.superStickerDetails.amountMicros unsigned long
O valor da compra, em micros da moeda de compra. Por exemplo, se o valor 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 valor e a moeda da compra. A string é destinada a ser exibida 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. Também determina a cor usada para destacar a mensagem na interface do chat ao vivo, o comprimento máximo da mensagem e o tempo que a mensagem fica fixada no ticker.

Os níveis do Super Chat, que também se aplicam aos Super Stickers, 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 1, o próximo menor é o 2 e assim por diante.
snippet.pollDetails object
Esse objeto contém detalhes sobre um evento de enquete. Ele só está presente se o tipo de mensagem for pollEvent.
snippet.pollDetails.metadata object
Detalhes sobre o evento de pesquisa.
snippet.pollDetails.metadata.options object
As opções da enquete ao vivo.
snippet.pollDetails.metadata.options.optionText string
O texto da opção de enquete ao vivo.
snippet.pollDetails.metadata.options.tally string
O total da opção de enquete ao vivo. A contagem só vai aparecer se a solicitação da API for autorizada pelo proprietário do canal.
snippet.pollDetails.metadata.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 de presente de assinatura. Ele só está 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 o Clube. Em algumas situações, esse campo não é preenchido.
snippet.giftMembershipReceivedDetails object
Esse objeto contém detalhes sobre um evento de assinatura de presente recebida. Ele só está presente se message type for giftMembershipReceivedEvent.
snippet.giftMembershipReceivedDetails.memberLevelName string
O nome do nível em que o espectador é membro. Isso corresponde ao snippet.membershipGiftingDetails.giftMembershipsLevelName da mensagem de presente de associação associada. Os nomes dos níveis são definidos pelo canal do YouTube que oferece o Clube. Em algumas situações, esse campo não é preenchido.
snippet.giftMembershipReceivedDetails.gifterChannelId string
O ID do usuário que fez a compra de presente de assinatura. Isso corresponde ao snippet.authorChannelId da mensagem de presente de associação associada.
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId string
O ID da mensagem de presente de assinatura relacionada a essa assinatura de presente. Esse ID sempre se refere a uma mensagem com type igual a membershipGiftingEvent.
authorDetails object
O objeto authorDetails contém mais 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 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 em tempo real.
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.