LiveChatMessages: streamList

Esse método estabelece uma conexão de transmissão do servidor que permite receber mensagens de chat ao vivo para um chat específico com baixa latência. Essa é a maneira mais eficiente de consumir mensagens de chat ao vivo, porque envia novas mensagens ao cliente assim que elas ficam disponíveis, em vez de exigir que você pesquise atualizações.

Quando você se conecta pela primeira vez, a API envia uma série de mensagens que contêm 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, você poderá usar esse token para retomar o stream. Para fazer isso, forneça o último nextPageToken recebido como o valor do parâmetro pageToken na 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 de chat ao vivo em streaming.

Solicitação

Parâmetros

A tabela a seguir lista os parâmetros aceitos por 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 do chat 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 recuperar uma string de exibição de moeda localizada para um idioma específico do aplicativo com suporte do site do YouTube. Por exemplo, em inglês, a moeda seria exibida como $1.50, mas em francês, seria 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 precisam ser retornadas no conjunto de resultados. Os valores aceitáveis são 200 a 2000, inclusive. O valor padrão é 500.

A solicitação inicial feita sem um token de continuação só vai conter os eventos mais recentes. Esse valor pode ser menor que maxResults, se fornecido.

A API não recupera eventos mais antigos do que aqueles retornados pela solicitação inicial feita sem um token de continuação.

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 serão de 88 x 88 pixels. Os valores aceitáveis estão no intervalo de 16 a 720, inclusive.

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": unsigne{d 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 de 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 subjacente ficou off-line. Essa propriedade só está presente se o stream 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 enquete é um recurso liveChatMessage com o tipo pollEvent, que representa uma enquete ativa. Só pode haver uma enquete por chat.

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 do 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. Verifique 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 do 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 o valor do parâmetro liveChatId da solicitação para garantir que ele esteja correto.
RESOURCE_EXHAUSTED (8) Resource has been exhausted (e.g. check quota) A solicitação foi enviada muito rapidamente 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. Verifique 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 do 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 o valor do parâmetro liveChatId da solicitação para garantir que ele esteja correto.
HttpStatus.FORBIDDEN (403) rateLimitExceeded A solicitação foi enviada muito rapidamente 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.