API de transmisión en vivo de YouTube - Historial de revisión

En esta página, se enumeran los cambios y las actualizaciones de la documentación de la API de YouTube Live Streaming. Suscríbete a este registro de cambios. Suscribirse

14 de julio de 2025

Se actualizó la descripción del método liveChatMessages.streamList para brindar orientación sobre los usos de la API de streamList.

9 de octubre de 2023

Solo como referencia, puedes encontrar qué IDs de calcomanías se relacionan con qué Súper calcomanías en este archivo CSV. Se actualizaron las definiciones de la propiedad snippet.superStickerDetails.superStickerMetadata.stickerId del recurso liveChatMessage y la propiedad snippet.superStickerMetadata.stickerId del recurso superChatEvent para reflejar esta información.

15 de septiembre de 2023

La API ahora admite una nueva forma de insertar anuncios en las transmisiones en vivo. Además de liveCuepoints, que te permite insertar pausas publicitarias manualmente en una transmisión, ahora YouTube admite una función para insertar automáticamente pausas publicitarias durante el video en una transmisión a intervalos fijos.

Si el propietario de la transmisión habilita los anuncios automatizados, puede ver los siguientes aspectos del comportamiento de los anuncios:

  • Es la duración del intervalo entre las pausas publicitarias para anuncios durante el video.
  • Es la estrategia de programación de los puntos de referencia de anuncios. Los puntos de referencia se pueden insertar de forma simultánea para todos los usuarios, o bien el tiempo de los puntos de referencia puede variar de un usuario a otro. Esta última estrategia permite que YouTube programe los puntos de referencia a una velocidad mayor, lo que permite que los usuarios reciban puntos de referencia cuando cumplan con los requisitos para hacerlo.
  • Período durante el cual no se muestran anuncios durante el video. Para esta función, el propietario de la transmisión especifica que la inserción de anuncios durante el video se pausa hasta una hora determinada.

La documentación refleja los siguientes cambios en la API para admitir esta función:

  • El recurso liveBroadcast ahora contiene un objeto monetizationDetails. Los campos del objeto indican si la inserción automática de anuncios está habilitada para la transmisión y especifican información adicional para programar los puntos de referencia.
  • El parámetro part del método liveBroadcast.list admite el valor monetizationDetails.
  • El método update se puede usar para pausar la inserción de anuncios durante el video durante un período determinado en una transmisión en vivo. La documentación ahora también identifica varios errores que pueden ocurrir cuando se actualizan los detalles de monetización de una transmisión en vivo.

1 de agosto de 2023

Esta actualización incluye los siguientes cambios:

  • El método liveBroadcasts.update ya no requiere que se especifiquen valores para los siguientes campos:

    • snippet.title
    • status.privacyStatus

    Si se omiten estos campos en la solicitud, no se modificarán.

1 de noviembre de 2022

  • El nuevo método liveBroadcasts.cuepoint permite que cualquier propietario de un canal que ejecute una transmisión en vivo en YouTube inserte puntos de referencia en esa transmisión, lo que puede activar pausas publicitarias. Este método reemplaza al método liveCuepoints.insert, que solo permitía que los socios de contenido de YouTube insertaran marcas en las transmisiones en vivo.

    Se actualizaron varias guías para reflejar la disponibilidad de este nuevo método.

  • Nota: Este es un anuncio de baja.

    El método liveCuepoints.insert dejó de estar disponible. La compatibilidad con el método liveCuepoints.insert se quitará el 1 de mayo de 2023 o después de esa fecha. Los usuarios de la API deben actualizar sus aplicaciones para llamar al método liveBroadcasts.cuepoint.

  • Se quitó la documentación del método liveBroadcasts.control. En septiembre de 2020, se publicó un aviso de baja para ese método.

1 de octubre de 2022

Esta actualización incluye los siguientes cambios:

  • El método liveBroadcasts.update ya no requiere que se especifiquen valores para los siguientes campos:

    • contentDetails.enableContentEncryption
    • contentDetails.enableDvr
    • contentDetails.enableEmbed
    • contentDetails.recordFromStart
    • contentDetails.startWithSlate

    Si se omiten estos campos en la solicitud, no se modificarán.

  • Se quitó la documentación de los campos liveBroadcast obsoletos:

    • contentDetails.enableContentEncryption
    • contentDetails.startWithSlate

1 de abril de 2022

Esta actualización incluye los siguientes cambios:

  • La propiedad snippet.type ahora admite dos valores nuevos:

    • membershipGiftingEvent
    • giftMembershipReceivedEvent
  • La nueva propiedad snippet.membershipGiftingDetails del recurso liveChatMessage y sus elementos secundarios contienen información sobre el evento de regalo de membresía. Del mismo modo, la nueva propiedad snippet.giftMembershipReceivedDetails y sus elementos secundarios contienen información sobre el evento Gift Membership Received.

15 de septiembre de 2021

Esta actualización incluye los siguientes cambios:

  • La propiedad snippet.type ahora admite dos valores nuevos:

    • newSponsorEvent
    • memberMilestoneChatEvent
  • La nueva propiedad snippet.memberMilestoneChatDetails del recurso liveChatMessage y sus elementos secundarios contienen información sobre el evento de Mensaje de recompensa para miembros. Del mismo modo, la nueva propiedad snippet.newSponsorDetails y sus elementos secundarios contienen información sobre el evento de patrocinador nuevo.

1 de diciembre de 2020 .

El método liveBroadcasts.transition de la API admite un nuevo error 403 (Forbidden), que indica que el usuario envió demasiadas solicitudes en un período determinado. El motivo del error es userRequestsExceedRateLimit.

21 de septiembre de 2020

  • Se actualizó la definición de la propiedad status.madeForKids del recurso liveBroadcast para aclarar que la propiedad es de solo lectura. Esto no refleja un cambio en la funcionalidad de la API.

    Para designar una transmisión en vivo como contenido para niños, establece la propiedad status.selfDeclaredMadeForKids en true cuando llames al método liveBroadcasts.insert para crear la transmisión.

  • Nota: Este cambio incluye un anuncio de baja y una actualización de un anuncio de baja anterior.

    El método liveBroadcasts.control quedará obsoleto a partir del 1 de octubre de 2020. Después de esa fecha, todas las llamadas a este método devolverán un error de prohibido (403), y el método se quitará por completo más adelante. Los clientes aún pueden implementar su propia claqueta agregando una superposición al video que se envía a los servidores de transferencia de YouTube.

    La fecha de baja del anuncio de baja del 16 de abril de 2020, que originalmente estaba programada para el 1 de septiembre de 2020, se pospuso y ahora se realizará a partir del 1 de octubre de 2020. Por lo tanto, las funciones incluidas en ese anuncio de baja y el método liveBroadcasts.control dejarán de estar disponibles al mismo tiempo.

