YouTube Live Streaming API – история изменений

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

12 октября 2026 г.

В это обновление вошли следующие изменения.

18 августа 2026 г.

В это обновление вошли следующие изменения.

  • В документацию по методу liveBroadcasts.update добавлены новые ошибки, связанные с монетизацией: preconditionFailed (412) (причина: videoNotEligibleForAdsMonetization) и backendError (503) (причина: backendError).

17 августа 2026 г.

В это обновление вошли следующие изменения.

  • Новое свойство snippet.categoryId ресурса liveBroadcast позволяет задавать, обновлять и получать категорию видео, связанную с прямой трансляцией.

20 июля 2026 г.

В это обновление вошли следующие изменения.

  • Чтобы возобновить показ объявлений, теперь можно задать для свойства monetizationDetails.cuepointSchedule.pauseAdsUntil дату и время в прошлом или оставить его пустым.

9 июля 2026 г.

В это обновление вошли следующие изменения.

  • В документацию по типу liveChatBans.insert добавлено указание на то, что свойство snippet.type должно иметь значение permanent или temporary.

    В документации по liveChatMessage.insert теперь правильно указано, что questionText – это прямое свойство metadata, а options – это массив объектов, каждый из которых содержит поле optionText.

1 июня 2026 г.

В это обновление вошли следующие изменения.

  • Свойство contentDetails.availabilityConfig ресурса liveBroadcast позволяет задавать географические ограничения для прямой трансляции, чтобы управлять ее доступностью в разных регионах.

26 марта 2026 г.

В это обновление вошли следующие изменения.

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

  • Новое свойство snippet.giftEventDetails ресурса liveChatMessage и его дочерние элементы содержат информацию о событии спонсорства.

12 января 2026 г.

Теперь API поддерживает включение рекламы в середине видео и автоматическую вставку рекламы в середине видео для прямых трансляций.

Владелец трансляции может включить рекламу в середине видео, если трансляция соответствует требованиям. Владелец канала может в любой момент отключить рекламу в середине трансляции.

Если в трансляции разрешена реклама в середине видео, владелец трансляции может включить автоматическую вставку рекламы в середине видео. Автоматический показ рекламы можно отключить в любой момент.

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

  • Разрешите YouTube оптимизировать размещение рекламы в середине видео. Доступны три режима:
    • Низкая: ниже доход, меньше рекламных пауз.
    • Средняя – баланс между вашим доходом и удобством просмотра.
    • Высокая: выше доход, больше рекламных пауз.
  • Вручную настройте стратегию и интервал для вставки рекламы в середине видео. В этом случае владелец должен настроить два параметра:
    1. Стратегия планирования для рекламных временных меток. Временные метки можно вставлять одновременно для всех зрителей или по-разному для каждого из них. Второй вариант позволяет YouTube чаще планировать рекламные паузы, чтобы зрители видели их, когда это возможно.
    2. Продолжительность интервала между рекламными паузами в середине ролика.

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

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

14 июля 2025 г.

Обновлено описание метода liveChatMessages.streamList. Теперь в нем есть рекомендации по использованию streamList API.

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 и его дочерние свойства содержат информацию о событии "Спонсорство получено в подарок".

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

В это обновление вошли следующие изменения.

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

    • newSponsorEvent
    • memberMilestoneChatEvent
  • Новое свойство snippet.memberMilestoneChatDetails ресурса liveChatMessage и его дочерние элементы содержат информацию о спонсорском сообщении. Аналогично, новое свойство snippet.newSponsorDetails и его дочерние свойства содержат информацию о событии New Sponsor.

1 декабря 2020 г.

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

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

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

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

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

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

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

17 июля 2020 г.

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

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

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

6 июля 2020 г.

В руководство Передача контента в прямом эфире на YouTube по протоколу HLS внесены следующие изменения:

Кроме того, в новом сравнении протоколов передачи данных перечислены протоколы, поддерживаемые 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 не вернет никаких результатов.
      • Если значение параметра broadcastType равно all, то метод liveBroadcasts.list не будет возвращать постоянные трансляции, которые существовали до этого времени.

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

    После прекращения поддержки:

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

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

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

31 марта 2020 г.

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

Ресурс sponsor и метод sponsors.list больше не поддерживаются. Вместо них используйте ресурс member и метод members.list.

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

11 марта 2020 г.

