LiveChatMessages: streamList

Este método establece una conexión de transmisión del servidor que te permite recibir mensajes de chat en vivo para un chat específico con baja latencia. Esta es la forma más eficiente de consumir mensajes de chat en vivo, ya que envía mensajes nuevos a tu cliente en cuanto están disponibles, en lugar de requerir que sondeos para obtener actualizaciones.

Cuando te conectas por primera vez, la API envía una serie de mensajes que contienen el historial de chat reciente. A medida que se publiquen mensajes nuevos, el servidor seguirá enviándolos a través de la conexión abierta.

Los mensajes de cada respuesta del servidor se ordenan del más antiguo al más reciente. Cada respuesta también incluye un nextPageToken. Si tu cliente se desconecta, puedes usar este token para reanudar la transmisión. Para ello, proporciona el último nextPageToken que recibiste como el valor del parámetro pageToken en tu nueva solicitud de conexión. Luego, la API reanudará el envío de mensajes desde el punto en que lo dejaste.

Demostración

Para obtener una demostración en Python de este extremo, consulta la guía de chat en vivo de transmisión.

Solicitud

Parámetros

En la siguiente tabla, se enumeran los parámetros que admite esta consulta. Todos los parámetros mencionados son parámetros de consulta.

Parámetros
Parámetros obligatorios
liveChatId string
El parámetro liveChatId especifica el ID del chat cuyos mensajes se mostrarán. El ID de chat en vivo asociado con una transmisión se muestra en la propiedad snippet.liveChatId del recurso liveBroadcast.
part string
El parámetro part especifica las partes del recurso liveChatMessage que incluirá la respuesta de la API. Los valores admitidos son id, snippet y authorDetails.
Parámetros opcionales
hl string
El parámetro hl indica a la API que recupere una cadena de visualización de moneda localizada para un idioma de aplicación específico que admita el sitio web de YouTube.
Por ejemplo, en inglés, la moneda se mostraría como $1.50, pero en francés, se mostraría como 1,50$.

El valor del parámetro debe ser un código de idioma incluido en la lista que muestra el método i18nLanguages.list.
maxResults unsigned integer

El parámetro maxResults especifica la cantidad máxima de mensajes que se deben mostrar en el conjunto de resultados. Los valores aceptables son 200 a 2000, inclusive. El valor predeterminado es 500.

La solicitud inicial que se realiza sin un token de continuación solo contendrá los eventos más recientes. Este valor puede ser menor que maxResults, si se proporciona.

La API no recupera eventos anteriores a los que muestra la solicitud inicial realizada sin un token de continuación.

pageToken string
El parámetro pageToken identifica una página específica del conjunto de resultados que se debe mostrar. En una respuesta de la API, la propiedad nextPageToken identifica otras páginas que se podrían recuperar.
profileImageSize unsigned integer
El parámetro profileImageSize especifica el tamaño de las imágenes de perfil de usuario que se deben mostrar en el conjunto de resultados. Las imágenes son cuadradas. El valor predeterminado es 88, lo que significa que las imágenes serán de 88 px por 88 px. Los valores aceptables están en el rango de 16 a 720, inclusive.

Cuerpo de la solicitud

No proporciones un cuerpo de la solicitud cuando llames a este método.

Respuesta

Si se aplica correctamente, este método muestra un cuerpo de respuesta con la siguiente estructura:

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

Propiedades

La siguiente tabla define las propiedades que aparecen en este recurso:

Propiedades
kind string
Identifica el tipo de recurso de la API. El valor será youtube#liveChatMessageListResponse.
etag etag
Es el Etag de este recurso.
nextPageToken string
Es el token que se puede usar como el valor del parámetro pageToken para recuperar la siguiente página del conjunto de resultados.
offlineAt datetime
Es la fecha y hora en que la transmisión en vivo subyacente se desconectó. Esta propiedad solo está presente si la transmisión ya está sin conexión. El valor se especifica en formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
pageInfo object
El objeto pageInfo encapsula la información de paginación del conjunto de resultados.
pageInfo.totalResults integer
Es la cantidad total de resultados en el conjunto de resultados.
pageInfo.resultsPerPage integer
Es la cantidad de resultados incluidos en la respuesta de la API.
items[] list
Es una lista de mensajes. Cada elemento de la lista es un recurso liveChatMessage.
activePollItem object
Son los datos de la encuesta en el mensaje. Cada encuesta es un recurso liveChatMessage con el tipo pollEvent, que representa una encuesta activa. Solo puede haber una encuesta por chat.

Errores

En la siguiente tabla, se identifican los mensajes de error que la API podría mostrar en respuesta a una llamada a este método. Consulta la documentación del mensaje de error para obtener más detalles.

Cuando se usa gRPC para conectarse:

Código de error de gRPC Detalle del error Descripción
PERMISSION_DENIED (7) The caller does not have permission No tienes los permisos necesarios para recuperar mensajes del chat en vivo especificado.
INVALID_ARGUMENT (3) Request contains an invalid argument No se pudieron analizar los parámetros proporcionados. Asegúrate de que liveChatId y otros parámetros tengan el formato correcto.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_DISABLED. El chat en vivo especificado está inhabilitado.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_ENDED. No puedes recuperar mensajes del chat en vivo finalizado.
NOT_FOUND (5) Requested entity was not found No se puede encontrar el chat en vivo que intentas recuperar. Verifica el valor del parámetro liveChatId de la solicitud para asegurarte de que sea correcto.
RESOURCE_EXHAUSTED (8) Resource has been exhausted (e.g. check quota) La solicitud se envió demasiado rápido después de la solicitud anterior. Este error ocurre cuando las solicitudes a la API para recuperar mensajes se envían con más frecuencia que las frecuencias de actualización de YouTube, lo que desperdicia ancho de banda de forma innecesaria.

* Debido a una limitación de gRPC, no es posible distinguir según el código de error entre un caso LIVE_CHAT_DISABLED y un caso LIVE_CHAT_ENDED. YouTube está trabajando activamente en una solución para abordar este problema.

Cuando se usa tráfico web para conectarse:

Tipo de error Detalle del error Descripción
HttpStatus.FORBIDDEN (403) forbidden No tienes los permisos necesarios para recuperar mensajes del chat en vivo especificado.
HttpStatus.BAD_REQUEST (400) Reason for invalid request, e.g. pageTokenInvalid No se pudieron analizar los parámetros proporcionados. Asegúrate de que liveChatId y otros parámetros tengan el formato correcto.
HttpStatus.FORBIDDEN (403) liveChatDisabled LIVE_CHAT_DISABLED. El chat en vivo especificado está inhabilitado.
HttpStatus.FORBIDDEN (403) liveChatEnded LIVE_CHAT_ENDED. No puedes recuperar mensajes del chat en vivo finalizado.
HttpStatus.NOT_FOUND (404) liveChatNotFound No se puede encontrar el chat en vivo que intentas recuperar. Verifica el valor del parámetro liveChatId de la solicitud para asegurarte de que sea correcto.
HttpStatus.FORBIDDEN (403) rateLimitExceeded La solicitud se envió demasiado rápido después de la solicitud anterior. Este error ocurre cuando las solicitudes a la API para recuperar mensajes se envían con más frecuencia que las frecuencias de actualización de YouTube, lo que desperdicia ancho de banda de forma innecesaria.