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. Suscribirse a este registro de cambios. Suscribirse

9 de octubre de 2023

A modo de referencia, en este archivo CSV puedes encontrar los IDs de calcomanías relacionados con las Súper calcomanías. Las definiciones de la propiedad snippet.superStickerDetails.superStickerMetadata.stickerId del recurso liveChatMessage y la propiedad snippet.superStickerMetadata.stickerId del recurso superChatEvent se actualizaron 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 manualmente pausas publicitarias en una transmisión, YouTube ahora 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 automáticos, puede ver los siguientes aspectos del comportamiento del anuncio:

  • la duración del intervalo entre las pausas publicitarias para anuncios durante el video.
  • la estrategia de programación para los puntos de inserción de anuncios. Puedes insertar puntos de inserción de forma simultánea para todos los usuarios, o bien su latencia puede variar de un usuario a otro. Esta última estrategia permite que YouTube programe puntos de inserción a una velocidad mayor, lo que permite a los usuarios recibirlos cuando sean aptos para hacerlo.
  • un 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 detendrá hasta un momento determinado.

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 a fin de programar puntos de inserción.
  • El parámetro part del método liveBroadcast.list admite el valor monetizationDetails.
  • Puedes usar el método update para pausar la inserción de anuncios durante el video durante un período determinado en una transmisión en vivo. Ahora, la documentación 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 estos campos:

    • snippet.title
    • status.privacyStatus

    Si omites estos campos de la solicitud, no se modificarán.

1 de noviembre de 2022

  • El nuevo método liveBroadcasts.cuepoint permite que cualquier propietario de canal que realice una transmisión en vivo en YouTube inserte puntos de inserción en esa transmisión, lo que puede activar pausas publicitarias. Este método reemplaza el método liveCuepoints.insert, que solo permitía que los socios de contenido de YouTube insertaran puntos de inserción 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 dejará de estar disponible a partir del 1 de mayo de 2023. Los usuarios de la API deben actualizar sus aplicaciones para llamar al método liveBroadcasts.cuepoint en su lugar.

  • 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 estos campos:

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

    Si omites estos campos de 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 Regalar membresía. De manera similar, 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 Member Milestone Chat. 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

  • La definición de la propiedad status.madeForKids del recurso liveBroadcast se actualizó 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 dirigida a 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 dejará de estar disponible a partir del 1 de octubre de 2020. Después de esa fecha, todas las llamadas a este método mostrarán un error de prohibición (403) y, más adelante, el método se quitará por completo. Los clientes aún pueden implementar su propia cortinilla de video agregando una superposición al video enviado a los servidores de transferencia de YouTube.

    La fecha de baja del anuncio de baja realizado el 16 de abril de 2020, que originalmente estaba programada para el 1 de septiembre de 2020, se postergó y ahora ocurrirá 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 de baja anterior.

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

Si tu código todavía usa el campo cdn.format, debe actualizarse para especificar la velocidad de fotogramas y la resolución por separado, mediante las propiedades cdn.frameRate y cdn.resolution.

6 de julio de 2020

Se actualizó la guía Cómo publicar contenido de YouTube en vivo mediante HLS con algunos 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 prácticos apropiados para cada protocolo.

16 de abril de 2020

