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

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

9 de octubre de 2023

A modo de 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 transmisiones en vivo. Además de liveCuepoints, que te permite insertar pausas publicitarias de forma manual en una transmisión, YouTube ahora admite una función para insertar pausas publicitarias durante el video en una transmisión de forma automática en intervalos fijos.

Si el propietario de la transmisión habilita los anuncios automáticos, puede ver los siguientes aspectos de su comportamiento:

  • la duración del intervalo entre las pausas publicitarias para anuncios durante el video
  • la estrategia de programación de los puntos de inserción de anuncios. Los puntos de inserción se pueden insertar de forma simultánea para todos los usuarios, o bien el tiempo de los puntos de inserción puede variar de un usuario a otro. Esta última estrategia permite que YouTube programe puntos de inserción a un ritmo más alto, lo que permitirá a los usuarios recibir puntos de inserción cuando sean aptos.
  • Es un período en el que no se muestran anuncios durante el video. Para esta función, el propietario de la transmisión especifica que se detendrá la inserción de anuncios durante el video 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 de anuncios automática está habilitada para la transmisión y especifican información adicional para programar puntos de inserción.
  • 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 para 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 publique una transmisión en vivo en YouTube inserte puntos de inserción en esa transmisión, lo que puede activar las pausas publicitarias. Este método reemplaza al método liveCuepoints.insert, que solo permitía a los socios de contenido de YouTube insertar 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. Se quitará la compatibilidad con el método liveCuepoints.insert a partir del 1 de mayo de 2023. 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 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 regalo de membresías. Del mismo modo, la nueva propiedad snippet.giftMembershipReceivedDetails y sus elementos secundarios contienen información sobre el evento de membresías de regalo recibidas.

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. De manera similar, la nueva propiedad snippet.newSponsorDetails y sus elementos secundarios contienen información sobre el evento New Sponsor.

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 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 acceso prohibido (403) y, más adelante, el método se quitará por completo. Los clientes aún pueden implementar su propia programación 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 retrasó 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 de baja anterior.

El campo cdn.format del recurso liveStream, que dejó de estar disponible en abril de 2016, dejará de 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 aún usa el campo cdn.format, se debe actualizar para especificar la frecuencia de fotogramas y la resolución por separado con las propiedades cdn.frameRate y cdn.resolution.

6 de julio de 2020

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

Además, en la nueva comparación de protocolos de transferencia, se enumeran 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 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 deje de transmitir video en la transmisión de video vinculada.

    Se actualizó el documento 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 vigor a partir del 1 de septiembre de 2020. En adelante, la fecha real en la que entran en vigor los cambios se denominará 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 continua 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 mostrará ningún resultado.
      • Si el valor del parámetro broadcastType es all, el método liveBroadcasts.list no mostrará las transmisiones persistentes que existían antes de ese momento.

    En 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 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 predeterminadas. En lugar de depender de los recursos predeterminados, los clientes de la API deben poder crear y administrar recursos liveBroadcast y liveStream, y vincularlos.
    • Si la transmisión predeterminada y la transmisión continua de un canal están activas, es decir, el canal las usa para una transmisión en vivo en el momento en que la baja entre en vigencia, 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 la transmisión predeterminadas.
    • Si la transmisión predeterminada y la transmisión predeterminadas de un canal no están activas de forma activa, después de que la baja entre en vigencia, YouTube ignorará los intentos de usar esos recursos para transmitir video.

    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 de este cambio:

    • En una nueva guía de migración, se intentan explicar los pasos que los desarrolladores podrían tener que abordar en los clientes de la API que actualmente usan transmisiones y transmisiones predeterminadas.
    • En la guía Vida de una transmisión, se explica el proceso paso a paso para crear y administrar un evento en vivo en YouTube. En cada paso, se explican las llamadas a la API y otras acciones 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 el recurso member y el método members.list.

El método sponsors.list dejará de estar disponible a partir del 30 de septiembre de 2020. 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 revisiones de la API de datos de YouTube para obtener más información sobre el nuevo recurso.

11 de marzo de 2020

Se actualizó la sección Ingestion endpoint de la guía Cómo publicar contenido de YouTube en vivo 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 Publicación de contenido de YouTube en vivo a través de 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 identificación de 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 de contenido 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 "hecho para niños" de una transmisión. Por ejemplo, el estado se puede determinar en función del 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 nuevas propiedades selfDeclaredMadeForKids y madeForKids.

