API потокового вещания YouTube – история изменений

На этой странице перечислены изменения API YouTube Live Streaming и обновления документации. Подпишитесь на этот журнал изменений . Подписаться

9 октября 2023 г.

Исключительно для справки: в этом CSV-файле вы можете найти идентификаторы стикеров, к которым относятся суперстикеры. Определения свойства snippet.superStickerDetails.superStickerMetadata.stickerId ресурса liveChatMessage и свойства snippet.superStickerMetadata.stickerId ресурса superChatEvent были обновлены с учетом этой информации.

15 сентября 2023 г.

API теперь поддерживает новый способ вставки рекламы в прямые трансляции. В дополнение к liveCuepoints , которая позволяет вручную вставлять рекламные паузы в трансляцию, YouTube теперь поддерживает функцию автоматической вставки рекламных пауз в середине ролика в трансляцию через фиксированные промежутки времени.

Если владелец трансляции включает автоматическую рекламу, он может просматривать следующие аспекты поведения рекламы:

  • длина интервала между рекламными паузами в середине ролика.
  • стратегия планирования рекламных точек. Точки поворота могут быть вставлены одновременно для всех зрителей, либо время их появления может варьироваться от зрителя к зрителю. Последняя стратегия позволяет YouTube планировать ключевые точки с повышенной частотой, что позволяет зрителям получать ключевые точки, когда они имеют на это право.
  • период, в течение которого реклама в середине ролика не показывается; для этой функции владелец трансляции указывает, что вставка объявлений в середине ролика приостанавливается до определенного времени.

В документации отражены следующие изменения API для поддержки этой функции:

  • Ресурс liveBroadcast теперь содержит объект monetizationDetails . Поля объекта указывают, включена ли автоматическая вставка рекламы для трансляции, и указывают дополнительную информацию для планирования ключевых точек.
  • Параметр part метода liveBroadcast.list поддерживает значение monetizationDetails .
  • Метод update можно использовать для приостановки вставки рекламы в середине ролика на определенный период для прямой трансляции. В документации также теперь указано несколько ошибок, которые могут возникнуть при обновлении деталей монетизации для прямой трансляции.

1 августа 2023 г.

Это обновление содержит следующие изменения:

  • Метод liveBroadcasts.update больше не требует указания значений для этих полей:

    • snippet.title
    • status.privacyStatus

    Если эти поля исключить из запроса, они останутся без изменений.

1 ноября 2022 г.

  • Новый метод liveBroadcasts.cuepoint позволяет любому владельцу канала, ведущему прямую трансляцию на YouTube, вставлять в эту трансляцию ключевые точки, которые могут запускать рекламные паузы. Этот метод заменяет метод liveCuepoints.insert , который позволял только партнерам по контенту YouTube вставлять ключевые точки в прямые трансляции.

    Несколько руководств были обновлены, чтобы отразить доступность этого нового метода.

  • Примечание. Это объявление об устаревании.

    Метод liveCuepoints.insert устарел. Поддержка метода liveCuepoints.insert будет прекращена 1 мая 2023 г. или позже. Пользователям API следует обновить свои приложения, чтобы вместо этого вызывать метод liveBroadcasts.cuepoint .

  • Документация по методу liveBroadcasts.control удалена. Уведомление об устаревании этого метода было опубликовано в сентябре 2020 года.

1 октября 2022 г.

Это обновление содержит следующие изменения:

  • Метод liveBroadcasts.update больше не требует указания значений для этих полей:

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

    Если эти поля исключить из запроса, они останутся без изменений.

  • Удалена документация по устаревшим полям liveBroadcast :

    • contentDetails.enableContentEncryption
    • contentDetails.startWithSlate

1 апреля 2022 г.

Это обновление содержит следующие изменения:

  • Свойство snippet.type теперь поддерживает два новых значения:

    • membershipGiftingEvent
    • giftMembershipReceivedEvent
  • Новое свойство snippet.membershipGiftingDetails ресурса liveChatMessage и его дочерние элементы содержат информацию о событии «Подарок членства». Аналогично, новое свойство snippet.giftMembershipReceivedDetails и его дочерние элементы содержат информацию о событии Gift Membership Получено.

15 сентября 2021 г.

Это обновление содержит следующие изменения:

  • Свойство snippet.type теперь поддерживает два новых значения:

    • newSponsorEvent
    • memberMilestoneChatEvent
  • Новое свойство snippet.memberMilestoneChatDetails ресурса liveChatMessage и его дочерние элементы содержат информацию о событии Member Milestone Chat. Аналогично, новое свойство snippet.newSponsorDetails и его дочерние элементы содержат информацию о событии «Новый спонсор».

1 декабря 2020 г.

Метод liveBroadcasts.transition API поддерживает новую ошибку 403 ( Forbidden ), которая указывает на то, что пользователь отправил слишком много запросов в течение заданного периода времени. Причина ошибки — userRequestsExceedRateLimit .

21 сентября 2020 г.

  • Определение свойства status.madeForKids ресурса liveBroadcast было обновлено, чтобы уточнить, что это свойство доступно только для чтения. Это не отражает изменение функциональности API.

    Чтобы обозначить прямую трансляцию как ориентированную на детей, установите для свойства status.selfDeclaredMadeForKids значение true при вызове метода liveBroadcasts.insert для создания трансляции.

  • Примечание. Это изменение включает объявление о прекращении поддержки и обновление предыдущего объявления об прекращении поддержки.

    Метод liveBroadcasts.control станет устаревшим 1 октября 2020 года или после этой даты. После этой даты все вызовы этого метода будут возвращать запрещенную ошибку (403), а позже метод будет полностью удален. Клиенты по-прежнему могут реализовать собственное планирование, добавив наложение к видео, отправленному на серверы приема YouTube.

    Дата прекращения поддержки объявления об прекращении поддержки, сделанного 16 апреля 2020 г. , которая первоначально была запланирована на 1 сентября 2020 г., была перенесена и теперь произойдет 1 октября 2020 г. или после этой даты. Таким образом, функции, включенные в это объявление об устаревании, и liveBroadcasts.control все методы liveBroadcasts.control будут признаны устаревшими одновременно.