В раздел Конечная точка загрузки руководства Передача контента для прямых трансляций на YouTube по протоколу HLS добавлено пояснение о том, как видеокодер должен формировать значение параметра file= при создании основного и резервного URL загрузки.

4 февраля 2020 г.

В руководство Передача контента для прямых трансляций на YouTube по протоколу HLS добавлено примечание о том, что запросы DELETE необязательны и конечная точка HLS на YouTube их игнорирует. Чтобы не снижать производительность, YouTube рекомендует клиентам не отправлять запросы DELETE.

10 января 2020 г.

Теперь API позволяет определять контент, предназначенный для детей. Подробнее о контенте, предназначенном для детей в Справочном центре YouTube.

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

Мы также обновили Условия использования сервисов YouTube API и правила для разработчиков. Подробную информацию можно найти в истории изменений Условий использования сервисов YouTube API. Изменения в Условиях использования сервисов YouTube API и Правилах для разработчиков вступят в силу 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 Explorer позволяет выбирать области авторизации, вводить примеры значений параметров и свойств, а затем отправлять фактические запросы к API и просматривать фактические ответы API. Виджет также можно развернуть на весь экран, чтобы посмотреть полные примеры кода, которые динамически обновляются в соответствии с введенными вами областями действия и значениями.

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

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

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

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

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