También actualizamos las Condiciones del Servicio y las Políticas para Desarrolladores de los servicios de la API de YouTube. 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 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

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

  • En ella, se explica que se recomienda incluir segmentos reconocidos y segmentos pendientes en cada playlist multimedia. Esta práctica reduce la probabilidad de que se omita un segmento si se pierde una playlist multimedia en el servidor. Por ejemplo, puedes incluir hasta dos segmentos confirmados y hasta cinco segmentos pendientes en cada playlist de medios.
  • Ahora es obligatorio enviar una playlist multimedia para cada segmento multimedia. Esto permite que el servidor se recupere rápidamente si se pierde una playlist multimedia. Anteriormente, esta práctica se incluía como una recomendación.

28 de junio de 2019

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

En la nueva guía Cómo publicar contenido de YouTube en vivo a través de HLS, se proporcionan lineamientos sobre el uso de HLS para transmitir contenido en vivo a YouTube con un codificador. El objetivo de esta guía es ayudar a los proveedores de codificadores a agregar compatibilidad con la entrega HLS a sus productos.

4 de abril de 2019

Esta actualización incluye los siguientes cambios:

  • La documentación de referencia de la API se actualizó 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 parámetros y propiedades de muestra y, luego, 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 muestras de código completas, que se actualizan de forma dinámica para usar los alcances y 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 utilizar 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 facilitarte la visualización de muestras de código que se aplican directamente al caso de uso que intentas implementar en tu propia aplicación.

    Actualmente, las muestras de código 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.

    Junto con este cambio, se quitaron las páginas que anteriormente 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, los fans compran mensajes de Súper calcomanías durante las transmisiones en vivo en 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 superpuesta. En ese caso, el recurso también contiene el objeto snippet.superStickerDetails, que contiene información adicional sobre la calcomanía superpuesta.
  • 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 dejó de estar disponible a principios de 2017.

3 de abril de 2017

Se agregaron nuevas muestras de código de Java que indican cómo enumerar, insertar y borrar mensajes del chat en vivo. Los ejemplos llaman a los siguientes métodos:

13 de febrero de 2017

Esta actualización incluye los siguientes cambios:

  • Actualizaciones de los recursos y métodos existentes

    • Se actualizó el método liveCuepoints.insert para reflejar el hecho de que el parámetro onBehalfOfContentOwner es obligatorio actualmente. 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 de contenido de YouTube.

9 de febrero de 2017

Esta actualización incluye los siguientes cambios:

  • Actualizaciones de los 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 el formato según las convenciones de un idioma en particular. La definición de esa propiedad también se actualizó de acuerdo con ello.

      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 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 el chat en vivo de YouTube, los Súper chats se destacan entre 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 determinado.

      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 enumerar los eventos de Súper chat de las transmisiones en vivo de un canal en los últimos 30 días. Este 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 Super 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) para indicar que el recurso liveBroadcast que se inserta o 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 dejó de ofrecer la función de financiación de fans, y la API de Fan Funding 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 analizan en detalle 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 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 revisiones también se explicarán los cambios futuros en las Condiciones Actualizadas o en esos documentos de respaldo. Puedes suscribirte a un feed RSS que muestre los cambios en ese historial de revisión desde un vínculo en ese documento.

20 de mayo de 2016

YouTube ahora admite la transferencia de DASH. En consecuencia, la propiedad ingestionType del recurso liveStream admite el valor nuevo dash para identificar las transmisiones transferidas a YouTube con DASH.