17 de julio de 2020

Nota: Esta es una actualización de un anuncio anterior sobre la baja.

El campo cdn.format del recurso liveStream, que dejó de estar disponible en abril de 2016, ya no se admitirá a partir del 17 de agosto de 2020. Las solicitudes que sigan usando ese campo fallarán a partir de esa fecha.

Si tu código aún usa el campo cdn.format, debes actualizarlo para especificar la resolución y la velocidad de fotogramas por separado con las propiedades cdn.frameRate y cdn.resolution.

6 de julio de 2020

Se actualizó la guía Cómo publicar contenido en vivo de YouTube a través de HLS con los siguientes cambios:

Además, la nueva comparación de protocolos de transferencia enumera los protocolos de transferencia que admite YouTube, los códecs compatibles con cada protocolo y la información adicional sobre los casos de uso adecuados para cada protocolo.

16 de abril de 2020

Esta actualización incluye una nueva propiedad y un anuncio de baja:

  • El recurso liveBroadcast ahora admite la propiedad contentDetails.enableAutoStop. La propiedad indica si una transmisión debe detenerse automáticamente alrededor de un minuto después de que el propietario del canal deje de transmitir video en la transmisión de video vinculada.

    Se actualizó el documento sobre el ciclo de vida de una transmisión para explicar cómo cambia el proceso paso a paso de crear y administrar un evento en vivo de YouTube si configuras las propiedades contentDetails.enableAutoStart o contentDetails.enableAutoStop en true.

  • Nota: Este es un anuncio de baja. Estos cambios entrarán en vigencia el 1 de septiembre de 2020 o después de esa fecha. La fecha real en la que entran en vigencia los cambios se denomina fecha de baja.

    En esta actualización, se explica un posible cambio rotundo. Afecta a las aplicaciones cliente de la API que usan los recursos liveStream y liveBroadcast predeterminados de los canales para transmitir contenido en vivo en YouTube. Específicamente, el ID de transmisión y el ID de transmisión asociados con la transmisión y el stream persistentes ya no funcionarán para iniciar transmisiones nuevas.

    Tu aplicación se verá afectada si se cumple alguna de las siguientes condiciones:

    • Verifica el valor de la propiedad isDefaultBroadcast del recurso liveBroadcast. Esta propiedad no se devolverá después de la fecha de baja.
    • Verifica el valor de la propiedad isDefaultStream del recurso liveStream. Esta propiedad no se devolverá después de la fecha de baja.
    • Llama al método liveBroadcasts.list y establece el valor del parámetro broadcastType en persistent o all. Este parámetro dejará de estar disponible como parte de estos cambios. A partir de la fecha de baja:
      • Si el valor del parámetro broadcastType es persistent, el método liveBroadcasts.list no devolverá ningún resultado.
      • Si el valor del parámetro broadcastType es all, el método liveBroadcasts.list no devolverá transmisiones persistentes que existían antes de ese momento.

    Como contexto, en los últimos años, YouTube creó automáticamente una transmisión predeterminada y una transmisión predeterminada para un canal cuando se habilitó la transmisión en vivo en ese canal. El flujo predeterminado existía de forma indefinida, no tenía una hora de inicio ni de finalización asociada y no se podía borrar. Del mismo modo, la transmisión predeterminada se consideró persistente. Siempre existió y no estaba vinculado a un evento en particular.

    A partir de la fecha de baja:

    • YouTube ya no creará transmisiones ni emisiones predeterminadas. En lugar de depender de los recursos predeterminados, los clientes de la API deben poder crear y administrar recursos de liveBroadcast y liveStream, y vincular esos recursos.
    • Si la transmisión predeterminada y el stream predeterminado de un canal están activos, es decir, si el canal los está usando para una transmisión en vivo en el momento en que entra en vigencia la baja, la transmisión en curso no se verá afectada. Sin embargo, después de que finalice esa transmisión, el canal no podrá volver a usar la transmisión y el stream predeterminados.
    • Si la transmisión predeterminada y el canal predeterminado de un canal no están activos, después de que entre en vigencia la baja, YouTube ignorará los intentos de usar esos recursos para transmitir videos.

    Si tu aplicación se ve afectada, consulta los siguientes documentos, que te ayudarán a actualizarla para que siga funcionando según lo esperado después de este cambio:

    • En una nueva guía de migración, se explican los pasos que los desarrolladores podrían tener que seguir en los clientes de la API que actualmente usan transmisiones y flujos predeterminados.
    • La guía Ciclo de vida de una transmisión te explica paso a paso cómo crear y administrar un evento en vivo en YouTube. Cada paso explica las llamadas a la API o las otras acciones que debes realizar para completar una acción específica, y tu aplicación deberá seguir ese proceso cuando YouTube deje de admitir transmisiones y transmisiones predeterminadas.

31 de marzo de 2020

Nota: Este es un anuncio de baja.

El recurso sponsor y el método sponsors.list dejaron de estar disponibles y se reemplazaron por el recurso member y el método members.list.

El método sponsors.list dejará de ser compatible a partir del 30 de septiembre de 2020. Los clientes de la API deben actualizar las llamadas al método sponsors.list para que usen el método members.list en su lugar. Consulta el historial de revisiones de la API de YouTube Data para obtener más información sobre el nuevo recurso.

11 de marzo de 2020

Se actualizó la sección Punto de conexión de transferencia de la guía Cómo entregar contenido en vivo de YouTube a través de HLS para aclarar el proceso que debe usar un codificador para completar el valor del parámetro file= cuando se forman las URLs de transferencia principal y de copia de seguridad.

4 de febrero de 2020

Se actualizó la guía Cómo entregar contenido en vivo de YouTube a través de HLS para indicar que las solicitudes DELETE son opcionales y que el extremo de HLS de YouTube las ignora. Por motivos de rendimiento, YouTube recomienda que los clientes no envíen solicitudes DELETE.

