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

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 г.

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

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

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

6 июля 2020 г.

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

Кроме того, в новом сравнении протоколов загрузки перечислены протоколы, поддерживаемые 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.

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

11 марта 2020 г.

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

4 февраля 2020 г.

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

10 января 2020 г.

Теперь API позволяет определять контент, предназначенный для детей. На YouTube он называется "для детей". Подробнее о контенте «для детей» в Справочном центре 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 теперь более подробно описаны распространенные сценарии использования каждого метода, а также приведены динамические и качественные примеры кода с помощью виджета APIs Explorer. Пример приведен в документации по методу liveBroadcasts.list. На страницах с описанием методов API появились два новых элемента:

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

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

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

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

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

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

25 февраля 2019 г.

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

  • В ресурсе 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 года, это обновление включает несколько сопроводительных документов, которые помогут объяснить правила, которым должны следовать разработчики.

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

18 декабря 2015 г.

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

17 декабря 2015 г.

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

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

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

      Ресурсы
      liveChatMessage Этот ресурс представляет собой сообщение в чате YouTube Live. На 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 кадров в секунду. Это значит, что видео с играми и другими динамичными сценами будут воспроизводиться более плавно. Когда вы начинаете трансляцию на YouTube с частотой 60 кадров в секунду, YouTube также делает ее доступной с частотой 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. В связи с этим изменением были обновлены следующие документы:

    • На главной странице, в руководстве Начало работы и в учебном пособии Жизнь трансляции больше не упоминается эта функция.

    • Свойство settings.cueType ресурса liveCuepoint больше не поддерживает значение slate. Единственное допустимое значение – ad.

    • Свойство settings.eventState ресурса liveCuepoint больше не поддерживается и удалено из документации.

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 и его дочерние свойства были удалены из документации по ресурсу. Кроме того, значение http было удалено из списка поддерживаемых значений cdn.ingestionType.