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 snippetconté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.liveChatIddo recursoliveBroadcast. | 
| 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 chatEndedEventoutombstone. | 
| snippet.fanFundingEventDetails | objectObservação: esse objeto e as propriedades filho dele foram descontinuados. Desde 28 de fevereiro de 2017, os recursos liveChatMessagenã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 idda mensagem de texto original. Por exemplo, se umatextMessageEventtiver um valor de propriedadeidde123e essa mensagem for excluída posteriormente, o valor desnippet.messageDeletedDetails.deletedMessageIdserá123para 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.banTypefortemporary. | 
| 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.amountMicrosserá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 propriedadesnippet.messageTypeconté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.languageidentifica o idioma do texto. Ao chamar o métodoliveChatMessages.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.amountMicrosserá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 propriedadesnippet.messageTypeconté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 typeformembershipGiftingEvent. | 
| 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 typeforgiftMembershipReceivedEvent. | 
| snippet.giftMembershipReceivedDetails.memberLevelName | stringO nome do nível em que o espectador é membro. Isso corresponde ao snippet.membershipGiftingDetails.giftMembershipsLevelNameda 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.authorChannelIdda 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 authorDetailsconté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. |