LiveChatMessages: streamList

Esse método estabelece uma conexão de streaming do servidor que permite receber mensagens do chat ao vivo de um chat específico com baixa latência. Essa é a maneira mais eficiente de consumir mensagens de chat em tempo real, já que ela envia novas mensagens ao seu cliente assim que elas ficam disponíveis, em vez de exigir que você faça uma pesquisa por atualizações.

Quando você se conecta pela primeira vez, a API envia uma série de mensagens com o histórico de chat recente. À medida que novas mensagens são postadas, o servidor continua enviando-as pela conexão aberta.

As mensagens em cada resposta do servidor são ordenadas da mais antiga para a mais recente. Cada resposta também inclui um nextPageToken. Se o cliente se desconectar, use esse token para retomar a transmissão. Para fazer isso, forneça o último nextPageToken recebido como o valor do parâmetro pageToken na sua nova solicitação de conexão. A API vai retomar o envio de mensagens do ponto em que você parou.

Demonstração

Para uma demonstração em Python desse endpoint, consulte o guia Chat em tempo real por streaming.

Solicitação

Parâmetros

A tabela a seguir lista os parâmetros compatíveis com essa consulta. Todos os parâmetros listados são os parâmetros de consulta.

Parâmetros
Parâmetros obrigatórios
liveChatId string
O parâmetro liveChatId especifica o ID da conversa cujas mensagens serão retornadas. O ID do chat ao vivo associado a uma transmissão é retornado na propriedade snippet.liveChatId do recurso liveBroadcast.
part string
O parâmetro part especifica as partes do recurso liveChatMessage que a resposta da API vai incluir. Os valores aceitos são id, snippet e authorDetails.
Parâmetros opcionais
hl string
O parâmetro hl instrui a API a extrair uma string de exibição de moeda localizada para um idioma do aplicativo específico compatível com o site do YouTube. Por exemplo, em inglês, a moeda seria exibida como $1.50, mas em francês, como 1,50$.

O valor do parâmetro precisa ser um código de idioma incluído na lista retornada pelo método i18nLanguages.list.
maxResults unsigned integer
O parâmetro maxResults especifica o número máximo de mensagens que devem ser retornadas no conjunto de resultados. Os valores aceitos vão de 200 a 2000. O valor padrão é 500.
pageToken string
O parâmetro pageToken identifica uma página específica no conjunto de resultados que precisa ser retornada. Em uma resposta da API, a propriedade nextPageToken identifica outras páginas que podem ser recuperadas.
profileImageSize unsigned integer
O parâmetro profileImageSize especifica o tamanho das fotos de perfil do usuário que precisam ser retornadas no conjunto de resultados. As imagens são quadradas. O valor padrão é 88, o que significa que as imagens terão 88 x 88 pixels. Os valores aceitos estão no intervalo de 16 a 720.

Corpo da solicitação

Não forneça um corpo de solicitação ao chamar esse método.

Resposta

Se for bem-sucedido, esse método retornará um corpo de resposta com esta estrutura:

{
  "kind": "youtube#liveChatMessageListResponse",
  "etag": etag,
  "nextPageToken": string,
  "pollingIntervalMillis": unsigned integer,
  "offlineAt": datetime,
  "pageInfo": {
    "totalResults": integer,
    "resultsPerPage": integer
  },
  "items": [
    liveChatMessage Resource
  ],
  "activePollItem": liveChatMessage Resource
}

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#liveChatMessageListResponse.
etag etag
A ETag deste recurso.
nextPageToken string
O token que pode ser usado como o valor do parâmetro pageToken para recuperar a próxima página no conjunto de resultados.
offlineAt datetime
A data e a hora em que a transmissão ao vivo ficou off-line. Essa propriedade só estará presente se a transmissão já estiver off-line. O valor é especificado no formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
pageInfo object
O objeto pageInfo encapsula informações de paginação para o conjunto de resultados.
pageInfo.totalResults integer
O número total de resultados no conjunto de resultados.
pageInfo.resultsPerPage integer
O número de resultados incluídos na resposta da API.
items[] list
Uma lista de mensagens. Cada item da lista é um recurso liveChatMessage.
activePollItem object
Os dados da enquete na mensagem. Cada pesquisa é um recurso liveChatMessage com o tipo pollEvent, que representa uma pesquisa ativa. Só é possível fazer uma enquete por conversa.

Erros

A tabela a seguir identifica as mensagens de erro que a API pode retornar em resposta a uma chamada para esse método. Consulte a documentação da mensagem de erro para mais detalhes.

Ao usar o gRPC para se conectar:

Código de erro do gRPC Detalhe do erro Descrição
PERMISSION_DENIED (7) The caller does not have permission Você não tem as permissões necessárias para recuperar mensagens do chat ao vivo especificado.
INVALID_ARGUMENT (3) Request contains an invalid argument Falha ao analisar os parâmetros fornecidos. Confira se o liveChatId e outros parâmetros estão no formato correto.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_DISABLED. O chat ao vivo especificado está desativado.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_ENDED. Não é possível recuperar mensagens de um chat ao vivo encerrado.
NOT_FOUND (5) Requested entity was not found Não foi possível encontrar o chat ao vivo que você está tentando recuperar. Verifique se o valor do parâmetro liveChatId da solicitação está correto.
RESOURCE_EXHAUSTED (8) Resource has been exhausted (e.g. check quota) A solicitação foi enviada muito rápido após a anterior. Esse erro ocorre quando as solicitações de API para recuperar mensagens são enviadas com mais frequência do que as taxas de atualização do YouTube, o que desperdiça largura de banda desnecessariamente.

* Devido a uma limitação do gRPC, não é possível distinguir com base no código de erro entre um caso LIVE_CHAT_DISABLED e um caso LIVE_CHAT_ENDED. O YouTube está trabalhando ativamente em uma solução para resolver esse problema.

Ao usar o tráfego da Web para se conectar:

Tipo de erro Detalhe do erro Descrição
HttpStatus.FORBIDDEN (403) forbidden Você não tem as permissões necessárias para recuperar mensagens do chat ao vivo especificado.
HttpStatus.BAD_REQUEST (400) Reason for invalid request, e.g. pageTokenInvalid Falha ao analisar os parâmetros fornecidos. Confira se o liveChatId e outros parâmetros estão no formato correto.
HttpStatus.FORBIDDEN (403) liveChatDisabled LIVE_CHAT_DISABLED. O chat ao vivo especificado está desativado.
HttpStatus.FORBIDDEN (403) liveChatEnded LIVE_CHAT_ENDED. Não é possível recuperar mensagens de um chat ao vivo encerrado.
HttpStatus.NOT_FOUND (404) liveChatNotFound Não foi possível encontrar o chat ao vivo que você está tentando recuperar. Verifique se o valor do parâmetro liveChatId da solicitação está correto.
HttpStatus.FORBIDDEN (403) rateLimitExceeded A solicitação foi enviada muito rápido após a anterior. Esse erro ocorre quando as solicitações de API para recuperar mensagens são enviadas com mais frequência do que as taxas de atualização do YouTube, o que desperdiça largura de banda desnecessariamente.