10 de enero de 2020

La API ahora admite la capacidad de identificar el contenido dirigido a niños, que YouTube denomina "creado para niños". Obtén más información sobre el contenido “creado para niños” en el Centro de ayuda de YouTube.

  • El recurso liveBroadcast admite dos propiedades nuevas para permitir que los creadores y los usuarios identifiquen el contenido creado para niños:
    • La propiedad selfDeclaredMadeForKids permite que los creadores de contenido especifiquen si una transmisión en vivo es contenido dirigido a niños. Esta propiedad se puede establecer cuando se crea una transmisión a través del método liveBroadcasts.insert. Ten en cuenta que esta propiedad solo se incluye en las respuestas de la API que contienen recursos liveBroadcast si el propietario del canal autorizó la solicitud a la API.
    • La propiedad madeForKids permite que cualquier usuario de la API recupere el estado de "contenido creado para niños" de una transmisión. Por ejemplo, el estado se puede determinar según el valor de la propiedad selfDeclaredMadeForKids. Consulta el Centro de ayuda de YouTube para obtener más información sobre cómo configurar el público de tu canal, tus videos o tus transmisiones.
  • En la API de YouTube Data, el recurso channel también admite las nuevas propiedades selfDeclaredMadeForKids y madeForKids.

También actualizamos las Condiciones del Servicio de los Servicios de la API de YouTube y las Políticas para Desarrolladores. Consulta el Historial de revisiones de las Condiciones del Servicio de los Servicios de la API de YouTube para obtener más información. Los cambios en las Condiciones del Servicio de los servicios de la API de YouTube y las Políticas para Desarrolladores entrarán en vigencia el 10 de enero de 2020 (hora del Pacífico).

20 de agosto de 2019

La sección Requisitos de la guía Publicación de contenido en vivo de YouTube a través de HLS se actualizó con dos cambios:

  • Explica que es una práctica recomendada incluir tanto los segmentos confirmados como los pendientes en cada playlist de medios. Esta práctica hace que sea menos probable que se omita un segmento si se pierde una playlist de medios en el servidor. Por ejemplo, puedes incluir hasta dos segmentos reconocidos y hasta cinco segmentos pendientes en cada playlist de medios.
  • Ahora es obligatorio enviar una playlist de medios para cada segmento de medios. Esto permite que el servidor se recupere rápidamente si se pierde una playlist de medios. Anteriormente, esta práctica se incluía en la lista de recomendaciones.

28 de junio de 2019

Ahora YouTube admite la transferencia de HLS. En consecuencia, la propiedad ingestionType del recurso liveStream admite el nuevo valor hls para identificar los streams que se transfirieron a YouTube con HLS.

La nueva guía Cómo entregar contenido en vivo de YouTube a través de HLS proporciona instrucciones para usar HLS y transmitir contenido en vivo a YouTube desde un codificador. El objetivo de la guía es ayudar a los proveedores de codificadores a agregar compatibilidad con la entrega de HLS a sus productos.

4 de abril de 2019

Esta actualización incluye los siguientes cambios:

  • Se actualizó la documentación de referencia de la API para explicar mejor los casos de uso comunes de cada método y proporcionar muestras de código dinámicas y de alta calidad a través del widget del Explorador de APIs. Para ver un ejemplo, consulta la documentación del método liveBroadcasts.list. Ahora hay dos elementos nuevos en las páginas que describen los métodos de la API:

    • El widget del Explorador de APIs te permite seleccionar permisos de autorización, ingresar valores de muestra para parámetros y propiedades, y, luego, enviar solicitudes reales a la API y ver respuestas reales de la API. El widget también ofrece una vista de pantalla completa que muestra muestras de código completas, las cuales se actualizan de forma dinámica para usar los permisos y los valores que ingresaste.

    • En la sección Casos de uso comunes, se describen uno o más casos de uso comunes para el método que se explica en la página. Por ejemplo, puedes llamar al método liveBroadcasts.list para recuperar datos sobre una transmisión específica o sobre las transmisiones del usuario actual.

      Puedes usar los vínculos de esa sección para completar el Explorador de APIs con valores de muestra para tu caso de uso o para abrir el Explorador de APIs en pantalla completa con esos valores ya completados. El objetivo de estos cambios es que te resulte más fácil ver muestras de código que se apliquen directamente al caso de uso que intentas implementar en tu propia aplicación.

    Actualmente, se admiten muestras de código para Java, JavaScript, PHP, Python y curl.

  • La página de muestras de código también tiene una nueva IU que ofrece todas las mismas funciones descritas anteriormente. Con esa herramienta, puedes explorar casos de uso para diferentes métodos, cargar valores en el Explorador de APIs y abrir el Explorador de APIs en pantalla completa para obtener muestras de código en Java, JavaScript, PHP y Python.

    Junto con este cambio, se quitaron las páginas que antes enumeraban las muestras de código disponibles para Java, PHP y Python.

25 de febrero de 2019

Se actualizó la documentación de los recursos liveChatMessage y superChatEvent para reflejar el hecho de que ambos recursos ahora pueden contener información sobre las Súper calcomanías. Las Súper calcomanías son un tipo de mensaje de Súper chat que muestra una imagen. Al igual que otros Súper chats, un fan compra un mensaje de Súper calcomanía durante una transmisión en vivo de YouTube.

  • En un recurso liveChatMessage, la propiedad snippet.type ahora se establece en superStickerEvent para indicar que el recurso contiene información sobre una calcomanía de Super. En ese caso, el recurso también contiene el objeto snippet.superStickerDetails, que incluye información adicional sobre la calcomanía.
  • En un recurso superChatEvent, el valor booleano snippet.isSuperStickerEvent indica si el mensaje de Súper chat también es una Súper calcomanía. Si es así, el objeto snippet.superStickerMetadata contiene detalles adicionales sobre la Súper calcomanía.

5 de abril de 2018

Se actualizó la descripción del método superChatEvents.list para reflejar el hecho de que la respuesta de la API ya no contiene fanFundingEvents, que se dieron de baja a principios de 2017.

3 de abril de 2017

Se agregaron nuevas muestras de código de Java que muestran cómo listar, insertar y borrar mensajes de chat en vivo. En los ejemplos, se llaman a los siguientes métodos:

13 de febrero de 2017

Esta actualización incluye los siguientes cambios:

  • Actualizaciones de recursos y métodos existentes

    • Se actualizó el método liveCuepoints.insert para reflejar el hecho de que el parámetro onBehalfOfContentOwner actualmente es obligatorio. Además, se actualizó la descripción del método para indicar que las llamadas a ese método deben estar autorizadas por una cuenta asociada a un propietario del contenido de YouTube.

9 de febrero de 2017

Esta actualización incluye los siguientes cambios:

  • Actualizaciones de recursos y métodos existentes

    • El nuevo parámetro hl del método superChatEvents.list te permite especificar que el valor de la propiedad snippet.displayString se debe formatear según las convenciones de un idioma en particular. La definición de esa propiedad también se actualizó en consecuencia.

      El valor del parámetro debe ser un código de idioma incluido en la lista que devuelve el método i18nLanguages.list. El valor predeterminado es en, lo que significa que el comportamiento predeterminado es dar formato a las cadenas de visualización como se usarían en inglés. Por ejemplo, de forma predeterminada, una cadena se formatea como $1.00 en lugar de $1,00.

1 de febrero de 2017

Esta actualización incluye los siguientes cambios:

  • Nuevos recursos y métodos

    • El nuevo recurso superChatEvent representa un mensaje de Súper chat que compró un fan durante una transmisión en vivo de YouTube. En el chat en vivo de YouTube, los Súper chats se destacan de los demás mensajes de las siguientes maneras:

      • Los Súper chats se destacan con un color.
      • Los Súper chats permanecen fijos en el visor por un período establecido.

      El color del Súper chat, el período durante el que permanece fijado en el visor y la longitud máxima del mensaje se determinan según el importe de la compra. En el Centro de ayuda de YouTube, encontrarás más información sobre los Súper chats.

      La API admite un método para listar los eventos de Súper chat de las transmisiones en vivo de un canal en los últimos 30 días. Ese método también devuelve datos sobre los eventos de Financiación de fans (fanFundingEvents) de la última transmisión en vivo del canal.

  • Actualizaciones de recursos y métodos existentes

    • La propiedad snippet.type ahora admite el valor superChatEvent, que indica que el recurso describe un Súper chat.

      Además, la nueva propiedad snippet.superChatDetails del recurso liveChatMessage y sus elementos secundarios contienen información sobre el evento de Superchat.

    • La propiedad cdn.resolution del recurso liveStream ahora admite el valor 2160p.

  • Errores nuevos y actualizados

    • La API admite los siguientes errores nuevos:

      Detalles del error
      liveBroadcasts.insert, liveBroadcasts.update Los métodos liveBroadcasts.insert y liveBroadcasts.update devuelven errores 400 (Bad Request) para indicar que el recurso liveBroadcast que se inserta o actualiza contiene un valor no válido para la propiedad contentDetails.enableEmbed o la propiedad contentDetails.projection. Los motivos de los dos errores nuevos son invalidEmbedSetting y invalidProjection, respectivamente.

12 de enero de 2017

Nota: Este es un anuncio de baja.

Junto con el lanzamiento de la nueva función Súper chat, YouTube descontinuó la función Financiación de fans, y la API de Financiación de fans se desactivará el 28 de febrero de 2017. A partir de esa fecha, ocurrirá lo siguiente:

11 de agosto de 2016

Esta actualización incluye los siguientes cambios:

  • Las Condiciones del Servicio de los Servicios de la API de YouTube publicadas recientemente ("las Condiciones Actualizadas"), que se analizan en detalle en el Blog de Ingeniería y Desarrollo de YouTube, proporcionan un amplio conjunto de actualizaciones a las Condiciones del Servicio actuales. Además de las Condiciones Actualizadas, que entrarán en vigencia el 10 de febrero de 2017, esta actualización incluye varios documentos complementarios para ayudar a explicar las políticas que deben seguir los desarrolladores.

    El conjunto completo de documentos nuevos se describe en el historial de revisiones de las Condiciones Actualizadas. Además, en ese historial de revisión también se explicarán los cambios futuros en las Condiciones Actualizadas o en los documentos complementarios. Puedes suscribirte a un feed RSS que enumere los cambios en ese historial de revisiones desde un vínculo en ese documento.

20 de mayo de 2016

Ahora YouTube admite la transferencia de DASH. En consecuencia, la propiedad ingestionType del recurso liveStream admite el nuevo valor dash para identificar los flujos que se transfieren a YouTube con DASH.

La nueva guía Cómo publicar contenido en vivo de YouTube a través de DASH proporciona instrucciones para usar el formato de publicación DASH y transmitir datos en vivo en YouTube desde un codificador. Su objetivo es ayudar a los proveedores de codificadores a agregar compatibilidad con la entrega de DASH a sus productos.

18 de abril de 2016