17 июля 2020 г.

Примечание. Это обновление предыдущего объявления об прекращении поддержки.

Поле cdn.format ресурса liveStream , которое было устарело в апреле 2016 года, больше не будет поддерживаться с 17 августа 2020 года. С этой даты запросы, все еще использующие это поле, не будут выполняться.

Если ваш код по-прежнему использует поле cdn.format , его необходимо обновить, чтобы указать частоту кадров и разрешение отдельно, используя свойства cdn.frameRate и cdn.resolution .

6 июля 2020 г.

Руководство по доставке живого контента YouTube через HLS было обновлено с некоторыми изменениями:

  • Рекомендуемая продолжительность медиасегмента была обновлена ​​до одной-четырех секунд.
  • В новом разделе объясняется, как получить URL-адрес приема HLS из YouTube Creator Studio .
  • Инструкции по форматированию значения параметра file были перенесены в новый раздел «Завершение URL-адреса приема HLS ». Эти инструкции применимы независимо от того, получен ли URL-адрес приема HLS из API YouTube или из YouTube Creator Studio.

Кроме того, в новом сравнении протоколов приема перечислены протоколы приема, которые поддерживает YouTube, кодеки, поддерживаемые для каждого протокола, а также дополнительная информация о соответствующих вариантах использования для каждого протокола.

16 апреля 2020 г.

Это обновление включает в себя новое свойство и объявление об устаревании:

  • Ресурс liveBroadcast теперь поддерживает свойство contentDetails.enableAutoStop . Свойство указывает, должна ли трансляция автоматически останавливаться примерно через минуту после того, как владелец канала прекращает потоковую передачу видео в привязанном видеопотоке.

    Срок действия документа трансляции был обновлен, чтобы объяснить, как меняется пошаговый процесс создания и управления трансляцией YouTube в прямом эфире, если для свойств contentDetails.enableAutoStart или contentDetails.enableAutoStop установлено значение true .

  • Примечание. Это объявление об устаревании. Эти изменения вступят в силу 1 сентября 2020 г. или после этой даты. Фактическая дата вступления изменений в силу называется ниже датой прекращения поддержки.

    Это обновление объясняет потенциально критическое изменение. Это затрагивает клиентские приложения API, которые используют ресурсы каналов liveStream и liveBroadcast по умолчанию для потоковой передачи контента на YouTube. В частности, идентификатор широковещательной передачи и идентификатор потока , связанные с постоянной широковещательной передачей и потоком, больше не будут функционировать для запуска новых широковещательных передач.

    Ваше заявление будет затронуто, если выполняется любое из следующих условий:

    • Он проверяет значение свойства isDefaultBroadcast ресурса liveBroadcast . Это свойство не будет возвращено после даты устаревания.
    • Он проверяет значение свойства isDefaultStream ресурса liveStream . Это свойство не будет возвращено после даты устаревания.
    • Он вызывает метод liveBroadcasts.list и устанавливает для параметра broadcastType значение persistent или all . Этот параметр станет устаревшим в результате этих изменений. На дату прекращения поддержки:
      • Если значение параметра broadcastType является persistent , то метод liveBroadcasts.list не вернет никаких результатов.
      • Если значение параметра broadcastTypeall , то метод liveBroadcasts.list не будет возвращать постоянные широковещательные рассылки, существовавшие до этого времени.

    Для справки: за последние несколько лет YouTube автоматически создавал поток по умолчанию и трансляцию по умолчанию для канала, когда этот канал был включен для прямой трансляции. Поток по умолчанию существовал неопределенно долго, не имел связанного с ним времени начала или окончания и не мог быть удален. Точно так же широковещательная рассылка по умолчанию считалась постоянной . Оно существовало всегда и не было привязано к конкретному событию.

    На дату прекращения поддержки:

    • YouTube больше не будет создавать потоки и трансляции по умолчанию. Вместо того, чтобы полагаться на ресурсы по умолчанию, клиенты API должны иметь возможность создавать ресурсы liveBroadcast и liveStream и управлять ими, а также связывать эти ресурсы вместе.
    • Если трансляция по умолчанию и поток по умолчанию активны в прямом эфире, то есть канал использует их для прямой трансляции на момент вступления в силу прекращения поддержки, текущая трансляция не будет затронута. Однако после завершения трансляции канал не сможет снова использовать трансляцию по умолчанию и поток по умолчанию.
    • Если трансляция канала по умолчанию и поток по умолчанию не активны в прямом эфире, то после вступления в силу прекращения поддержки YouTube будет игнорировать попытки использовать эти ресурсы для трансляции видео.

    Если это затронуло ваше приложение, обратитесь к следующим документам, которые помогут вам обновить приложение, чтобы оно по-прежнему работало должным образом после этого изменения:

    • Новое руководство по миграции пытается объяснить шаги, которые, возможно, придется выполнить разработчикам в клиентах API, которые в настоящее время используют широковещательные рассылки и потоки по умолчанию.
    • Руководство «Жизнь трансляции» проведет вас через пошаговый процесс, объясняющий, как создавать прямые трансляции на YouTube и управлять ими. На каждом этапе объясняются вызовы API или другие действия, которые необходимо выполнить для выполнения определенного действия, и вашему приложению необходимо будет следовать этому процессу, когда YouTube перестанет поддерживать потоки и трансляции по умолчанию.