Esta actualización incluye una propiedad nueva 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 deja de transmitir video en la transmisión de video vinculada.

    Se actualizó el documento sobre la vida de una transmisión para explicar cómo cambia el proceso paso a paso de creación y administración de un evento de YouTube en vivo 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. A continuación, se menciona la fecha real en que entran en vigencia los cambios como la fecha de baja.

    En esta actualización, se explica un cambio potencialmente 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 la transmisión 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 mostrará después de la fecha de baja.
    • Verifica el valor de la propiedad isDefaultStream del recurso liveStream. Esta propiedad no se mostrará 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 mostrará ningún resultado.
      • Si el valor del parámetro broadcastType es all, el método liveBroadcasts.list no mostrará transmisiones persistentes que existían antes de ese momento.

    Durante los últimos años, YouTube creó automáticamente una transmisión y una transmisión predeterminadas para un canal cuando este estaba habilitado para transmitir en vivo. La transmisión predeterminada existía de forma indefinida, no tenía una hora de inicio ni finalización asociada y no se pudo borrar. De manera similar, la transmisión predeterminada se consideró continua. Siempre existió y no estuvo vinculado a ningún evento en particular.

    A partir de la fecha de baja:

    • YouTube ya no creará transmisiones ni transmisiones predeterminadas. En lugar de depender de los recursos predeterminados, los clientes de la API deben poder crear y administrar los recursos liveBroadcast y liveStream, y vincularlos.
    • Si la transmisión predeterminada y la transmisión predeterminada de un canal están activas de forma activa, es decir, si el canal las está usando para una transmisión en vivo en el momento en que entre en vigencia la baja, la transmisión en curso no se verá afectada. Sin embargo, una vez finalizada la transmisión, el canal no podrá volver a usar la transmisión predeterminada ni la predeterminada.
    • Si la transmisión predeterminada y la transmisión predeterminada de un canal no están activas de forma activa, una vez 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 como se espera después del cambio:

    • Una nueva guía de migración intenta explicar los pasos que los desarrolladores podrían necesitar en los clientes de API que actualmente usan transmisiones y transmisiones predeterminadas.
    • La guía Ciclo de una transmisión te guía a través de un proceso paso a paso que explica cómo crear y administrar un evento en vivo en YouTube. En cada paso, se explican las llamadas a la API y otras tareas que debes realizar para completar una acción específica. 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 los recursos member y members.list.

A partir del 30 de septiembre de 2020, ya no se admitirá el método sponsors.list. Los clientes de la API deben actualizar las llamadas al método sponsors.list para usar el método members.list en su lugar. Consulta el historial de revisión de la API de datos de YouTube para obtener más información sobre el recurso nuevo.

11 de marzo de 2020

Se actualizó la sección Extremo de transferencia de la guía Cómo entregar contenido de YouTube en vivo mediante HLS a fin de aclarar el proceso que debe usar un codificador para completar el valor del parámetro file= cuando forma las URLs de transferencia principales y de respaldo.

4 de febrero de 2020

Se actualizó la guía Envía contenido de YouTube en vivo mediante HLS para indicar que las solicitudes DELETE son opcionales y que el extremo 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 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 que permiten a los creadores y usuarios de contenido identificar 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 configurar cuando se crea una transmisión con el 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 "creado para niños" de una transmisión. Por ejemplo, el estado podría determinarse 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 datos de YouTube, 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 las Condiciones del Servicio de los Servicios de la API de YouTube. Historial de revisión para obtener más información. Los cambios en las Condiciones del Servicio y las Políticas para Desarrolladores de los servicios de la API de YouTube entrarán en vigencia el 10 de enero de 2020 (hora del Pacífico).

20 de agosto de 2019

Actualizamos la sección Requisitos de la guía Cómo entregar contenido de YouTube en vivo mediante HLS con dos cambios:

  • En este documento, se explica que se recomienda incluir segmentos confirmados y pendientes en cada lista de reproducción de contenido multimedia. De esta manera, es menos probable que se omita un segmento si se pierde una lista de reproducción de contenido multimedia en el servidor. Por ejemplo, puedes incluir hasta dos segmentos confirmados y hasta cinco segmentos pendientes en cada lista de reproducción de contenido multimedia.
  • Ahora es obligatorio enviar una lista de reproducción de contenido multimedia para cada segmento multimedia. Esto permite que el servidor se recupere rápidamente si se pierde una lista de reproducción multimedia. Esta práctica se incluyó anteriormente como recomendación.

28 de junio de 2019

YouTube ahora admite la transferencia HLS. En consecuencia, la propiedad ingestionType del recurso liveStream admite el nuevo valor hls para identificar transmisiones transferidas a YouTube mediante HLS.