La nueva guía Cómo publicar contenido de YouTube en vivo mediante DASH proporciona lineamientos sobre el uso del formato de publicación DASH para transmitir datos en vivo en YouTube a través de 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 los recursos y métodos existentes

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

        Además, el recurso liveStream contiene propiedades nuevas para especificar la velocidad de fotogramas y la resolución 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 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 seguirá funcionando. Además, las solicitudes para insertar transmisiones en vivo actualmente se ejecutan correctamente, siempre y cuando especifiques valores para la propiedad cdn.format o las propiedades cdn.frameRate y cdn.resolution. Si proporcionas valores para las tres propiedades, la API podría 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 Es la fecha y hora de la última actualización de 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 de liveChatMessage
      • La propiedad snippet.type admite dos valores nuevos, messageDeletedEvent y userBannedEvent, que corresponden a las nuevas propiedades descritas en el siguiente punto. 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 de 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 el bloqueo, por ejemplo, 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 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 de error y las propiedades con las que están asociados:
      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 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 están asociados:
      Más concretamente, 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 cualquiera 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 determinadas 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 para admitir la función 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 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 solo 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 de chat. Los moderadores pueden realizar algunas funciones administrativas, como prohibir a los usuarios en el chat o quitar mensajes. La API admite métodos para enumerar, 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 en particular. Las prohibiciones pueden ser temporales o permanentes. La API admite métodos para insertar y borrar prohibiciones de chat en vivo.
      fanFundingEvents Este recurso representa un evento de financiación de fans en un canal de YouTube. La financiación de fans ofrece a los usuarios una forma de apoyar voluntariamente a los creadores de YouTube con una contribución monetaria única.

      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 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 a un patrocinador de un canal de YouTube. El patrocinador paga una tarifa mensual a un canal. Aparecerá una insignia junto a los mensajes de los patrocinadores en los chats en vivo del canal. Además, los patrocinadores también pueden participar en chats en vivo exclusivos para los patrocinadores del canal, si los hay.

      El método sponsors.list de la API muestra una lista de los patrocinadores de un canal. Cuando los usuarios se registran para patrocinar un canal durante una transmisión en vivo que es propiedad 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 los 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, prohibir que los usuarios participen en chats en vivo o quitar 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, 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 los 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 a partir del 17 de diciembre de 2015. Usa la propiedad contentDetails.closedCaptionsType. Para los clientes de 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, 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 de 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 de estado de salud nuevos:

    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. 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 mencionados anteriormente, la API admite los siguientes errores nuevos:

      Detalles del error
      liveBroadcasts.update
      Código de respuesta HTTPforbidden (403)
      MotivoclosedCaptionsTypeModificationNotAllowed
      DescripciónEl valor contentDetails.closedCaptionsType solo se puede modificar cuando la transmisión está en el 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 de la 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:

  • Recursos y métodos nuevos

    • Nota: La documentación del recurso liveChat y sus métodos es confidencial y solo es visible para 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 Muestra una lista de 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 una transmisión está en vivo.

  • Actualizaciones de los 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. La transmisión predeterminada de un canal existe de forma indefinida, no se puede borrar ni tiene una hora de inicio o finalización asociada. 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 puede 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, Problemas de configuración de los recursos de transmisiones en vivo, se enumeran todos los problemas que informa la API.
      contentDetails.isReusable Indica si la transmisión se puede volver a usar, lo que significa que se puede vincular a varias transmisiones. Es común que los transmisores reutilicen la misma transmisión para muchas transmisiones diferentes si estas ocurren en diferentes momentos.
    • El recurso liveBroadcast contiene las siguientes propiedades nuevas:

      Propiedades
      snippet.isDefaultBroadcast Indica si esta transmisión es la predeterminada para el canal. Cuando un canal de YouTube se habilita para transmitir en vivo, YouTube crea una transmisión predeterminada y una transmisión predeterminada para el canal. La transmisión define cómo el propietario del canal envía el video en vivo a YouTube, y la transmisión es la forma en que los espectadores 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 de baja latencia. Una transmisión de baja latencia puede reducir la cantidad de tiempo que tarda el video en ser visible para los usuarios que miran una transmisión, aunque también puede afectar la resolución de los usuarios que miran la transmisión.
      statistics.totalChatCount Es la cantidad total de mensajes del 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 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)
      MotivoliveStreamModificationNotAllowed
      DescripciónLa API no te permite cambiar un flujo reutilizable para que no se pueda volver a usar, o viceversa. Para obtener más información, consulta Información sobre transmisiones y emisiones.

21 de mayo de 2015

Esta actualización incluye los siguientes cambios:

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

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

    Si quieres obtener más información sobre esta función, visita el Blog para creadores de YouTube.

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 de la API no está habilitado para transmitir videos en vivo en YouTube. Los detalles que explican por qué el usuario no puede transmitir video 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:

  • 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 en 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 migrar tu transmisión al estado testing antes de poder migrarla 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 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 a la API de 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 llames a ese método.

  • La documentación de errores 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 videos en vivo en YouTube. Los detalles que explican por qué el usuario no puede transmitir video 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 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 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 liveBroadcasts.insert y liveBroadcasts.update.

    Si recuperas un recurso liveBroadcast que no especifica un valor para esta propiedad, la transmisión se programará para continuar 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 continuar 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 puede 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 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 mencionaba 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 la 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 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 muestra un error si una solicitud especifica un valor para este parámetro y el parámetro offsetTimeMs.

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

  • En la respuesta de la API a una solicitud 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 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 o 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:

  • 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 listas" de la guía Cómo comenzar.

  • La API ya no admite la capacidad de insertar cortinillas en el flujo con el método liveCuepoints.insert. Se actualizaron los siguientes documentos para reflejar este cambio:

    • La página principal, la guía de Introducción y el instructivo Vida de una transmisión ya no mencionan 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 de forma más clara 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 mostrarlo:

    • 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. La lista de formatos de 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 cdn.ingestionType admitidos.