31 марта 2020 г.

Примечание. Это объявление об устаревании.

Ресурс sponsor и метод sponsors.list устарели и заменены ресурсом member и members.list .

Метод sponsors.list перестанет поддерживаться 30 сентября 2020 г. или после этой даты. Клиентам API следует обновить вызовы метода sponsors.list , чтобы вместо него использовать members.list . Дополнительную информацию о новом ресурсе можно найти в истории изменений API данных YouTube .

11 марта 2020 г.

Раздел конечной точки приема в руководстве «Доставка контента YouTube в прямом эфире через HLS» был обновлен, чтобы разъяснить процесс, который кодировщик должен использовать для заполнения значения параметра file= при формировании основного и резервного URL-адресов приема.

4 февраля 2020 г.

Руководство по доставке контента YouTube в прямом эфире через HLS было обновлено, и в нем указано, что запросы DELETE не являются обязательными и что конечная точка HLS YouTube игнорирует их. Из соображений производительности YouTube рекомендует клиентам не отправлять запросы DELETE .

10 января 2020 г.

API теперь поддерживает возможность идентифицировать контент, предназначенный для детей, который YouTube называет «сделанным для детей». Подробную информацию о контенте, предназначенном для детей, можно найти в Справочном центре YouTube.

  • Ресурс liveBroadcast поддерживает два новых свойства, позволяющих создателям и зрителям контента определять контент, предназначенный для детей:
    • Свойство selfDeclaredMadeForKids позволяет создателям контента указать, является ли прямая трансляция контентом, предназначенным для детей. Это свойство можно установить при создании трансляции с помощью метода liveBroadcasts.insert . Обратите внимание, что это свойство включается в ответы API, содержащие ресурсы liveBroadcast , только если владелец канала санкционировал запрос API.
    • Свойство madeForKids позволяет любому пользователю API получить статус трансляции «сделано для детей». Например, статус может определяться на основе значения свойства selfDeclaredMadeForKids . Дополнительную информацию о настройке аудитории для вашего канала, видео или трансляций см. в Справочном центре YouTube .
  • В API данных YouTube ресурс channel также поддерживает новые свойства selfDeclaredMadeForKids и madeForKids .

Мы также обновили Условия использования API-сервисов YouTube и Политику для разработчиков. Дополнительную информацию см. в Условиях использования API-сервисов YouTube — История изменений . Изменения в Условиях использования API-сервисов YouTube и Правилах для разработчиков вступят в силу 10 января 2020 года по тихоокеанскому времени.

20 августа 2019 г.

Раздел «Требования» руководства «Доставка контента YouTube в прямом эфире через HLS» обновлен двумя изменениями:

  • В нем поясняется, что рекомендуется включать в каждый список воспроизведения мультимедиа как подтвержденные, так и невыполненные сегменты. Такая практика снижает вероятность пропуска сегмента, если список воспроизведения мультимедиа потерян на стороне сервера. Например, вы можете включить до двух подтвержденных сегментов и до пяти невыполненных сегментов в каждый список воспроизведения мультимедиа.
  • Теперь требуется отправлять список воспроизведения мультимедиа для каждого сегмента мультимедиа. Это позволяет серверу быстро восстановиться в случае потери списка воспроизведения мультимедиа. Ранее эта практика была указана как рекомендация.

28 июня 2019 г.

YouTube теперь поддерживает прием HLS. Соответственно, свойство ingestionType ресурса liveStream поддерживает новое значение hls для идентификации потоков, принимаемых на YouTube с использованием HLS.

В новом руководстве «Доставка живого контента YouTube через HLS» представлены рекомендации по использованию HLS для потоковой передачи живого контента на YouTube из кодировщика. Цель руководства — помочь поставщикам кодировщиков добавить поддержку доставки HLS в свои продукты.

4 апреля 2019 г.

Это обновление содержит следующие изменения:

  • Справочная документация по API была обновлена, чтобы лучше объяснить общие случаи использования каждого метода и предоставить динамические высококачественные примеры кода через виджет API-интерфейса Explorer. Пример см. в документации метода liveBroadcasts.list . На страницах, описывающих методы API, теперь есть два новых элемента:

    • Виджет API-интерфейса позволяет выбирать области авторизации, вводить образцы значений параметров и свойств, а затем отправлять фактические запросы API и просматривать фактические ответы API. Виджет также предлагает полноэкранное представление, в котором показаны полные примеры кода, которые динамически обновляются для использования введенных вами областей и значений.

    • В разделе «Распространенные варианты использования» описан один или несколько распространенных вариантов использования метода, описанного на странице. Например, вы можете вызвать метод liveBroadcasts.list для получения данных о конкретной трансляции или для получения данных о трансляциях текущего пользователя.

      Вы можете использовать ссылки в этом разделе, чтобы заполнить Обозреватель API примерами значений для вашего варианта использования или открыть полноэкранный Обозреватель API с уже заполненными значениями. Эти изменения призваны облегчить вам просмотр примеров кода, которые напрямую применимы к варианту использования, который вы пытаетесь реализовать в своем собственном приложении.

    Примеры кода в настоящее время поддерживаются для Java, JavaScript, PHP, Python и Curl.

  • Страница примеров кода также имеет новый пользовательский интерфейс, который предлагает все те же функции, которые описаны выше. С помощью этого инструмента вы можете изучить варианты использования различных методов, загрузить значения в проводник API и открыть полноэкранный проводник API, чтобы получить примеры кода на Java, JavaScript, PHP и Python.

    В связи с этим изменением были удалены страницы, на которых ранее были перечислены доступные примеры кода для Java, PHP и Python.