La nueva guía Envía contenido de YouTube en vivo mediante HLS proporciona lineamientos para usar HLS a fin de 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 de entrega 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. Consulta la documentación del método liveBroadcasts.list para ver un ejemplo. 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 alcances de autorización, ingresar valores de propiedades y parámetros de muestra, enviar solicitudes a la API reales y ver las respuestas reales de la API. El widget también ofrece una vista de pantalla completa que muestra ejemplos de código completos, que se actualizan de manera dinámica para usar los alcances 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 vínculos en esa sección para completar el Explorador de APIs con valores de muestra para tu caso de uso o abrir el Explorador de APIs en pantalla completa con esos valores ya propagados. El objetivo de estos cambios es facilitarte la visualización de muestras de código que se apliquen de forma directa al caso de uso que intentas implementar en tu propia aplicación.

    Las muestras de código actualmente son compatibles con Java, JavaScript, PHP, Python y curl.

  • La página de muestras de código también tiene una nueva IU que ofrece 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.

    Además de 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 configura como superStickerEvent para indicar que el recurso contiene información sobre una Súper calcomanía. En ese caso, el recurso también contiene el objeto snippet.superStickerDetails, que contiene información adicional sobre la Súper 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 dejaron de estar disponibles a principios de 2017.

3 de abril de 2017

Se agregaron nuevas muestras de código Java que indican cómo enumerar, insertar y borrar mensajes del chat en vivo. En las muestras, se llama 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 es obligatorio en la actualidad. Además, la descripción del método se actualizó para indicar que las llamadas a ese método deben estar autorizadas por una cuenta asociada con 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 debe tener un formato conforme a 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 muestra el método i18nLanguages.list. El valor predeterminado es en, lo que significa que el comportamiento predeterminado es dar formato a las strings de visualización como se usarían en inglés. Por ejemplo, de forma predeterminada, una string tiene el formato $1.00 en lugar de $1,00.

1 de febrero de 2017

Esta actualización incluye los siguientes cambios:

  • Recursos y métodos nuevos

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

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

      El importe de la compra determina el color del Súper chat, el período de tiempo que permanece fijo en el visor y la longitud máxima del mensaje. Para obtener más información sobre los Súper chats, consulta el Centro de ayuda de YouTube.

      La API admite un método para enumerar eventos de Súper chat de las transmisiones en vivo de un canal durante los 30 días anteriores. Este método también muestra los datos de 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 Súper chat.

    • 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 muestran errores 400 (Bad Request) a fin de indicar que el recurso liveBroadcast que se inserta o se actualiza contiene un valor no válido para las propiedades contentDetails.enableEmbed o 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 dio de baja 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:

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 describen detalladamente en el Blog de Ingeniería y Desarrolladores de YouTube, proporcionan un amplio conjunto de actualizaciones de 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 de respaldo para explicar las políticas que deben seguir los desarrolladores.

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

20 de mayo de 2016

Ahora YouTube admite la transferencia DASH. En consecuencia, la propiedad ingestionType del recurso liveStream admite el nuevo valor dash para identificar transmisiones transferidas a YouTube mediante DASH.