25 февраля 2019 г.

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

  • В ресурсе 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 Live. Сообщения Суперчата выделяются в чате двумя способами:

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

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

      API поддерживает метод, позволяющий получить список событий Суперчата, которые произошли во время трансляций на канале за последние 30 дней. Этот метод также возвращает данные о событиях фан-фандинга (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 г.

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

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

  • Метод liveChatMessages.list больше не будет возвращать сообщения с параметром snippet.type, имеющим значение fanFundingEvent. Аналогично, ресурсы liveChatMessage больше не будут содержать объект snippet.fanFundingEventDetails.
  • Метод fanFundingEvents.list больше не будет возвращать данные.

11 августа 2016 г.

В это обновление вошли следующие изменения.

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

    Полный набор новых документов описан в истории изменений обновленных Условий. В истории изменений также будут отражаться будущие изменения Обновленных условий и сопутствующих документов.

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.
      • Если вы укажете значение для cdn.resolution, но не для cdn.frameRate, API вернет ошибку frameRateRequired.
      • Если вы укажете значение для cdn.frameRate, но не для cdn.resolution, API вернет ошибку resolutionRequired.
      liveStreams.update Метод liveStreams.update возвращает ошибку 403 (Forbidden), если в запросе делается попытка изменить значение любого из следующих неизменяемых свойств: Значение reason в ответе об ошибке – liveStreamModificationNotAllowed.

18 декабря 2015 г.

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

17 декабря 2015 г.

В это обновление вошли следующие изменения.

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

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

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

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

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

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

      Подробнее о спонсорстве рассказывается в Справочном центре YouTube.

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

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

      Свойства
      snippet.liveChatId Идентификатор чата трансляции на YouTube Live. С помощью этого идентификатора вы можете использовать методы ресурса 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, чтобы в него включались трансляции событий, постоянные трансляции или все трансляции.

      Постоянная трансляция не привязана к определенному событию. В частности, трансляция по умолчанию является постоянной и доступна на панели управления трансляциями в Творческой студии YouTube. Остальные трансляции на канале – это трансляции мероприятий.

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

    Ошибки
    audioTooManyChannels В аудиопотоке больше двух каналов. Выберите один (моно) или два (стерео) из них.
    frameRateHigh Текущая частота кадров слишком высока. Максимальная частота: %(framerate)s.
  • Исправлена дата публикации предыдущего обновления документации.

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

    • Помимо ошибок, определенных для новых ресурсов, перечисленных выше, API поддерживает следующие новые ошибки:

      Сведения об ошибке
      liveBroadcasts.update
      Код HTTP-ответаforbidden (403)
      ПричинаclosedCaptionsTypeModificationNotAllowed
      ОписаниеЗначение contentDetails.closedCaptionsType можно изменить, только если трансляция имеет статус created или ready.
      liveBroadcasts.update
      Код HTTP-ответаinvalidValue (400)
      ПричинаinvalidEnableClosedCaptions
      ОписаниеВ ресурсе liveBroadcast значение свойства contentDetails.enableClosedCaptions несовместимо со значением параметра contentDetails.closedCaptionType. Измените ресурс, чтобы он содержал только одно из двух свойств, а затем повторно отправьте запрос.

19 августа 2015 г.

В это обновление вошли следующие изменения.

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

    • Примечание. Документация по ресурсу liveChat и его методам конфиденциальна и доступна только некоторым партнерам YouTube.

      Новый ресурс liveChat содержит комментарий, опубликованный во время прямой трансляции на YouTube. API поддерживает два метода для этого ресурса:

      Методы
      liveChats.list Получить список сообщений в чате трансляции.
      liveChats.insert Создайте новое сообщение в чате.

      Получать и публиковать сообщения чата можно только во время трансляции.

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

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

      Свойства
      snippet.isDefaultStream Указывает, является ли эта трансляция трансляцией по умолчанию для канала. Трансляция по умолчанию существует неограниченное время, не имеет времени начала и окончания и не может быть удалена. Подробную информацию о том, как работают потоки по умолчанию, вы найдете в определении ресурса.
      status.healthStatus Этот объект содержит информацию, которая может использоваться для выявления, диагностики и устранения проблем с потоковой передачей. Объект содержит ряд дочерних свойств, которые помогают оценить состояние трансляции.

      В частности, объект status.healthStatus.configurationIssues[] содержит список проблем, влияющих на трансляцию. В новом документе Проблемы с конфигурацией ресурсов LiveStream перечислены все проблемы, о которых сообщает API.
      contentDetails.isReusable Указывает, можно ли использовать поток повторно, то есть связывать его с несколькими трансляциями. Часто вещатели используют один и тот же поток для разных трансляций, если они проходят в разное время.
    • Ресурс liveBroadcast содержит следующие новые свойства:

      Свойства
      snippet.isDefaultBroadcast Указывает, является ли эта трансляция трансляцией по умолчанию для канала. Когда на канале YouTube включается возможность проведения прямых трансляций, YouTube создает для него поток и трансляцию по умолчанию. Поток определяет, как владелец канала отправляет видео на YouTube, а трансляция – как зрители могут смотреть поток по умолчанию. Подробную информацию о том, как работают трансляции по умолчанию, вы найдете в описании свойства.
      contentDetails.enableLowLatency Указывает, нужно ли кодировать трансляцию для потоковой передачи с низкой задержкой. Трансляция с низкой задержкой позволяет сократить время, необходимое для того, чтобы видео стало доступно зрителям, но может повлиять на разрешение видео.
      statistics.totalChatCount Общее количество сообщений в чате, связанных с трансляцией. Свойство и его значение присутствуют, если трансляция видна пользователю и для нее включен чат. Обратите внимание, что после окончания трансляции значение этого свойства не указывается. Таким образом, это свойство не будет определять количество сообщений чата для архивного видео завершенной прямой трансляции.
  • Новые и обновленные ошибки

    • Помимо ошибок, определенных для нового ресурса liveChat, API поддерживает следующую новую ошибку:

      Сведения об ошибке
      liveStreams.update
      Код HTTP-ответаforbidden (403)
      ПричинаliveStreamModificationNotAllowed
      ОписаниеAPI не позволяет изменить тип трансляции. Подробнее о трансляциях и стримах…

21 мая 2015 г.

В это обновление вошли следующие изменения.

  • Теперь на YouTube можно проводить прямые трансляции с частотой 60 кадров в секунду. Это значит, что видео с динамичными сценами, например летсплеи, будут воспроизводиться более плавно. Если вы запустите трансляцию с частотой 60 кадров в секунду, то на устройствах, которые не поддерживают просмотр с высокой частотой кадров, она будет воспроизводиться с частотой 30 кадров в секунду.

    Свойство cdn.format ресурса liveStream поддерживает два новых значения для этой функции: 720p_hfr и 1080p_hfr.

    Подробнее об этой функции рассказывается в Блоге для авторов YouTube.

21 августа 2014 г.

В это обновление вошли следующие изменения.

  • Определение параметра walltime метода liveBroadcasts.control было обновлено. Теперь в нем указано, что значение свойства задается в формате ISO 8601 (YYYY-MM-DDThh:mm:ss.sssZ).

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

    Тип ошибки Сведения об ошибке Описание
    insufficientPermissions liveStreamingNotEnabled Все методы для ресурсов liveBroadcast и liveStream возвращают эту ошибку, если у пользователя, авторизовавшего запрос к API, нет разрешения на проведение трансляций на YouTube. Причины, по которым пользователь не может проводить трансляции, могут быть указаны в настройках его канала на странице https://www.youtube.com/features.
    rateLimitExceeded userRequestsExceedRateLimit Методы liveBroadcasts.insert и liveStreams.insert возвращают эту ошибку, если пользователь отправил слишком много запросов за определенный период времени.

2 мая 2014 г.

В это обновление вошли следующие изменения.

  • В описания ресурса liveStream и метода liveBroadcasts.bind добавлено примечание о том, что трансляцию можно связать только с одним видеопотоком, а видеопоток – с несколькими трансляциями. Это изменение касается только документации. Функциональность API не изменилась.

  • В свойство contentDetails.monitorStream.enableMonitorStream ресурса liveBroadcast добавлено пояснение о том, что если значение свойства – true, то перед переходом в статус live трансляция должна перейти в статус testing. Если свойство имеет значение false, то у трансляции не может быть статуса testing, и вы можете сразу перевести ее в статус live.

  • В свойство settings.offsetTimeMs ресурса liveCuepoint добавлено примечание о том, что не нужно указывать значение свойства, если у трансляции нет контрольного потока.

  • Все методы для ресурсов liveBroadcast и liveStream теперь поддерживают параметры onBehalfOfContentOwner и onBehalfOfContentOwnerChannel. Эти параметры позволяют использовать одни и те же учетные данные для авторизации запросов к API, связанных с разными каналами одного владельца контента.

  • В документацию по методу liveCuepoints.insert добавлено примечание о том, что при вызове этого метода можно задать значение для свойства settings.walltime.

  • В документации по ошибкам теперь указан код HTTP-ответа для каждого типа ошибки.

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

    Тип ошибки Сведения об ошибке Описание
    insufficientPermissions livePermissionBlocked Методы liveBroadcasts.insert, liveBroadcasts.transition и liveStreams.insert возвращают эту ошибку, если пользователь, авторизовавший запрос, не может проводить трансляции на YouTube. Причины, по которым пользователь не может проводить трансляции, могут быть указаны в настройках его канала на странице https://www.youtube.com/features.
  • Ошибка invalidScheduledStartTime метода liveBroadcasts.insert была обновлена, чтобы уточнить, что запланированное время начала должно быть достаточно близко к текущей дате, чтобы трансляция могла быть надежно запланирована на это время.

13 декабря 2013 г.

В это обновление вошли следующие изменения.

  • Новое свойство status.recordingStatus ресурса liveBroadcast определяет текущий статус трансляции.

  • Новое свойство contentDetails.enableClosedCaptions ресурса liveBroadcast указывает, можно ли добавить субтитры к трансляции. Значение свойства можно задать при добавлении или обновлении трансляции, но его нельзя изменить, если трансляция находится в статусе testing или live. Если задать для этого свойства значение true, то в ресурсе liveStream, связанном с трансляцией, будет указан URL, который нужно использовать для загрузки субтитров.

  • Свойство snippet.scheduledEndTime ресурса liveBroadcast теперь поддерживает трансляции, которые должны продолжаться неопределенное время. Теперь это свойство не является обязательным в запросах liveBroadcasts.insert и liveBroadcasts.update.

    Если вы получите ресурс liveBroadcast, в котором не указано значение этого свойства, то трансляция будет продолжаться неограниченное время. Если вы вызываете метод liveBroadcasts.insert или liveBroadcasts.update и не указываете значение этого свойства, трансляция будет продолжаться неограниченное время.

  • Свойство contentDetails.recordFromStart ресурса liveBroadcast, которое уже имело значение по умолчанию true, теперь может быть установлено только на false, если каналу вещания разрешено отключать записи для прямых трансляций.

    Если у вас нет разрешения на отключение записи, а вы попытаетесь добавить трансляцию со свойством recordFromStart, для которого задано значение false, API вернет ошибку Forbidden. Если у вашего канала нет такого разрешения и вы попытаетесь обновить трансляцию, чтобы задать для свойства recordFromStart значение false, API вернет ошибку modificationNotAllowed.

  • Ресурс liveBroadcast больше не содержит свойство enableArchive, которое упоминалось в описаниях свойств contentDetails.enableDvr и contentDetails.enableEmbed.

  • Список допустимых значений для свойства status.lifeCycleStatus ресурса liveBroadcast был обновлен и теперь включает описание каждого статуса.

  • Новое свойство settings.walltime ресурса liveCuepoint указывает дату и время, когда должна быть вставлена рекламная пауза. Если в запросе на добавление рекламной паузы указаны значения и для этого свойства, и для свойства settings.offsetTimeMs, API возвращает ошибку.

  • Новый объект contentDetails в ресурсе liveStream содержит информацию о трансляции. В настоящее время единственным свойством объекта является contentDetails.closedCaptionsIngestionUrl, которое указывает URL загрузки субтитров, связанных с видеопотоком.

  • Список допустимых значений для свойства status.streamStatus ресурса liveStream был обновлен и теперь включает описание каждого статуса.

  • Новый параметр walltime метода liveBroadcasts.control позволяет указать дату и время, когда произойдет изменение заставки. Если в запросе указано значение и для этого параметра, и для параметра offsetTimeMs, API возвращает ошибку.

  • В ответе API на запрос liveBroadcasts.list значение свойства kind изменилось с youtube#liveBroadcastList на youtube#liveBroadcastListResponse.

  • В ответе API на запрос liveStreams.list значение свойства kind изменилось с youtube#liveStreamList на youtube#liveStreamListResponse.

  • Свойство eventId больше не поддерживается в liveBroadcastListResponse и liveStreamListResponse.

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

    Тип ошибки Сведения об ошибке Описание
    invalidValue conflictingTimeFields Метод liveBroadcasts.control возвращает эту ошибку, если в запросе указаны значения параметров offsetTimeMs и walltime. В запросе можно либо опустить оба параметра, либо указать значение для одного из них.
    invalidValue invalidWalltime Метод liveBroadcasts.control возвращает эту ошибку, если значение параметра walltime недопустимо.
    forbidden enableClosedCaptionsModificationNotAllowed Метод liveBroadcasts.update возвращает эту ошибку, если вы пытаетесь обновить значение contentDetails.enableClosedCaptions, а статус трансляции не created и не ready.
    invalidValue conflictingTimeFields Метод liveCuepoints.insert возвращает эту ошибку, если в запросе указаны значения для свойств settings.offsetTimeMs и settings.walltime. В запросе можно либо опустить оба свойства, либо указать значение для одного из них.

    Кроме того, метод liveStreams.update больше не поддерживает ошибку cdnRequired, аналогичную той, которую поддерживает метод liveStreams.insert.

10 мая 2013 г.

В это обновление вошли следующие изменения.

2 мая 2013 г.

В это обновление вошли следующие изменения.

27 марта 2013 г.

В это обновление вошли следующие изменения.

  • В ресурсе liveBroadcast изменились следующие свойства:

    • Свойство startWithSlateCuepoint переименовано в startWithSlate.
    • Свойство enableArchive переименовано в recordFromStart.
    • Объект slateSettings больше не поддерживается и удален из документации. Сообщения об ошибках, связанных с объектом slateSettings или его свойствами, также удалены. Наконец, из руководства по началу работы удален раздел "Показ заставок".

  • API больше не поддерживает вставку заставок в видеорекламу с помощью метода liveCuepoints.insert. В связи с этим изменением были обновлены следующие документы:

18 марта 2013 г.

В это обновление вошли следующие изменения.

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

  • Теперь API может возвращать несколько новых ошибок. Ниже приведен список ошибок и методов API, которые могут их возвращать.

    • liveBroadcasts.insert – Запланированное время окончания трансляции должно быть позже запланированного времени начала.
    • liveBroadcasts.insert – в трансляции указан недопустимый статус конфиденциальности.
    • liveBroadcasts.update – ресурс не содержит свойство contentDetails.enableArchive или для него не задано значение.
    • liveBroadcasts.update – ресурс не содержит свойство contentDetails.enableContentEncryption или для него не задано значение.
    • liveBroadcasts.update – ресурс не содержит свойство contentDetails.enableDvr или для него не задано значение.
    • liveStreams.insert – заголовок фрагмента должен содержать от 1 до 128 символов.
    • liveStreams.update – ресурс не содержит свойство snippet.title или для него не задано значение.

  • Документация по ресурсу liveStream обновлена. Теперь в ней указано, что многоадресная рассылка и WebM не поддерживаются в качестве методов загрузки, как сообщалось ранее. Список форматов для свойства cdn.format был обновлен, а объект cdn.multicastIngestionInfo и его дочерние свойства были удалены из документации по ресурсу. Кроме того, из списка поддерживаемых значений cdn.ingestionType удалено значение http.