25 февраля 2019 г.

Документация ресурсов liveChatMessage и superChatEvent была обновлена, чтобы отразить тот факт, что оба ресурса теперь могут содержать информацию о суперстикерах. Суперстикеры – это тип сообщения Суперчата, в котором отображается изображение. Как и в других суперчатах, сообщение в суперстикере покупается фанатом во время прямой трансляции на YouTube.

  • В ресурсе liveChatMessage для свойства snippet.type теперь установлено значение superStickerEvent , что указывает на то, что ресурс содержит информацию о суперстикере. В этом случае ресурс также содержит объект snippet.superStickerDetails , который содержит дополнительную информацию о суперстикере.
  • В ресурсе superChatEvent логический snippet.isSuperStickerEvent указывает, является ли сообщение Суперчата также суперстикером. Если да, то объект snippet.superStickerMetadata содержит дополнительные сведения о суперстикере.

5 апреля 2018 г.

Описание метода superChatEvents.list было обновлено, чтобы отразить тот факт, что ответ API больше не содержит fanFundingEvents , которые устарели в начале 2017 года.

3 апреля 2017 г.

Были добавлены новые примеры кода Java , показывающие, как просматривать , вставлять и удалять сообщения живого чата. Образцы вызывают следующие методы:

13 февраля 2017 г.

Это обновление содержит следующие изменения:

  • Обновления существующих ресурсов и методов

    • Метод liveCuepoints.insert был обновлен, чтобы отразить тот факт, что в настоящее время требуется параметр onBehalfOfContentOwner . Кроме того, описание метода было обновлено: теперь указано, что вызовы этого метода должны быть авторизованы учетной записью, связанной с владельцем контента YouTube.

9 февраля 2017 г.

Это обновление содержит следующие изменения:

  • Обновления существующих ресурсов и методов

    • Новый параметр hl метода superChatEvents.list позволяет указать, что значение свойства snippet.displayString должно быть отформатировано в соответствии с соглашениями определенного языка. Определение этого свойства также было соответствующим образом обновлено.

      Значением параметра должен быть код языка, включенный в список, возвращаемый методом i18nLanguages.list . Значением по умолчанию является en , что означает, что по умолчанию отображаемые строки форматируются так, как они будут использоваться на английском языке. Например, по умолчанию строка форматируется как $1.00 , а не $1,00 .

1 февраля 2017 г.

Это обновление содержит следующие изменения:

  • Новые ресурсы и методы

    • Новый ресурс superChatEvent представляет собой сообщение Суперчата, приобретенное фанатом во время прямой трансляции на YouTube. В прямом эфире чата YouTube суперчаты выделяются среди других сообщений по двум причинам:

      • Суперчаты выделяются цветом.
      • Суперчаты остаются закрепленными за тикером в течение определенного периода времени.

      Цвет Суперчата, период времени, в течение которого он остается закрепленным на тикере, и максимальная длина сообщения определяются суммой покупки. Дополнительную информацию о Суперчатах можно найти в Справочном центре YouTube .

      API поддерживает метод составления списка событий Суперчата для прямых трансляций канала за предыдущие 30 дней. Этот метод также возвращает данные о событиях FanFunding ( fanFundingEvents ) из последней прямой трансляции канала.

  • Обновления существующих ресурсов и методов

    • Свойство snippet.type теперь поддерживает значение superChatEvent , которое указывает, что ресурс описывает Суперчат.

      Кроме того, новое свойство snippet.superChatDetails ресурса liveChatMessage и его дочерние элементы содержат информацию о событии Суперчата.

    • Свойство cdn.resolution ресурса liveStream теперь поддерживает значение 2160p .

  • Новые и обновленные ошибки

    • API поддерживает следующие новые ошибки:

      Подробности ошибки
      liveBroadcasts.insert , liveBroadcasts.update Методы liveBroadcasts.insert и liveBroadcasts.update возвращают ошибки 400 ( Bad Request ), указывающие на то, что вставляемый или обновляемый ресурс liveBroadcast содержит недопустимое значение либо для свойства contentDetails.enableEmbed , либо для свойства contentDetails.projection . Причинами двух новых ошибок являются invalidEmbedSetting invalidProjection соответственно.

12 января 2017 г.

Примечание. Это объявление об устаревании.

В связи с выпуском новой функции Суперчат YouTube прекратил поддержку функции Fan Funding, а API Fan Funding будет отключен 28 февраля 2017 года. На эту дату:

11 августа 2016 г.

Это обновление содержит следующие изменения:

  • Недавно опубликованные Условия использования API-сервисов YouTube («Обновленные условия»), подробно обсуждаемые в блоге разработчиков и разработчиков YouTube , содержат богатый набор обновлений текущих Условий обслуживания. Помимо обновленных условий , которые вступят в силу 10 февраля 2017 г., это обновление включает в себя несколько подтверждающих документов, которые помогут объяснить политики, которым должны следовать разработчики.

    Полный набор новых документов описан в истории изменений Обновленных условий . Кроме того, будущие изменения в Обновленных условиях или в подтверждающих документах также будут объяснены в этой истории изменений. Вы можете подписаться на RSS-канал со списком изменений в этой истории изменений по ссылке в этом документе.

20 мая 2016 г.

YouTube теперь поддерживает прием DASH. Соответственно, свойство ingestionType ресурса liveStream поддерживает новое dash для идентификации потоков, загружаемых на YouTube с помощью DASH.