La nueva guía Envía contenido de YouTube en vivo mediante DASH proporciona lineamientos para usar el formato de publicación DASH para 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 de liveStream
      • YouTube ahora 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 velocidad de fotogramas y la resolución de los datos de video entrantes:

        Propiedades
        cdn.frameRate Velocidad de fotogramas de los datos de video entrantes. Los valores válidos son 30fps y 60fps.
        cdn.resolution Es la 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 realices la transición a los campos admitidos recientemente. Mientras tanto, cdn.format sigue funcionando. Además, las solicitudes para insertar transmisiones en vivo se ejecutan correctamente siempre que especifiques valores para las propiedades cdn.format o cdn.frameRate y cdn.resolution. Si proporcionas valores para las tres propiedades, la API puede mostrar un error si los valores no están de acuerdo.

        Ten en cuenta que, aunque la propiedad cdn.format dejó de estar disponible, ahora admite dos valores nuevos, 1440p y 1440p_hfr, para reflejar la compatibilidad de la API con transmisiones de 1440p a 30 o 60 fotogramas por segundo.

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

        Propiedades
        contentDetails.boundStreamLastUpdateTimeMs Corresponde a la fecha y hora en que se actualizaron por última vez la transmisión en vivo a la que hace referencia la propiedad contentDetails.boundStreamId de la transmisión.
        contentDetails.projection 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 se muestra si la transmisión tiene al menos un mensaje de chat.

    • Actualizaciones de recursos de liveChatMessage
      • La propiedad snippet.type admite dos valores nuevos, messageDeletedEvent y userBannedEvent, que corresponden a las nuevas propiedades que se describen en la siguiente viñeta. La definición de la propiedad snippet.authorChannelId también se actualizó 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 cuya participación en el chat se ha prohibido. El objeto también contiene información sobre el bloqueo en sí, en particular, si el bloqueo es permanente o temporal. Si el bloqueo es temporal, una de las propiedades del objeto especifica la duración del bloqueo.

        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 muestra 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 400 (Bad Request) nuevos 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 del error y las propiedades con las que se asocian:
      liveStreams.insert El método liveStreams.insert admite dos errores 400 (Bad Request) nuevos, cada uno de los cuales indica que no hay un valor requerido en el recurso liveStream que la solicitud intentó insertar. En la siguiente lista, se identifican los motivos del 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 muestra un error formatRequired si no especificas un valor para ninguna de las tres propiedades.
      • La API muestra un error frameRateRequired si especificas un valor para cdn.resolution, pero no para cdn.frameRate.
      • La API muestra un error resolutionRequired si especificas un valor para cdn.frameRate, pero no para cdn.resolution.
      liveStreams.update El método liveStreams.update muestra un error 403 (Forbidden) si la solicitud intenta modificar el valor de alguna de las siguientes propiedades no mutables:La reason en la respuesta del error es liveStreamModificationNotAllowed.

18 de diciembre de 2015

Las leyes de la Unión Europea (UE) exigen que se proporcionen ciertas divulgaciones y se obtenga el consentimiento de los usuarios finales de 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:

  • Recursos y métodos nuevos

    • La API admite varios recursos nuevos que brindan compatibilidad con la funcionalidad de chat para transmisiones en vivo. YouTube es compatible con la funcionalidad del 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 para el 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 mostrar, 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 bloquear a usuarios del chat o quitar mensajes. La API admite métodos para mostrar, insertar y borrar moderadores de chat en vivo.
      liveChatBans Este recurso identifica a un usuario que tiene prohibido publicar mensajes en un chat en vivo específico. Los bloqueos pueden ser temporales o permanentes. La API admite métodos para insertar y borrar bloqueos 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 proporciona una forma para que los usuarios apoyen voluntariamente a los creadores de YouTube con asistencia monetaria por única vez.

      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 mediante un chat en vivo durante una transmisión en vivo que es propiedad del canal también activan un mensaje 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 un patrocinador de un canal de YouTube. Los patrocinadores pagan una tarifa mensual a un canal. Aparece una insignia junto a los mensajes del patrocinador en los chats en vivo del canal. Además, los patrocinadores pueden participar en chats en vivo exclusivos para los patrocinadores del canal, en caso de que ocurran.

      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 de ese canal, la API también agrega un mensaje 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 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 de chat, bloquear a usuarios para que no participen en los chats en vivo o quitar los bloqueos existentes.
      contentDetails.closedCaptionsType Nota: Esta propiedad reemplaza a la propiedad contentDetails.enableClosedCaptions.

      Esta propiedad indica si los subtítulos están habilitados para tu transmisión y, de ser 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 por Internet con los formatos EIA-608 o CEA-708.
      contentDetails.enableClosedCaptions Esta propiedad dejó de estar disponible el 17 de diciembre de 2015. En su lugar, usa la propiedad contentDetails.closedCaptionsType. Para los clientes de la API que ya usan esta propiedad:
      • 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, persistentes o todas.

      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 y se puede acceder a ella a través del panel de transmisiones en vivo en YouTube Creator Studio. Las demás transmisiones del canal son transmisiones de eventos.

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

    Errores
    audioTooManyChannels El audio tiene más de dos canales, pero solo se admite uno (mono) o dos (estéreo). Corrige la cantidad de canales de audio.
    frameRateHigh La velocidad de fotogramas actual es demasiado alta. Establece la velocidad de fotogramas en %(framerate)s fps o menos.
  • Se corrigió la fecha de publicación de la actualización de documentación anterior.

  • Errores nuevos y actualizados

    • Además de los errores definidos para los recursos nuevos antes mencionados, la API admite los siguientes errores nuevos:

      Detalles del error
      liveBroadcasts.update
      Código de respuesta HTTPforbidden (403)
      RazónclosedCaptionsTypeModificationNotAllowed
      DescripciónEl valor contentDetails.closedCaptionsType solo se puede modificar cuando la transmisión tiene el estado created o ready.
      liveBroadcasts.update
      Código de respuesta HTTPinvalidValue (400)
      RazóninvalidEnableClosedCaptions
      DescripciónEn el recurso LiveBroadcast, el valor de la propiedad contentDetails.enableClosedCaptions no es compatible con el valor de la configuración de contentDetails.closedCaptionType. Modifica el recurso para incluir solo una de las dos propiedades y, luego, vuelve a enviar la solicitud.