Esta actualización incluye los siguientes cambios:

  • Actualizaciones de recursos y métodos existentes

    • Actualizaciones de recursos liveStream
      • Ahora YouTube admite transmisiones con una resolución de 1440p a 30 o 60 fotogramas por segundo.

        Además, el recurso liveStream contiene nuevas propiedades para especificar la resolución y la velocidad de fotogramas de los datos de video entrantes:

        Propiedades
        cdn.frameRate Es la velocidad de fotogramas de los datos de video entrantes. Los valores válidos son 30fps y 60fps.
        cdn.resolution Resolución de los datos de video entrantes. Los valores de propiedad válidos son 1440p, 1080p, 720p, 480p, 360p y 240p.
      • De acuerdo con la introducción de las propiedades cdn.frameRate y cdn.resolution del recurso liveStream, el cdn.format del recurso dejó de estar disponible. La propiedad cdn.format especifica la resolución y la velocidad de fotogramas en un solo valor.

        Te recomendamos que migres a los campos recién admitidos. Mientras tanto, cdn.format seguirá funcionando. Además, las solicitudes para insertar transmisiones en vivo actualmente se realizan correctamente siempre que especifiques valores para la propiedad cdn.format o las propiedades cdn.frameRate y cdn.resolution. Si proporcionas valores para las tres propiedades, es posible que la API muestre un error si los valores no coinciden.

        Ten en cuenta que, si bien la propiedad cdn.format está obsoleta, ahora admite dos valores nuevos, 1440p y 1440p_hfr, para reflejar la compatibilidad de la API con transmisiones en 1440p a 30 o 60 fotogramas por segundo.

    • Actualizaciones de recursos liveBroadcast
      • El recurso liveBroadcast contiene las siguientes propiedades nuevas:

        Propiedades
        contentDetails.boundStreamLastUpdateTimeMs Fecha y hora en que se actualizó por última vez la transmisión en vivo a la que hace referencia la propiedad contentDetails.boundStreamId de la transmisión.
        contentDetails.projection Es el formato de proyección de la transmisión. El valor predeterminado de la propiedad es rectangular. Los valores válidos para la propiedad son 360 y rectangular.
      • Se actualizó la definición de la propiedad statistics.totalChatCount del recurso liveBroadcast para indicar que el valor de la propiedad solo aparece si la transmisión tiene al menos un mensaje de chat.

    • Actualizaciones de recursos liveChatMessage
      • La propiedad snippet.type admite dos valores nuevos: messageDeletedEvent y userBannedEvent, que corresponden a las nuevas propiedades que se describen en el siguiente viñeta. También se actualizó la definición de la propiedad snippet.authorChannelId para explicar qué identifica el valor de la propiedad para estos nuevos tipos de mensajes.

      • El recurso liveChatMessage contiene las siguientes propiedades nuevas:

        Propiedades
        snippet.messageDeletedDetails Este objeto contiene información sobre un mensaje que borró un moderador del chat. El objeto solo está presente si el valor de la propiedad snippet.type es messageDeletedEvent.
        snippet.userBannedDetails Este objeto contiene información sobre un usuario al que se le prohibió participar en el chat. El objeto también contiene información sobre la prohibición en sí, es decir, si es permanente o temporal. Si la prohibición es temporal, una de las propiedades del objeto especifica la duración de la prohibición.

        Este objeto solo está presente si el valor de la propiedad snippet.type es userBannedEvent.
  • Errores nuevos y actualizados

    • La API admite los siguientes errores nuevos:

      Detalles del error
      liveBroadcasts.bind El método liveBroadcasts.bind devuelve un error 403 (Forbidden) para indicar que el usuario envió demasiadas solicitudes en un período determinado. El motivo del error es userRequestsExceedRateLimit.

      Los métodos liveBroadcasts.insert y liveBroadcasts.update ya admiten el mismo error.
      liveStreams.insert El método liveStreams.insert admite cuatro errores nuevos de 400 (Bad Request) que identifican un valor de propiedad no válido en el recurso liveStream que la solicitud intentó insertar. En la siguiente lista, se identifican los motivos de error y las propiedades con las que se asocian:
      liveStreams.insert El método liveStreams.insert admite dos errores nuevos de 400 (Bad Request), cada uno de los cuales indica que no hay un valor obligatorio en el recurso liveStream que la solicitud intentó insertar. En la siguiente lista, se identifican los motivos de error y las propiedades con las que se asocian:
      Más específicamente, cuando insertas un recurso liveStream, debes especificar un valor para la propiedad cdn.format o para las propiedades cdn.frameRate y cdn.resolution.
      • La API devuelve un error formatRequired si no especificas un valor para ninguna de las tres propiedades.
      • La API devuelve un error frameRateRequired si especificas un valor para cdn.resolution, pero no para cdn.frameRate.
      • La API devuelve un error resolutionRequired si especificas un valor para cdn.frameRate, pero no para cdn.resolution.
      liveStreams.update El método liveStreams.update devuelve un error 403 (Forbidden) si la solicitud intenta modificar el valor de alguna de las siguientes propiedades no mutables: El reason en la respuesta de error es liveStreamModificationNotAllowed.

18 de diciembre de 2015

Las leyes de la Unión Europea (UE) exigen que se realicen ciertas divulgaciones y se obtenga el consentimiento de los usuarios finales en la UE. Por lo tanto, en el caso de los usuarios finales de la Unión Europea, debe satisfacer la Política de Consentimiento de Usuarios de la UE. Agregamos un aviso sobre este requisito en nuestras Condiciones del Servicio de la API de YouTube.

17 de diciembre de 2015