Новое руководство по доставке контента YouTube в прямом эфире через DASH содержит рекомендации по использованию формата доставки DASH для потоковой передачи данных в реальном времени на YouTube из кодера. Он призван помочь производителям кодировщиков добавить поддержку доставки DASH в свои продукты.

18 апреля 2016 г.

Это обновление содержит следующие изменения:

  • Обновления существующих ресурсов и методов

    • обновления ресурсов liveStream
      • YouTube теперь поддерживает потоки с разрешением 1440p и частотой 30 или 60 кадров в секунду.

        Кроме того, ресурс liveStream содержит новые свойства для указания частоты кадров и разрешения входящих видеоданных:

        Характеристики
        cdn.frameRate Частота кадров входящих видеоданных. Допустимые значения: 30fps и 60fps .
        cdn.resolution Разрешение входящих видеоданных. Допустимые значения свойств: 1440p , 1080p , 720p , 480p , 360p и 240p .
      • В соответствии с появлением свойств cdn.frameRate и cdn.resolution ресурса liveStream , cdn.format ресурса теперь считается устаревшим. Свойство cdn.format определяет разрешение и частоту кадров в одном значении.

        Мы рекомендуем вам перейти на новые поддерживаемые поля. Тем временем cdn.format продолжает работать. Кроме того, запросы на вставку прямых потоков в настоящее время выполняются, если вы указываете значения либо для свойства cdn.format , либо для свойств cdn.frameRate и cdn.resolution . Если вы предоставите значения для всех трех свойств, API может вернуть ошибку, если значения не совпадают.

        Обратите внимание: хотя свойство cdn.format устарело, теперь оно поддерживает два новых значения: 1440p и 1440p_hfr , чтобы отразить поддержку API потоков 1440p со скоростью 30 или 60 кадров в секунду.

    • Обновления ресурса liveBroadcast
      • Ресурс liveBroadcast содержит следующие новые свойства:

        Характеристики
        contentDetails.boundStreamLastUpdateTimeMs Дата и время последнего обновления прямой трансляции, на которую ссылается свойство contentDetails.boundStreamId трансляции.
        contentDetails.projection Формат проекции трансляции. Значение свойства по умолчанию — rectangular . Допустимые значения свойства: 360 и rectangular .
      • Определение свойства statistics.totalChatCount ресурса liveBroadcast было обновлено, чтобы отметить, что значение свойства отображается только в том случае, если в трансляции есть хотя бы одно сообщение чата.

    • Обновления ресурсов liveChatMessage
      • Свойство snippet.type поддерживает два новых значения — messageDeletedEvent и userBannedEvent , которые соответствуют новым свойствам, описанным в следующем пункте. Определение свойства snippet.authorChannelId также было обновлено, чтобы объяснить, что значение свойства определяет для этих новых типов сообщений.

      • Ресурс liveChatMessage содержит следующие новые свойства:

        Характеристики
        snippet.messageDeletedDetails Этот объект содержит информацию о сообщении, которое было удалено модератором чата. Объект присутствует только в том случае, если значение свойства snippet.type равно messageDeletedEvent .
        snippet.userBannedDetails Этот объект содержит информацию о пользователе, которому запрещено участие в чате. Объект также содержит информацию о самом бане, а именно, является ли бан постоянным или временным. Если бан временный, одно из свойств объекта указывает продолжительность бана.

        Этот объект присутствует только в том случае, если значение свойства snippet.type равно userBannedEvent .
  • Новые и обновленные ошибки

    • API поддерживает следующие новые ошибки:

      Подробности ошибки
      liveBroadcasts.bind Метод liveBroadcasts.bind возвращает ошибку 403 ( Forbidden ), указывающую на то, что пользователь отправил слишком много запросов в течение заданного периода времени. Причина ошибки — userRequestsExceedRateLimit .

      Методы liveBroadcasts.insert и liveBroadcasts.update уже поддерживают ту же ошибку.
      liveStreams.insert Метод liveStreams.insert поддерживает четыре новые ошибки 400 ( Bad Request ), которые идентифицируют недопустимое значение свойства в ресурсе liveStream , который запрос пытался вставить. В следующем списке указаны причины ошибок и свойства, с которыми они связаны:
      liveStreams.insert Метод liveStreams.insert поддерживает две новые ошибки 400 ( Bad Request ), каждая из которых указывает на то, что требуемое значение отсутствует в ресурсе liveStream , который пытался вставить запрос. В следующем списке указаны причины ошибок и свойства, с которыми они связаны:
      Точнее, при вставке ресурса liveStream необходимо указать значение либо для свойства cdn.format , либо для свойств cdn.frameRate и cdn.resolution .
      • API возвращает ошибку formatRequired , если вы не укажете значение ни для одного из трех свойств.
      • API возвращает frameRateRequired , если вы укажете значение для cdn.resolution , но не cdn.frameRate .
      • API возвращает ошибку resolutionRequired , если вы укажете значение для cdn.frameRate , но не cdn.resolution .
      liveStreams.update Метод liveStreams.update возвращает ошибку 403 ( Forbidden ), если запрос пытается изменить значение любого из следующих неизменяемых свойств: reason ответа об ошибке является liveStreamModificationNotAllowed .

18 декабря 2015 г.

Законы Европейского Союза (ЕС) требуют предоставления определенной информации и получения согласия от конечных пользователей в ЕС. Таким образом, конечные пользователи в Европейском Союзе должны соблюдать Политику согласия пользователей ЕС . Мы добавили уведомление об этом требовании в Условия использования API YouTube .

17 декабря 2015 г.