19 de agosto de 2015

Esta actualización incluye los siguientes cambios:

  • Recursos y métodos nuevos

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

      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 Mostrar una lista de los mensajes del chat en vivo de una transmisión
      liveChats.insert Crea un nuevo mensaje de chat.

      Los mensajes del chat en vivo solo se pueden recuperar y publicar mientras se realiza una transmisió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 para el canal. La transmisión predeterminada de un canal existe indefinidamente, 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 las transmisiones predeterminadas.
      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 a una transmisión de video por Internet. En un 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 las emisoras reutilicen la misma transmisión para muchas transmisiones distintas si estas ocurren en momentos diferentes.
    • El recurso liveBroadcast contiene las siguientes propiedades nuevas:

      Propiedades
      snippet.isDefaultBroadcast Indica si esta transmisión es la predeterminada para el canal. Cuando se habilita un canal de YouTube para la transmisión en vivo, YouTube crea una transmisión y una transmisión predeterminadas para el canal. La transmisión define la forma en que el propietario del canal envía videos en vivo a YouTube, y la transmisión es la forma en que 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 debe codificarse para una transmisión de latencia baja. Una transmisión con baja latencia puede reducir el tiempo que tarda un video en estar visible para los usuarios que miran una transmisión, aunque también puede afectar la resolución para los usuarios de la transmisión.
      statistics.totalChatCount 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 una vez 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 completada.
  • 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)
      RazónliveStreamModificationNotAllowed
      DescripciónLa API no te permite cambiar una transmisión reutilizable para que no pueda reutilizarse, ni viceversa. Para obtener más información, consulta Información sobre las transmisiones y transmisiones.

21 de mayo de 2015

Esta actualización incluye los siguientes cambios:

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

    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 si quieres 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).

  • La API ahora admite los siguientes errores:

    Tipo de error Detalle del error Descripción
    insufficientPermissions liveStreamingNotEnabled Todos los métodos de los recursos liveBroadcast y liveStream muestran este error si el usuario que autorizó la solicitud a la API no está habilitado para transmitir videos en vivo en YouTube. Los detalles que expliquen por qué el usuario no puede transmitir videos en vivo pueden estar disponibles en la configuración del canal del usuario en https://www.youtube.com/features.
    rateLimitExceeded userRequestsExceedRateLimit Los métodos liveBroadcasts.insert y liveStreams.insert muestran este error para indicar que el usuario envió demasiadas solicitudes en un período determinado.

2 de mayo de 2014