Esta actualización incluye los siguientes cambios:

  • Nuevos recursos y métodos

    • La API admite varios recursos nuevos para admitir la funcionalidad de chat en las transmisiones en vivo. YouTube admite la función de chat en vivo durante las transmisiones en vivo activas, y estos recursos y sus métodos admiten la recuperación de mensajes de chat, así como las funciones administrativas del chat.

      Recursos
      liveChatMessage Este recurso representa un mensaje en un chat en vivo de YouTube. YouTube admite varios tipos de mensajes, incluidos los mensajes de texto y los eventos de Financiación de fans. Algunos tipos de mensajes identifican una fase particular del chat, como el comienzo de un período exclusivo para patrocinadores o el final del chat. La API admite métodos para enumerar, insertar y borrar mensajes del chat en vivo.
      liveChatModerators Este recurso identifica a un moderador del chat. Los moderadores pueden realizar algunas funciones administrativas, como prohibir el acceso de usuarios al chat o quitar mensajes. La API admite métodos para enumerar, insertar y borrar moderadores del chat en vivo.
      liveChatBans Este recurso identifica a un usuario al que se le prohibió publicar mensajes en un chat en vivo específico. Las prohibiciones pueden ser temporales o permanentes. La API admite métodos para insertar y borrar prohibiciones del chat en vivo.
      fanFundingEvents Este recurso representa un evento de financiación de fans en un canal de YouTube. La financiación de fans permite que los usuarios apoyen de forma voluntaria a los creadores de YouTube con contribuciones monetarias únicas.

      El método fanFundingEvents.list de la API enumera los eventos de Financiación de fans de un canal. Los eventos de Financiación de fans que se inician a través de un chat en vivo durante una transmisión en vivo propiedad del canal también activan un mensaje de fanFundingEvent en el chat en vivo de la transmisión.

      Obtén más información sobre la financiación de fans en el Centro de ayuda de YouTube.
      sponsors El recurso sponsor identifica a un patrocinador de un canal de YouTube. Un patrocinador paga una tarifa mensual a un canal. Aparece una insignia junto a los mensajes de los patrocinadores en los chats en vivo del canal, y los patrocinadores también pueden participar en los chats en vivo exclusivos para los patrocinadores del canal, si se realizan.

      El método sponsors.list de la API enumera los patrocinadores de un canal. Cuando los usuarios se registran para patrocinar un canal durante una transmisión en vivo que le pertenece, la API también agrega un mensaje de newSponsorEvent al chat en vivo de la transmisión.

      Obtén más información sobre los patrocinios en el Centro de ayuda de YouTube.

  • Actualizaciones de recursos y métodos existentes

    • El recurso liveBroadcast contiene las siguientes propiedades nuevas:

      Propiedades
      snippet.liveChatId Es el ID del chat en vivo de YouTube de la transmisión. Con este ID, puedes usar los métodos del recurso liveChatMessage para recuperar, insertar o borrar mensajes de chat. También puedes agregar o quitar moderadores del chat, prohibir que los usuarios participen en chats en vivo o quitar las prohibiciones existentes.
      contentDetails.closedCaptionsType Nota: Esta propiedad reemplaza la propiedad contentDetails.enableClosedCaptions.

      Esta propiedad indica si los subtítulos están habilitados para tu transmisión y, si es así, qué tipo de subtítulos proporcionas:
      • closedCaptionsDisabled: Los subtítulos están inhabilitados para la transmisión en vivo.
      • closedCaptionsHttpPost: Enviarás subtítulos, a través de HTTP POST, a una URL de transferencia asociada con tu transmisión en vivo.
      • closedCaptionsEmbedded: Los subtítulos se codificarán en la transmisión de video con los formatos EIA-608 o CEA-708.
      contentDetails.enableClosedCaptions Esta propiedad dejó de estar disponible el 17 de diciembre de 2015. Usa la propiedad contentDetails.closedCaptionsType. Para los clientes de la API que ya usan esta propiedad, haz lo siguiente:
      • Establecer el valor de la propiedad en true equivale a establecer la propiedad contentDetails.closedCaptionsType en closedCaptionsHttpPost.
      • Establecer el valor de la propiedad en false equivale a establecer la propiedad contentDetails.closedCaptionsType en closedCaptionsDisabled.
    • El nuevo parámetro broadcastType del método liveBroadcasts.list te permite filtrar una respuesta de la API para incluir transmisiones de eventos, transmisiones persistentes o todas las transmisiones.

      Una transmisión persistente es aquella que siempre existe y no está vinculada a un evento en particular. Específicamente, la transmisión predeterminada de un canal es una transmisión persistente a la que se puede acceder a través del Panel en vivo en YouTube Creator Studio. Las otras transmisiones del canal son transmisiones de eventos.

  • El campo status.healthStatus.configurationIssues[].type del recurso liveStream informa los siguientes errores nuevos de estado:

    Errores
    audioTooManyChannels El audio tiene más de dos canales, pero solo se admiten uno (mono) o dos (estéreo) canales. Corrige el número de canales de audio.
    frameRateHigh La velocidad de fotogramas actual es demasiado alta. Configura este valor en %(framerate)s fps como máximo.
  • Se corrigió la fecha de publicación de la actualización anterior de la documentación.

  • Errores nuevos y actualizados

    • Además de los errores definidos para los recursos nuevos que se mencionaron anteriormente, la API admite los siguientes errores nuevos:

      Detalles del error
      liveBroadcasts.update
      Código de respuesta HTTPforbidden (403)
      MotivoclosedCaptionsTypeModificationNotAllowed
      DescripciónEl valor de contentDetails.closedCaptionsType solo se puede modificar cuando la transmisión está en estado created o ready.
      liveBroadcasts.update
      Código de respuesta HTTPinvalidValue (400)
      MotivoinvalidEnableClosedCaptions
      DescripciónEn el recurso liveBroadcast, el valor de la propiedad contentDetails.enableClosedCaptions es incompatible con el valor del parámetro de configuración contentDetails.closedCaptionType. Modifica el recurso para que solo incluya una de las dos propiedades y, luego, vuelve a enviar la solicitud.

19 de agosto de 2015

Esta actualización incluye los siguientes cambios:

  • Nuevos recursos y métodos

    • Nota: La documentación del recurso liveChat y sus métodos es confidencial y solo la pueden ver socios seleccionados de YouTube.

      El nuevo recurso liveChat contiene un comentario publicado durante una transmisión en vivo en YouTube. La API admite dos métodos para este recurso:

      Métodos
      liveChats.list Enumera los mensajes del chat en vivo de una transmisión.
      liveChats.insert Crea un mensaje de chat nuevo.

      Los mensajes del chat en vivo solo se pueden recuperar y publicar mientras se transmite una emisión en vivo.

  • Actualizaciones de recursos y métodos existentes

    • El recurso liveStream contiene las siguientes propiedades nuevas:

      Propiedades
      snippet.isDefaultStream Indica si esta transmisión es la predeterminada del canal. El canal de transmisión predeterminado de un canal existe de forma indefinida, no tiene una hora de inicio ni de finalización asociada y no se puede borrar. Consulta la definición de la propiedad para obtener más información sobre cómo funcionan los flujos predeterminados.
      status.healthStatus Este objeto contiene información que se podría usar para identificar, diagnosticar y resolver problemas de transmisión. El objeto contiene varias propiedades secundarias para ayudarte a evaluar el estado de una transmisión de video en vivo.

      En particular, el objeto status.healthStatus.configurationIssues[] enumera los problemas que afectan una transmisión de video. En el nuevo documento Configuration Issues for LiveStream Resources, se enumeran todos los problemas que informa la API.
      contentDetails.isReusable Indica si la transmisión es reutilizable, lo que significa que se puede vincular a varias transmisiones. Es común que los emisores reutilicen la misma transmisión para muchas emisiones diferentes si estas se producen en diferentes momentos.
    • El recurso liveBroadcast contiene las siguientes propiedades nuevas:

      Propiedades
      snippet.isDefaultBroadcast Indica si esta transmisión es la predeterminada del canal. Cuando se habilita un canal de YouTube para la transmisión en vivo, YouTube crea una transmisión y una emisión predeterminadas para el canal. La transmisión define cómo el propietario del canal envía video en vivo a YouTube, y la emisión es cómo los usuarios pueden ver la transmisión predeterminada. Consulta la definición de la propiedad para obtener más información sobre cómo funcionan las transmisiones predeterminadas.
      contentDetails.enableLowLatency Indica si esta transmisión se debe codificar para la transmisión con latencia baja. Una transmisión de baja latencia puede reducir el tiempo que tarda en aparecer el video para los usuarios que miran una transmisión, aunque también puede afectar la resolución para los usuarios que miran la transmisión.
      statistics.totalChatCount Es la cantidad total de mensajes de chat en vivo asociados con la transmisión. La propiedad y su valor están presentes si la transmisión es visible para el usuario y tiene habilitada la función de chat en vivo. Ten en cuenta que esta propiedad no especificará un valor después de que finalice la transmisión. Por lo tanto, esta propiedad no identificaría la cantidad de mensajes de chat de un video archivado de una transmisión en vivo finalizada.
  • Errores nuevos y actualizados

    • Además de los errores definidos para el nuevo recurso liveChat, la API admite el siguiente error nuevo:

      Detalles del error
      liveStreams.update
      Código de respuesta HTTPforbidden (403)
      MotivoliveStreamModificationNotAllowed
      DescripciónLa API no te permite cambiar un flujo reutilizable a no reutilizable, ni viceversa. Para obtener más información, consulta Información sobre las transmisiones y los streams.