Это обновление содержит следующие изменения:

  • Новые ресурсы и методы

    • API поддерживает несколько новых ресурсов для поддержки функций чата для прямых трансляций. YouTube поддерживает функцию живого чата во время активных прямых трансляций, и эти ресурсы и их методы поддерживают получение сообщений чата, а также административные функции для чата.

      Ресурсы
      liveChatMessage Этот ресурс представляет собой сообщение в чате YouTube. YouTube поддерживает несколько типов сообщений, включая текстовые сообщения и мероприятия по сбору средств от поклонников. Некоторые типы сообщений указывают на конкретную фазу чата, например начало периода, доступного только для спонсоров, или окончание чата. API поддерживает методы для просмотра, вставки и удаления сообщений чата.
      liveChatModerators Этот ресурс идентифицирует модератора чата. Модераторы могут выполнять некоторые административные функции, например запрещать пользователям доступ в чат или удалять сообщения. API поддерживает методы для перечисления, добавления и удаления модераторов чата.
      liveChatBans Этот ресурс идентифицирует пользователя, которому запрещено публиковать сообщения в определенном чате. Баны могут быть временными или постоянными. API поддерживает методы для вставки и удаления запретов в чате.
      fanFundingEvents Этот ресурс представляет собой мероприятие Fan Funding на канале YouTube. Функция «Фан-фандинг» дает зрителям возможность добровольно поддержать авторов YouTube единовременной денежной поддержкой.

      Метод fanFundingEvents.list API перечисляет события канала, посвященные пожертвованиям фанатов. События Fan Funding, которые инициируются через чат во время прямой трансляции, принадлежащей каналу, также вызывают сообщение fanFundingEvent в чат трансляции.

      Подробную информацию о пожертвованиях фанатов можно найти в Справочном центре YouTube .
      sponsors Ресурс sponsor идентифицирует спонсора канала YouTube. Спонсор платит каналу ежемесячную плату. Значок отображается рядом с сообщениями спонсора в чатах канала, и спонсоры также могут участвовать в чатах исключительно для спонсоров канала, если таковые имеются.

      Метод sponsors.list API перечисляет спонсоров канала. Когда пользователи регистрируются для спонсирования канала во время прямой трансляции, принадлежащей этому каналу, API также добавляет сообщение newSponsorEvent в чат трансляции.

      Подробную информацию о спонсорстве можно найти в Справочном центре YouTube .

  • Обновления существующих ресурсов и методов

    • Ресурс liveBroadcast содержит следующие новые свойства:

      Характеристики
      snippet.liveChatId Идентификатор живого чата YouTube трансляции. С помощью этого идентификатора вы можете использовать методы ресурса liveChatMessage для получения, вставки или удаления сообщений чата. Вы также можете добавлять или удалять модераторов чата, запрещать пользователям участвовать в чатах или снимать существующие запреты.
      contentDetails.closedCaptionsType Примечание. Это свойство заменяет свойство contentDetails.enableClosedCaptions .

      Это свойство указывает, включены ли субтитры для вашей трансляции, и если да, то какой тип субтитров вы предоставляете:
      • closedCaptionsDisabled : Скрытые субтитры отключены для прямой трансляции.
      • closedCaptionsHttpPost : вы будете отправлять субтитры через HTTP POST на URL-адрес приема , связанный с вашей прямой трансляцией.
      • closedCaptionsEmbedded : субтитры будут закодированы в видеопотоке с использованием форматов EIA-608 и/или CEA-708.
      contentDetails.enableClosedCaptions Это свойство устарело с 17 декабря 2015 г. Вместо него используйте свойство contentDetails.closedCaptionsType . Для клиентов API, которые уже используют это свойство:
      • Установка значения свойства в true эквивалентно установке для свойства contentDetails.closedCaptionsType значения closedCaptionsHttpPost .
      • Установка значения свойства false эквивалентна установке для свойства contentDetails.closedCaptionsType значения closedCaptionsDisabled .
    • Новый параметр broadcastType метода liveBroadcasts.list позволяет фильтровать ответ API, включив в него широковещательные сообщения событий, постоянные широковещательные сообщения или все широковещательные сообщения.

      Постоянная трансляция — это та, которая существует всегда и не привязана к конкретному событию. В частности, трансляция канала по умолчанию является постоянной и доступна через панель управления Live в YouTube Creator Studio. Остальные передачи канала - это трансляции мероприятий.

  • Поле status.healthStatus.configurationIssues[].type ресурса liveStream сообщает о следующих новых ошибках состояния работоспособности:

    Ошибки
    audioTooManyChannels Звук имеет более двух каналов, но поддерживается только один (моно) или два (стерео) канала. Please correct the number of audio channels.
    frameRateHigh The current framerate is too high. Please set the framerate to %(framerate)s fps or less.
  • The publication date of the previous documentation update was corrected.

  • New and updated errors

    • In addition to errors defined for the new resources listed above, the API supports the following new errors:

      Error details
      liveBroadcasts.update
      HTTP Response Code forbidden (403)
      Reason closedCaptionsTypeModificationNotAllowed
      Description The contentDetails.closedCaptionsType value can only be modified when the broadcast is in the created or ready status.
      liveBroadcasts.update
      HTTP Response Code invalidValue (400)
      Reason invalidEnableClosedCaptions
      Description In the liveBroadcast resource , the value of the contentDetails.enableClosedCaptions property is incompatible with the value of the contentDetails.closedCaptionType setting. Modify the resource to only include one of the two properties, and then resubmit the request.

August 19, 2015