Esta actualización incluye los siguientes cambios:

  • Las descripciones del recurso liveStream y del método liveBroadcasts.bind se actualizaron para tener en cuenta 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 pasarla al estado live. (Si el valor de la propiedad es false, la 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 tener en cuenta que no debes especificar un valor para la propiedad si tu transmisión no tiene una transmisión de monitor.

  • 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 de API para diferentes canales asociados con el mismo propietario de contenido.

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

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

  • La API ahora admite el siguiente error:

    Tipo de error Detalle del error Descripción
    insufficientPermissions livePermissionBlocked Los métodos liveBroadcasts.insert, liveBroadcasts.transition y liveStreams.insert muestran este error si el usuario que autorizó la solicitud no puede transmitir un video en vivo en YouTube. Los detalles que expliquen por qué el usuario no puede transmitir videos en vivo pueden estar disponibles en la configuración del canal del usuario en https://www.youtube.com/features.
  • Se actualizó el error invalidScheduledStartTime del método liveBroadcasts.insert para aclarar que la hora de inicio programada debe ser lo suficientemente cercana a la fecha actual como para que una transmisión pueda programarse de manera 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 los 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 tiene el estado testing o live. Si configuras esta propiedad como true, el recurso liveStream 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 indefinidamente. Con este cambio, la propiedad ya no es necesaria en las solicitudes liveBroadcasts.insert y liveBroadcasts.update.

    Si recuperas un recurso liveBroadcast que no especifica un valor para esa propiedad, la transmisión se programa para continuar indefinidamente. Del mismo modo, si llamas a los métodos liveBroadcasts.insert o liveBroadcasts.update y no especificas un valor para esta propiedad, se programará la transmisión para que continúe indefinidamente.

  • 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 emisión tiene permiso para inhabilitar las grabaciones de transmisiones en vivo.

    Si tu canal no tiene permiso para inhabilitar grabaciones e intentas insertar una transmisión con la propiedad recordFromStart configurada en false, la API mostrará 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 mostrará un error modificationNotAllowed.

  • El recurso liveBroadcast ya no contiene una propiedad enableArchive, que se mencionó en las descripciones de las propiedades contentDetails.enableDvr y contentDetails.enableEmbed.

  • Se actualizó la lista de valores válidos de 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 hora en las que se debe insertar el punto de inserción. La API muestra un error si una solicitud intenta insertar un punto de inserción que especifique un valor para esta propiedad y 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 de los subtítulos asociados con la transmisión de video por Internet.

  • Se actualizó la lista de valores válidos de 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 hora en la que se producirá un cambio de cortinilla de video. La API muestra 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 para 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 muestra 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 ellos.
    invalidValue invalidWalltime El método liveBroadcasts.control muestra este error si el valor del parámetro walltime no es válido.
    forbidden enableClosedCaptionsModificationNotAllowed El método liveBroadcasts.update muestra este error si intentas actualizar el valor contentDetails.enableClosedCaptions y el estado de la transmisión no es created ni ready.
    invalidValue conflictingTimeFields El método liveCuepoints.insert muestra 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:

  • Cambiaron las siguientes propiedades en el recurso liveBroadcast:

    • Se cambió el nombre de la propiedad startWithSlateCuepoint a startWithSlate.
    • Se cambió el nombre de la propiedad enableArchive a 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 eliminó la sección "Visualización de listas" de la guía Cómo empezar.

  • La API ya no admite la capacidad de insertar listas in-stream con el método liveCuepoints.insert. Los siguientes documentos se actualizaron para reflejar este cambio:

    • En la página de índice, la guía Cómo comenzar y el instructivo Ciclo 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:

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

  • Ahora, la API puede mostrar varios errores nuevos. La siguiente lista identifica el error y el método de la API que podría mostrar ese error:

    • 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 o no establece un valor para la propiedad contentDetails.enableArchive.
    • liveBroadcasts.update: el recurso no contiene o no establece un valor para la propiedad contentDetails.enableContentEncryption.
    • liveBroadcasts.update: el recurso no contiene o no 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 o no 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. Se actualizó la lista de formatos para la propiedad cdn.format en consecuencia, y el objeto cdn.multicastIngestionInfo y sus propiedades secundarias se quitaron de la documentación del recurso. Además, http se quitó de la lista de valores de cdn.ingestionType admitidos.