21 de mayo de 2015

Esta actualización incluye los siguientes cambios:

  • Ahora YouTube admite la transmisión de videos en vivo a 60 fotogramas por segundo (FPS), lo que significa una reproducción más fluida para los videojuegos y otros videos de acción rápida. Cuando inicias una transmisión en vivo en YouTube a 60 FPS, YouTube también la pone a disposición a 30 FPS en los dispositivos en los que aún no está disponible la visualización con una alta velocidad de fotogramas.

    La propiedad cdn.format del recurso liveStream admite dos valores nuevos para esta función: 720p_hfr y 1080p_hfr.

    Consulta el Blog para creadores de YouTube para obtener más información sobre esta función.

21 de agosto de 2014

Esta actualización incluye los siguientes cambios:

  • Se actualizó la definición del parámetro walltime del método liveBroadcasts.control para indicar que el valor de la propiedad se especifica en formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sssZ).

  • Ahora la API admite los siguientes errores:

    Tipo de error Detalle del error Descripción
    insufficientPermissions liveStreamingNotEnabled Todos los métodos para los recursos liveBroadcast y liveStream devuelven este error si el usuario que autorizó la solicitud de API no tiene habilitada la transmisión de video en vivo en YouTube. En la configuración del canal del usuario, en https://www.youtube.com/features, es posible que haya detalles que expliquen por qué el usuario no puede transmitir videos en vivo.
    rateLimitExceeded userRequestsExceedRateLimit Los métodos liveBroadcasts.insert y liveStreams.insert muestran este error para indicar que el usuario envió demasiadas solicitudes dentro de un período determinado.

2 de mayo de 2014

