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-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 está ativo. Depois que o evento termina, o chat ao vivo fica indisponível.
Métodos
A API é compatível com os seguintes métodos para recursos liveChatMessages:
- list
 - Lista as mensagens do chat ao vivo de um chat específico. Faça um teste agora.
 - streamList
 - Ativa uma conexão de streaming do servidor para receber mensagens de chat ao vivo de um chat específico com baixa latência. Faça um teste agora.
 - inserir
 - Adiciona uma mensagem ou uma enquete a um chat ao vivo. Faça um teste agora.
 - transition
 - Faz a transição do estado de uma mensagem publicada. 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,
          "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 | 
      stringIdentifica o tipo do recurso da API. O valor será youtube#liveChatMessage. | 
    
etag | 
      etagA ETag deste recurso.  | 
    
id | 
      stringO ID que o YouTube atribui para identificar exclusivamente a mensagem.  | 
    
snippet | 
      objectO objeto snippet contém detalhes principais sobre a mensagem de chat. | 
    
snippet.type | 
      stringO 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: 
  | 
    
snippet.liveChatId | 
      stringO 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 | 
      stringO ID do usuário que criou a mensagem. Esse campo só é preenchido para os seguintes tipos de mensagem: 
  | 
    
snippet.publishedAt | 
      datetimeA 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 | 
      booleanIndica se a mensagem tem conteúdo de exibição que deve ser mostrado aos usuários.  | 
    
snippet.displayMessage | 
      stringContém uma string que é exibida aos usuários. Esse campo não aparece se o tipo de mensagem for chatEndedEvent ou tombstone. | 
    
snippet.fanFundingEventDetails | 
      objectObservação: esse objeto e as propriedades filho dele foram descontinuados. Desde 28 de fevereiro de 2017, os recursos liveChatMessage não retornam mais detalhes sobre eventos de financiamento pelos 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 longObservação: essa propriedade foi descontinuada. O valor do fundo.  | 
    
snippet.fanFundingEventDetails.currency | 
      stringObservação: essa propriedade foi descontinuada. A moeda em que o fundo foi feito.  | 
    
snippet.fanFundingEventDetails.amountDisplayString | 
      stringObservação: essa propriedade foi descontinuada. Uma string renderizada que mostra o valor e a moeda do fundo ao usuário.  | 
    
snippet.fanFundingEventDetails.userComment | 
      stringObservação: essa propriedade foi descontinuada. O comentário adicionado pelo usuário a esse evento de financiamento por fãs.  | 
    
snippet.textMessageDetails | 
      objectEsse objeto contém detalhes sobre a mensagem de texto. Ele só está presente se o tipo de mensagem for textMessageEvent. | 
    
snippet.textMessageDetails.messageText | 
      stringA mensagem do usuário.  | 
    
snippet.messageDeletedDetails | 
      objectEsse 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 | 
      stringO ID que identifica exclusivamente a mensagem excluída. O valor é o mesmo 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 | 
      objectEsse 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 | 
      objectEsse objeto contém informações sobre o usuário banido.  | 
    
snippet.userBannedDetails.bannedUserDetails.channelId | 
      stringO ID do canal do YouTube do usuário banido.  | 
    
snippet.userBannedDetails.bannedUserDetails.channelUrl | 
      stringO URL do canal do YouTube do usuário banido.  | 
    
snippet.userBannedDetails.bannedUserDetails.displayName | 
      stringO nome de exibição do canal do YouTube do usuário banido.  | 
    
snippet.userBannedDetails.bannedUserDetails.profileImageUrl | 
      stringO avatar do canal do YouTube do usuário banido.  | 
    
snippet.userBannedDetails.banType | 
      stringO tipo de proibição. Os valores válidos para essa propriedade são: 
  | 
    
snippet.userBannedDetails.banDurationSeconds | 
      unsigned longA duração da proibição. Essa propriedade só aparece se o valor da propriedade snippet.userBannedDetails.banType for temporary. | 
    
snippet.memberMilestoneChatDetails | 
      objectEsse objeto contém detalhes sobre um evento de conquista de membro. Ele só está presente se o tipo de mensagem for memberMilestoneChatEvent. | 
    
snippet.memberMilestoneChatDetails.userComment | 
      stringO comentário adicionado pelo membro a esta Mensagem prêmio para membros. Esse campo fica vazio para mensagens sem um comentário do membro.  | 
    
snippet.memberMilestoneChatDetails.memberMonth | 
      unsigned integerO número total de meses (arredondado para cima) em que o espectador foi membro e ganhou a Mensagem prêmio para membros. Esse é o mesmo número de meses exibido para os usuários do YouTube.  | 
    
snippet.memberMilestoneChatDetails.memberLevelName | 
      stringO 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 | 
      objectEsse objeto contém detalhes sobre o evento de anúncio de novo membro. Isso só será definido se o tipo for newSponsorEvent. "Membro" é o termo usado para "patrocinador".
     | 
    
snippet.newSponsorDetails.memberLevelName | 
      stringO 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 | 
      boolIndica se o espectador 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 | 
      objectEsse 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 longO valor da compra, em micros da moeda de compra. Por exemplo, se o valor da compra for de um dólar, o valor da propriedade snippet.amountMicros será 1000000. | 
    
snippet.superChatDetails.currency | 
      stringA moeda em que a compra foi feita. O valor é um código de moeda ISO 4217.  | 
    
snippet.superChatDetails.amountDisplayString | 
      stringUma string, como $1.00, que contém o valor e a moeda da compra. A string deve ser exibida para o usuário. | 
    
snippet.superChatDetails.userComment | 
      stringO comentário adicionado pelo usuário a esse evento do Super Chat.  | 
    