This update contains the following changes:

  • New resources and methods

    • Note: Documentation for the liveChat resource and its methods is confidential and only visible to select YouTube partners.

      The new liveChat resource contains a comment posted during a live broadcast on YouTube. The API supports two methods for this resource:

      Methods
      liveChats.list List live chat messages for a broadcast.
      liveChats.insert Create a new chat message.

      Live chat messages can only be retrieved and posted while a broadcast is live.

  • Updates to existing resources and methods

    • The liveStream resource contains the following new properties:

      Properties
      snippet.isDefaultStream Indicates whether this stream is the default stream for the channel. A channel's default stream exists indefinitely, does not have a start or end time associated with it, and cannot be deleted. See the property's definition for more information about how default streams work.
      status.healthStatus This object contains information that could be used to identify, diagnose and resolve streaming problems. The object contains a number of child properties to help you evaluate the health of a live video stream.

      In particular, the status.healthStatus.configurationIssues[] object lists issues affecting a video stream. A new document, Configuration Issues for LiveStream Resources , lists all of the issues that the API reports.
      contentDetails.isReusable Indicates whether the stream is reusable, which means that it can be bound to multiple broadcasts. It is common for broadcasters to reuse the same stream for many different broadcasts if those broadcasts occur at different times.
    • The liveBroadcast resource contains the following new properties:

      Properties
      snippet.isDefaultBroadcast Indicates whether this broadcast is the default broadcast for the channel. When a YouTube channel is enabled for live streaming, YouTube creates a default stream and a default broadcast for the channel. The stream defines how the channel owner sends live video to YouTube, and the broadcast is how viewers can see the default stream. See the property's definition for more information about how default broadcasts work.
      contentDetails.enableLowLatency Indicates whether this broadcast should be encoded for low-latency streaming. A low-latency stream can reduce the amount of time it takes for video to be visible to users watching a broadcast, though it can also impact the resolution for viewers of the stream.
      statistics.totalChatCount The total number of live chat messages associated with the broadcast. The property and its value are present if the broadcast is visible to the user and has the live chat feature enabled. Note that this property will not specify a value after the broadcast ends. So, this property would not identify the number of chat messages for an archived video of a completed live broadcast.
  • New and updated errors

    • In addition to errors defined for the new liveChat resource, the API supports the following new error:

      Error details
      liveStreams.update
      HTTP Response Code forbidden (403)
      Reason liveStreamModificationNotAllowed
      Description The API does not allow you to change a reusable stream to be non-reusable, or vice versa. For more information, see Understanding Broadcasts and Streams

May 21, 2015

This update contains the following changes:

  • YouTube now supports live video streaming at 60 frames per second (fps), which means smoother playback for gaming and other fast-action videos. When you start a live stream on YouTube at 60fps, YouTube also makes the stream available in 30fps on devices where high-frame-rate viewing is not yet available.

    The liveStream resource's cdn.format property supports two new values for this feature: 720p_hfr and 1080p_hfr .

    See the YouTube Creators Blog for more information about this feature.

August 21, 2014

This update contains the following changes:

  • The definition of the liveBroadcasts.control method's walltime parameter has been updated to note that the property value is specified in ISO 8601 format ( YYYY-MM-DDThh:mm:ss.sssZ ).

  • The API now supports the following errors:

    Error type Error detail Description
    insufficientPermissions liveStreamingNotEnabled All methods for the liveBroadcast and liveStream resources return this error if the user that authorized the API request has not been enabled to stream live video on YouTube. Details explaining why the user cannot stream live video may be available in the user's channel settings at https://www.youtube.com/features .
    rateLimitExceeded userRequestsExceedRateLimit The liveBroadcasts.insert and liveStreams.insert methods both return this error to indicate that the user has sent too many requests within a given timeframe.

May 2, 2014