Esta actualización incluye los siguientes cambios:

  • Se actualizaron las descripciones del recurso liveStream y del método liveBroadcasts.bind para indicar que una transmisión solo se puede vincular a una transmisión de video por Internet, pero una transmisión de video por Internet se puede vincular a más de una transmisión. Este cambio es solo una corrección de la documentación; la funcionalidad subyacente de la API no cambió.

  • Se actualizó la propiedad contentDetails.monitorStream.enableMonitorStream del recurso liveBroadcast para explicar que, si el valor de la propiedad es true, debes hacer la transición de tu transmisión al estado testing antes de poder hacer la transición al estado live. (Si el valor de la propiedad es false, tu transmisión no puede tener una etapa testing, por lo que puedes hacer la transición directamente al estado live.

  • Se actualizó la propiedad settings.offsetTimeMs del recurso liveCuepoint para indicar que no debes especificar un valor para la propiedad si tu transmisión no tiene un flujo de supervisión.

  • Todos los métodos para los recursos liveBroadcast y liveStream ahora admiten los parámetros onBehalfOfContentOwner y onBehalfOfContentOwnerChannel. Estos parámetros te permiten usar las mismas credenciales de autorización para completar solicitudes a la API para diferentes canales asociados con el mismo propietario del contenido.

  • Se actualizó la documentación del método liveCuepoints.insert para indicar que puedes establecer un valor para la propiedad settings.walltime cuando llamas a ese método.

  • La documentación de errores ahora especifica el código de respuesta HTTP para cada tipo de error.

  • Ahora, la API admite el siguiente error:

    Tipo de error Detalle del error Descripción
    insufficientPermissions livePermissionBlocked Los métodos liveBroadcasts.insert, liveBroadcasts.transition y liveStreams.insert devuelven este error si el usuario que autorizó la solicitud no puede transmitir videos en vivo en YouTube. En la configuración del canal del usuario, en https://www.youtube.com/features, es posible que haya detalles que expliquen por qué el usuario no puede transmitir videos en vivo.
  • Se actualizó el error invalidScheduledStartTime del método liveBroadcasts.insert para aclarar que la hora de inicio programada debe estar lo suficientemente cerca de la fecha actual como para que se pueda programar una transmisión de forma confiable en ese momento.

13 de diciembre de 2013

Esta actualización incluye los siguientes cambios:

  • La nueva propiedad status.recordingStatus del recurso liveBroadcast identifica el estado actual de la transmisión.

  • La nueva propiedad contentDetails.enableClosedCaptions del recurso liveBroadcast indica si se pueden transferir subtítulos para la transmisión. El valor de la propiedad se puede establecer cuando insertas o actualizas una transmisión, pero no se puede actualizar una vez que la transmisión está en el estado testing o live. Si estableces esta propiedad en true, el recurso liveStream que está vinculado a la transmisión especificará la URL de transferencia que se usará para los subtítulos de la transmisión.

  • La propiedad snippet.scheduledEndTime del recurso liveBroadcast ahora admite transmisiones programadas para continuar de forma indefinida. Con este cambio, la propiedad ya no es obligatoria en las solicitudes de liveBroadcasts.insert y liveBroadcasts.update.

    Si recuperas un recurso liveBroadcast que no especifica un valor para esta propiedad, se programará la transmisión para que continúe de forma indefinida. Del mismo modo, si llamas al método liveBroadcasts.insert o liveBroadcasts.update y no especificas un valor para esta propiedad, se programará la transmisión para que continúe de forma indefinida.

  • La propiedad contentDetails.recordFromStart del recurso liveBroadcast, que ya tenía un valor predeterminado de true, ahora solo se puede establecer en false si el canal de transmisión tiene permiso para inhabilitar las grabaciones de las transmisiones en vivo.

    Si tu canal no tiene permiso para inhabilitar las grabaciones y tratas de insertar una transmisión con la propiedad recordFromStart establecida en false, la API devolverá un error Forbidden. Además, si tu canal no tiene ese permiso y tratas de actualizar una transmisión para establecer la propiedad recordFromStart en false, la API devolverá un error modificationNotAllowed.

  • El recurso liveBroadcast ya no contiene una propiedad enableArchive, que se había mencionado en las descripciones de las propiedades contentDetails.enableDvr y contentDetails.enableEmbed.

  • Se actualizó la lista de valores válidos para la propiedad status.lifeCycleStatus del recurso liveBroadcast para incluir una descripción de cada estado.

  • La nueva propiedad settings.walltime del recurso liveCuepoint especifica la fecha y la hora en las que se debe insertar el punto de referencia. La API muestra un error si una solicitud intenta insertar un punto de referencia que especifica un valor para esta propiedad y para la propiedad settings.offsetTimeMs.

  • El nuevo objeto contentDetails en un recurso liveStream contiene información sobre la transmisión. Actualmente, la única propiedad del objeto es contentDetails.closedCaptionsIngestionUrl, que especifica la URL de transferencia para los subtítulos asociados con la transmisión de video.

  • Se actualizó la lista de valores válidos para la propiedad status.streamStatus del recurso liveStream para incluir una descripción de cada estado.

  • El nuevo parámetro walltime del método liveBroadcasts.control te permite especificar la fecha y la hora en que se producirá un cambio de pizarra. La API devuelve un error si una solicitud especifica un valor para este parámetro y para el parámetro offsetTimeMs.

  • En la respuesta de la API a una solicitud de liveBroadcasts.list, el valor de la propiedad kind cambió de youtube#liveBroadcastList a youtube#liveBroadcastListResponse.

  • En la respuesta de la API a una solicitud de liveStreams.list, el valor de la propiedad kind cambió de youtube#liveStreamList a youtube#liveStreamListResponse.

  • La propiedad eventId dejó de estar disponible en liveBroadcastListResponse y liveStreamListResponse.

  • La API admite los siguientes errores nuevos:

    Tipo de error Detalle del error Descripción
    invalidValue conflictingTimeFields El método liveBroadcasts.control devuelve este error si tu solicitud especifica valores para los parámetros offsetTimeMs y walltime. Una solicitud puede omitir ambos parámetros o especificar un valor para uno de los dos.
    invalidValue invalidWalltime El método liveBroadcasts.control devuelve este error si el valor del parámetro walltime no es válido.
    forbidden enableClosedCaptionsModificationNotAllowed El método liveBroadcasts.update devuelve este error si intentas actualizar el valor de contentDetails.enableClosedCaptions y el estado de la transmisión no es created ni ready.
    invalidValue conflictingTimeFields El método liveCuepoints.insert devuelve este error si tu solicitud especifica valores para las propiedades settings.offsetTimeMs y settings.walltime. Una solicitud puede omitir ambas propiedades o especificar un valor para una de las dos.

    Además, el método liveStreams.update ya no admite un error cdnRequired similar al que admite el método liveStreams.insert.

10 de mayo de 2013

Esta actualización incluye los siguientes cambios:

2 de mayo de 2013

Esta actualización incluye los siguientes cambios:

27 de marzo de 2013

Esta actualización incluye los siguientes cambios:

  • Las siguientes propiedades cambiaron en el recurso liveBroadcast:

    • Se cambió el nombre de la propiedad startWithSlateCuepoint por startWithSlate.
    • Se cambió el nombre de la propiedad enableArchive por recordFromStart.
    • El objeto slateSettings dejó de estar disponible y se quitó de la documentación. También se quitaron los mensajes de error relacionados con el objeto slateSettings o sus propiedades. Por último, se quitó la sección "Cómo mostrar pizarras" de la guía de introducción.

  • La API ya no admite la inserción de pizarras previas al video con el método liveCuepoints.insert. Se actualizaron los siguientes documentos para reflejar este cambio:

    • En la página de índice, la guía de introducción y el instructivo sobre el ciclo de vida de una transmisión ya no se menciona esta funcionalidad.

    • La propiedad settings.cueType del recurso liveCuepoint ya no admite slate como valor de propiedad. (El único valor admitido es ad.

    • La propiedad settings.eventState del recurso liveCuepoint dejó de estar disponible y se quitó de la documentación.

18 de marzo de 2013

Esta actualización incluye los siguientes cambios:

  • Se actualizaron todos los mensajes de error de la API para explicar con mayor claridad los posibles errores y, cuando sea posible, ofrecer orientación sobre cómo corregirlos.

  • Es posible que la API ahora muestre varios errores nuevos. En la siguiente lista, se identifica el error y el método de la API que podría devolverlo:

    • liveBroadcasts.insert: La hora de finalización programada de una transmisión debe ser posterior a la hora de inicio programada.
    • liveBroadcasts.insert: La transmisión especifica un estado de privacidad no válido.
    • liveBroadcasts.update: El recurso no contiene ni establece un valor para la propiedad contentDetails.enableArchive.
    • liveBroadcasts.update: El recurso no contiene ni establece un valor para la propiedad contentDetails.enableContentEncryption.
    • liveBroadcasts.update: El recurso no contiene ni establece un valor para la propiedad contentDetails.enableDvr.
    • liveStreams.insert: El título del fragmento debe tener entre 1 y 128 caracteres.
    • liveStreams.update: El recurso no contiene ni establece un valor para la propiedad snippet.title.

  • Se actualizó la documentación del recurso liveStream para reflejar que la multidifusión y WebM no son métodos de transferencia admitidos, como se indicó anteriormente. La lista de formatos para la propiedad cdn.format se actualizó según corresponda, y el objeto cdn.multicastIngestionInfo y sus propiedades secundarias se quitaron de la documentación del recurso. Además, se quitó http de la lista de valores de cdn.ingestionType admitidos.