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 é ativado por padrão para transmissões ao vivo e fica disponível enquanto o evento ao vivo estiver ativo. Após o término do evento, o chat ao vivo não estará mais disponível.

Métodos

A API é compatível com os seguintes métodos para recursos liveChatMessages:

list
Lista as mensagens de um chat específico. Faça um teste agora.
inserir
Adiciona uma mensagem ou enquete a um chat ao vivo. Faça um teste agora.
transition
Faz a transição do estado de uma mensagem ao vivo. Faça um teste agora.
delete
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
    },
    "pollDetails": {
      "metadata": {
        "options": {
          "optionText": 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 de recurso da API. O valor será youtube#liveChatMessage.
etag etag
A Etag deste recurso.
id string
O ID atribuído pelo YouTube para identificar a mensagem de forma exclusiva.
snippet object
O objeto snippet contém os principais detalhes da mensagem de chat.
snippet.type string
O tipo de 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 bate-papo foi encerrado e nenhuma outra mensagem pode ser inserida depois desta. Isso ocorrerá naturalmente um pouco depois do término da transmissão. 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 bate-papo 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 patrocinadores, o que significa que somente 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 marca de exclusão 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 é mostrado para indicar onde a mensagem estava antes da exclusão. Somente 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.
  • pollDetails – Um usuário criou uma enquete ao vivo.
snippet.liveChatId string
O ID que identifica de forma exclusiva 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 escreveu a mensagem. Esse 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 a escreveu.
  • 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 vai identificar o moderador que a excluiu.
  • 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 a enviou.
  • 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 da assinatura de presente.
  • 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 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 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: esse objeto e as propriedades filhas dele foram descontinuados. 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ó vai 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: essa propriedade foi descontinuada.

A moeda em que o fundo foi feito.
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: esta propriedade foi descontinuada.

O comentário adicionado pelo usuário ao evento de financiamento por fãs.
snippet.textMessageDetails object
Esse objeto contém detalhes sobre a mensagem de texto. Ela só vai estar presente se o tipo de mensagem for textMessageEvent.
snippet.textMessageDetails.messageText string
A mensagem do usuário.
snippet.messageDeletedDetails object
Este 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. Ela só vai 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 uma textMessageEvent tiver um valor de propriedade id de 123 e essa mensagem for excluída posteriormente, 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
Este objeto contém detalhes sobre um usuário que foi banido do chat. Ele também contém detalhes sobre a proibição. Os usuários podem ser banidos de um chat de forma permanente ou temporária.
snippet.userBannedDetails.bannedUserDetails object
Este 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 proibição. Os valores válidos para esta 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 de membro. Ela só vai estar 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 está vazio para mensagens sem um comentário do participante.
snippet.memberMilestoneChatDetails.memberMonth unsigned integer
O total de meses (arredondado) em que o espectador foi membro e que concedeu esta Mensagem prêmio para membros. Esse é o mesmo número de meses que é exibido aos 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 a assinatura. Em algumas situações, esse campo não é preenchido.
snippet.newSponsorDetails object
Esse objeto contém detalhes sobre o evento de anúncio de novos membros. Isso só vai ser 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 a assinatura. 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 inferior. Para leitores 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ó vai estar presente se o tipo de mensagem for superChatEvent.
snippet.superChatDetails.amountMicros unsigned long
O montante da compra, em micros da moeda de compra. Por exemplo, se o montante da compra for de 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 da compra e a moeda. A string é exibida para o 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 para comprar a mensagem. Ele 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.

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 montante 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ó vai estar presente se o tipo de mensagem for superStickerEvent.
snippet.superStickerDetails.superStickerMetadata object
Detalhes sobre o Super Sticker.
snippet.superStickerDetails.superStickerMetadata.stickerId string
Um código exclusivo que identifica a imagem do adesivo. A imagem só aparece como parte da mensagem do Super Sticker quando os usuários abrem a janela do chat no YouTube. No entanto, o URL da imagem não está disponível ao usar a API. Apenas como referência, você encontra os IDs de adesivos relacionados a cada Super Sticker 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 montante da compra, em micros da moeda de compra. Por exemplo, se o montante da compra for de 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 da compra e a moeda. A string é exibida para o 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 para comprar a mensagem. Ele também determina a cor usada para destacar a mensagem no chat ao vivo, o tamanho máximo e por quanto tempo ela fica fixada no mostrador.

Os níveis do Super Chat, que também abrangem os 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 montante 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ó vai 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 de enquete ao vivo. Os valores válidos para essa propriedade são:
  • unknown
  • active
  • closed
snippet.membershipGiftingDetails object
Este objeto contém detalhes sobre um evento de Assinatura de presente. Ele só vai 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 de assinatura de presente recebida. Ele só vai estar 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 assinatura 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 presente de assinatura associada.
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId string
O código da mensagem de presente da assinatura relacionada a ela. Esse ID sempre se referirá a uma mensagem em que o type é membershipGiftingEvent.
authorDetails object
O objeto authorDetails contém detalhes adicionais sobre o usuário que postou a 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
Este valor indica se a identidade do autor foi confirmada pelo YouTube.
authorDetails.isChatOwner boolean
Esse valor indica se o autor é o proprietário do chat ao vivo.
authorDetails.isChatSponsor boolean
Este valor indica se o autor é um patrocinador do bate-papo ao vivo.
authorDetails.isChatModerator boolean
Esse valor indica se o autor é um moderador do chat ao vivo.