This update contains the following changes:

  • The descriptions of the liveStream resource and of the liveBroadcasts.bind method have been updated to note that a broadcast can only be bound to one video stream, but a video stream can be bound to more than one broadcast. This change is solely a correction to the documentation; the underlying API functionality has not changed.

  • The liveBroadcast resource's contentDetails.monitorStream.enableMonitorStream property has been updated to explain that if the property's value is true , then you must transition your broadcast to the testing state before you can transition it to the live state. (If the property's value is false , your broadcast cannot have a testing stage, so you can transition the broadcast directly to the live state.

  • The liveCuepoint resource's settings.offsetTimeMs property has been updated to note that you should not specify a value for the property if your broadcast does not have a monitor stream.

  • All of the methods for the liveBroadcast and liveStream resources now support the onBehalfOfContentOwner and onBehalfOfContentOwnerChannel parameters. These parameters allow you to use the same authorization credentials to complete API requests for different channels associated with the same content owner.

  • The liveCuepoints.insert method's documentation has been updated to note that you can set a value for the settings.walltime property when calling that method.

  • The error documentation now specifies the HTTP response code for each error type.

  • The API now supports the following error:

    Error type Error detail Description
    insufficientPermissions livePermissionBlocked The liveBroadcasts.insert , liveBroadcasts.transition , and liveStreams.insert methods return this error if the user that authorized the request is unable to stream live video on YouTube. Details explaining why the user cannot stream live video may be available in the user's channel settings at https://www.youtube.com/features .
  • The liveBroadcasts.insert method's invalidScheduledStartTime error has been updated to clarify that the scheduled start time must be close enough to the current date that a broadcast could be reliably scheduled at that time.

December 13, 2013

This update contains the following changes:

  • The liveBroadcast resource's new status.recordingStatus property identifies the broadcast's current status.

  • The liveBroadcast resource's new contentDetails.enableClosedCaptions property indicates whether closed captions can be ingested for the broadcast. The property value can be set when you insert or update a broadcast, but it cannot be updated once the broadcast is in the testing or live state. If you set this property to true , then the liveStream resource that is bound to the broadcast will specify the ingestion URL to use for the broadcast's closed captions.

  • The liveBroadcast resource's snippet.scheduledEndTime property now supports broadcasts that are scheduled to continue indefinitely. With this change, the property is no longer required in liveBroadcasts.insert and liveBroadcasts.update requests.

    If you retrieve a liveBroadcast resource that does not specify a value for this property, then the broadcast is scheduled to continue indefinitely. Similarly, if you call the liveBroadcasts.insert or liveBroadcasts.update method and do not specify a value for this property, the broadcast will be scheduled to continue indefinitely.

  • The liveBroadcast resource's contentDetails.recordFromStart property, which already had a default value of true , can now only be set to false if the broadcasting channel is allowed to disable recordings for live broadcasts.

    If your channel does not have permission to disable recordings, and you attempt to insert a broadcast with the recordFromStart property set to false , the API will return a Forbidden error. In addition, if your channel does not have that permission and you attempt to update a broadcast to set the recordFromStart property to false , the API will return a modificationNotAllowed error.

  • The liveBroadcast resource no longer contains an enableArchive property, which had been mentioned in the descriptions of the contentDetails.enableDvr and contentDetails.enableEmbed properties.

  • The list of valid values for the liveBroadcast resource's status.lifeCycleStatus property has been updated to include a description of each status.

  • The liveCuepoint resource's new settings.walltime property specifies the date and time at which the cuepoint should be inserted. The API returns an error if a request tries to insert a cuepoint that specifies a value for this property and for the settings.offsetTimeMs property.

  • The new contentDetails object in a liveStream resource contains information about the stream. Currently, the object's only property is contentDetails.closedCaptionsIngestionUrl , which specifies the ingestion URL for closed captions associated with the video stream.

  • The list of valid values for the liveStream resource's status.streamStatus property has been updated to include a description of each status.

  • The liveBroadcasts.control method's new walltime parameter lets you specify the date and time when a slate change will occur. The API returns an error if a request specifies a value for this parameter and for the offsetTimeMs parameter.

  • In the API response to a liveBroadcasts.list request, the value of the kind property has changed from youtube#liveBroadcastList to youtube#liveBroadcastListResponse .

  • In the API response to a liveStreams.list request, the value of the kind property has changed from youtube#liveStreamList to youtube#liveStreamListResponse .

  • The eventId property has been deprecated from both the liveBroadcastListResponse and the liveStreamListResponse .

  • The API supports the following new errors:

    Error type Error detail Description
    invalidValue conflictingTimeFields The liveBroadcasts.control method returns this error if your request specifies values for the offsetTimeMs and walltime parameters. A request can either omit both parameters or specify a value for one of the two parameters.
    invalidValue invalidWalltime The liveBroadcasts.control method returns this error if the walltime parameter's value is invalid.
    forbidden enableClosedCaptionsModificationNotAllowed The liveBroadcasts.update method returns this error if you attempt to update the contentDetails.enableClosedCaptions value and the broadcast's status is not created or ready .
    invalidValue conflictingTimeFields The liveCuepoints.insert method returns this error if your request specifies values for the settings.offsetTimeMs and settings.walltime properties. A request can either omit both properties or specify a value for one of the two properties.

    In addition, the liveStreams.update method no longer supports a cdnRequired error similar to the one that the liveStreams.insert method supports.

May 10, 2013

This update contains the following changes:

May 2, 2013

This update contains the following changes:

March 27, 2013

This update contains the following changes:

  • The following properties have changed in the liveBroadcast resource:

    • The startWithSlateCuepoint property has been renamed to startWithSlate .
    • The enableArchive property has been renamed to recordFromStart .
    • The slateSettings object has been deprecated and removed from the documentation. Error messages related to the slateSettings object or its properties have also been removed. Finally, the "Displaying Slates" section of the Getting started guide has been removed.

  • The API no longer supports the ability to insert in-stream slates using the liveCuepoints.insert method. The following documents have been updated to reflect this change:

    • The index page , Getting started guide, and Life of a broadcast tutorial no longer mention this functionality.

    • The liveCuepoint resource's settings.cueType property no longer supports slate as a property value. (The only supported value is ad .

    • The liveCuepoint resource's settings.eventState property has been deprecated and removed from the documentation.

March 18, 2013

This update contains the following changes:

  • All of the API's error messages have been updated to more clearly explain possible errors and, when possible, offer guidance about how to fix them.

  • The API may now return several new errors. The list below identifies the error and the API method that might return that error:

    • liveBroadcasts.insert – A broadcast's scheduled end time must be after its scheduled start time.
    • liveBroadcasts.insert – The broadcast specifies an invalid privacy status.
    • liveBroadcasts.update – The resource does not contain or does not set a value for the contentDetails.enableArchive property.
    • liveBroadcasts.update – The resource does not contain or does not set a value for the contentDetails.enableContentEncryption property.
    • liveBroadcasts.update – The resource does not contain or does not set a value for the contentDetails.enableDvr property.
    • liveStreams.insert – The snippet title must be between 1 and 128 characters long.
    • liveStreams.update – The resource does not contain or does not set a value for the snippet.title property.

  • The liveStream resource documentation has been updated to reflect that multicast and WebM are not supported ingestion methods as previously indicated. The list of formats for the cdn.format property has been updated accordingly, and the cdn.multicastIngestionInfo object and its child properties have been removed from the resource's documentation. In addition, http has been removed from the list of supported cdn.ingestionType values.