snippet.superChatDetails.tier | 
      unsigned integerO 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. Ele 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 ela fica fixada no ticker. Os níveis do Super Chat estão documentados na Central de Ajuda do YouTube. (Consulte a seção expansível sobre detalhes da compra do Super Chat.) Nessa lista, a camada com o menor valor de compra é a 1, o próximo menor valor é a camada 2 e assim por diante.  | 
    
snippet.superStickerDetails | 
      objectEsse objeto contém detalhes sobre um evento de Super Sticker. Ele só está presente se o tipo de mensagem for superStickerEvent. | 
    
snippet.superStickerDetails.superStickerMetadata | 
      objectDetalhes sobre o Super Sticker.  | 
    
snippet.superStickerDetails.superStickerMetadata.stickerId | 
      stringUm ID exclusivo que identifica a imagem do adesivo. A imagem só aparece como parte da mensagem do Supersticker quando os usuários abrem a janela de chat no YouTube. No entanto, o URL da imagem não está disponível usando a API. Para referência, confira neste arquivo CSV (em inglês) quais IDs de adesivos estão relacionados a quais Superadesivos.  | 
    
snippet.superStickerDetails.superStickerMetadata.altText | 
      stringUma 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 | 
      stringO idioma do valor da propriedade snippet.superStickerDetails.superStickerMetadata.altText. | 
    
snippet.superStickerDetails.amountMicros | 
      unsigned longO valor da compra, em micros da moeda de compra. Por exemplo, se o valor da compra for de um dólar, o valor da propriedade snippet.amountMicros será 1000000. | 
    
snippet.superStickerDetails.currency | 
      stringA moeda em que a compra foi feita. O valor é um código de moeda ISO 4217.  | 
    
snippet.superStickerDetails.amountDisplayString | 
      stringUma string, como $1.00, que contém o valor e a moeda da compra. A string deve ser exibida para o usuário. | 
    
snippet.superStickerDetails.tier | 
      unsigned integerO 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. Ele também determina a cor usada para destacar a mensagem na interface do chat ao vivo, o tamanho máximo da mensagem e o tempo que ela fica fixada no ticker. Os níveis do Super Chat, que também incluem os Super Stickers, estão documentados na Central de Ajuda do YouTube. (Consulte a seção expansível sobre detalhes da compra do Super Chat.) Nessa lista, a camada com o menor valor de compra é a 1, o próximo menor valor é a camada 2 e assim por diante.  | 
    
snippet.pollDetails | 
      objectEsse objeto contém detalhes sobre um evento de pesquisa. Ele só está presente se o tipo de mensagem for pollEvent. | 
    
snippet.pollDetails.metadata | 
      objectDetalhes sobre o evento de pesquisa.  | 
    
snippet.pollDetails.metadata.options | 
      objectAs opções na enquete ao vivo.  | 
    
snippet.pollDetails.metadata.options.optionText | 
      stringO texto da opção de enquete ao vivo.  | 
    
snippet.pollDetails.metadata.options.tally | 
      stringA contagem da opção de enquete ao vivo. A contagem só aparece se a solicitação de API for autorizada pelo proprietário do canal.  | 
    
snippet.pollDetails.metadata.questionText | 
      stringO texto da pergunta da enquete em tempo real.  | 
    
snippet.pollDetails.metadata.status | 
      enumO status do evento de enquete ao vivo. Os valores válidos para essa propriedade são: 
  | 
    
snippet.membershipGiftingDetails | 
      objectEsse objeto contém detalhes sobre um evento de presente de assinatura. Ele só está presente se o message type for membershipGiftingEvent. | 
    
snippet.membershipGiftingDetails.giftMembershipsCount | 
      integerO número de assinaturas de presente compradas pelo usuário.  | 
    
snippet.membershipGiftingDetails.giftMembershipsLevelName | 
      stringO 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 | 
      objectEsse objeto contém detalhes sobre um evento de assinatura recebida como presente. Ele só está presente se o message type for giftMembershipReceivedEvent. | 
    
snippet.giftMembershipReceivedDetails.memberLevelName | 
      stringO nome do nível em que o espectador é membro. Isso corresponde ao snippet.membershipGiftingDetails.giftMembershipsLevelName da mensagem associada de presente de assinatura. 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 | 
      stringO ID do usuário que fez a compra do presente de assinatura. Isso corresponde ao snippet.authorChannelId da mensagem associada de presente de assinatura. | 
    
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId | 
      stringO ID da mensagem de presente de assinatura relacionada a esta assinatura presenteada. Esse ID sempre se refere a uma mensagem cujo type é membershipGiftingEvent. | 
    
authorDetails | 
      objectO objeto authorDetails contém mais detalhes sobre o usuário que postou essa mensagem. | 
    
authorDetails.channelId | 
      stringO ID do canal do YouTube do autor.  | 
    
authorDetails.channelUrl | 
      stringO URL do canal do YouTube do autor.  | 
    
authorDetails.displayName | 
      stringO nome de exibição do canal do YouTube do autor.  | 
    
authorDetails.profileImageUrl | 
      stringO URL do avatar do canal do YouTube do autor.  | 
    
authorDetails.isVerified | 
      booleanEsse valor indica se a identidade do autor foi verificada pelo YouTube.  | 
    
authorDetails.isChatOwner | 
      booleanEsse valor indica se o autor é o proprietário do chat em tempo real.  | 
    
authorDetails.isChatSponsor | 
      booleanEsse valor indica se o autor é um patrocinador do chat ao vivo.  | 
    
authorDetails.isChatModerator | 
      booleanEsse valor indica se o autor é um moderador do chat ao vivo.  |