На этой странице перечислены изменения в API прямых трансляций YouTube и обновления документации. Подпишитесь на этот список изменений .
12 января 2026 г.
Теперь API поддерживает включение рекламных вставок в середине трансляции и автоматическую вставку таких вставок для прямых эфиров.
Владелец трансляции может включить показ рекламных роликов в середине эфира, если трансляция соответствует требованиям для их показа. Владелец также может в любой момент отключить показ рекламных роликов в середине эфира.
Если для трансляции включена функция показа рекламных роликов в середине эфира, владелец трансляции может включить автоматическую вставку таких роликов. Он также может в любое время отключить автоматическую рекламу для трансляции.
Когда владелец трансляции включает автоматическую показ рекламы, он может выбрать один из следующих вариантов:
- Оптимизация вставки рекламных роликов в середине видео на YouTube. Эта опция поддерживает три режима:
- Низкий уровень: меньший потенциал заработка, меньше прерываний в просмотре.
- Средний уровень: средний потенциал заработка, сбалансированный зрительский опыт.
- Высокий уровень: более высокий потенциал заработка, более частые прерывания просмотра.
- Стратегию и интервал для вставки ролика в середине видео настраивают вручную. В этом случае владелец должен задать два параметра:
- Стратегия планирования рекламных пауз. Рекламные паузы могут появляться одновременно для всех зрителей, или же время их появления может варьироваться для каждого зрителя. Последняя стратегия позволяет YouTube планировать рекламные паузы с большей частотой, что позволяет зрителям получать их тогда, когда у них есть на это право.
- Длительность интервала между рекламными паузами в середине ролика.
В документации отражены следующие изменения API, внесенные для поддержки этой функции:
- Объект
monetizationDetailsресурсаliveBroadcastсодержит поля для включения вставки в середине видео и настройки автоматической рекламы. - Метод
updateможно использовать для включения или отключения рекламных вставок в середине трансляции. Этот метод также можно использовать для настройки автоматической рекламы для прямой трансляции. В документации описаны несколько новых ошибок, которые могут возникнуть при обновлении настроек монетизации и автоматической рекламы для прямой трансляции.
14 июля 2025 года
В описание метода liveChatMessages.streamList внесены изменения, чтобы предоставить рекомендации по использованию API streamList.
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
-
Свойство `new
snippet.memberMilestoneChatDetailsресурса `liveChatMessageи его дочерние элементы содержат информацию о событии «Чат в рамках этапа развития участника». Аналогично, свойствоsnippet.newSponsorDetailsи его дочерние элементы содержат информацию о событии «Новый спонсор».
1 декабря 2020 г.
Метод liveBroadcasts.transition API поддерживает новую ошибку 403 ( Forbidden ), которая указывает на то, что пользователь отправил слишком много запросов в течение заданного временного интервала. Причина ошибки — userRequestsExceedRateLimit .
21 сентября 2020 г.
В определение свойства
status.madeForKidsресурсаliveBroadcastвнесены изменения, уточняющие, что это свойство доступно только для чтения. Это не отражает изменений в функциональности API.Чтобы обозначить прямую трансляцию как предназначенную для детей, установите свойство
status.selfDeclaredMadeForKidsв значениеtrueпри вызове методаliveBroadcasts.insertдля создания трансляции.Примечание: Данное изменение включает в себя объявление об устаревании и обновление предыдущего объявления об устаревании.
Метод
liveBroadcasts.controlбудет объявлен устаревшим 1 октября 2020 года или позже. После этой даты все вызовы этого метода будут возвращать ошибку Forbidden (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 г.
В руководство по доставке контента YouTube в прямом эфире через HLS внесены некоторые изменения:
- Рекомендуемая продолжительность медиа-сюжета обновлена и теперь составляет от одной до четырех секунд.
- В новом разделе объясняется, как получить URL-адрес для загрузки HLS-контента из YouTube Creator Studio .
- Инструкции по форматированию значения параметра
fileперенесены в новый раздел «Завершение создания URL-адреса для приема HLS-контента» . Эти инструкции применимы независимо от того, получен ли URL-адрес для приема HLS-контента из API YouTube или из YouTube Creator Studio.
Кроме того, в новом разделе сравнения протоколов загрузки указаны поддерживаемые YouTube протоколы загрузки, поддерживаемые кодеки для каждого протокола, а также дополнительная информация о подходящих сценариях использования каждого протокола.
16 апреля 2020 г.
В это обновление включено новое свойство и объявление об устаревании:
Ресурс
liveBroadcastтеперь поддерживает свойствоcontentDetails.enableAutoStop. Это свойство указывает, следует ли автоматически останавливать трансляцию примерно через минуту после того, как владелец канала прекратит потоковую передачу видео в привязанном видеопотоке.Внесены изменения в описание жизненного цикла транслируемого документа, чтобы объяснить, как изменяется пошаговый процесс создания и управления прямой трансляцией на YouTube, если установить свойства
contentDetails.enableAutoStartилиcontentDetails.enableAutoStopвtrue.Примечание: Это объявление об отмене изменений. Данные изменения вступят в силу 1 сентября 2020 года или позднее. Фактическая дата вступления изменений в силу далее будет называться датой отмены изменений.
В этом обновлении описывается потенциально критическое изменение. Оно затрагивает клиентские приложения API, использующие ресурсы
liveStreamиliveBroadcastпо умолчанию для потоковой передачи контента в прямом эфире на YouTube. В частности, идентификатор трансляции и идентификатор потока , связанные с постоянной трансляцией и потоком, больше не будут работать для запуска новых трансляций.На вашу заявку повлияет любое из следующих условий:
- Эта функция проверяет значение свойства
isDefaultBroadcastресурсаliveBroadcast. После истечения срока устаревания это свойство больше не будет возвращаться. - Эта функция проверяет значение свойства
isDefaultStreamресурсаliveStream. После истечения срока устаревания это свойство больше не будет возвращаться. - Вызывается метод
liveBroadcasts.listи устанавливается значение параметраbroadcastTypeравнымpersistentилиall. Этот параметр будет объявлен устаревшим в рамках этих изменений. На дату объявления об устаревании:- Если значение параметра
broadcastTypeравноpersistent, то методliveBroadcasts.listне вернет никаких результатов. - Если значение параметра
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 в прямом эфире через HLS внесены изменения, указывающие на то, что запросы DELETE являются необязательными и что конечная точка HLS YouTube их игнорирует. В целях повышения производительности YouTube рекомендует клиентам не отправлять запросы DELETE .
10 января 2020 г.
Теперь API поддерживает возможность идентификации контента, предназначенного для детей, который YouTube называет «контентом, созданным для детей». Подробнее о контенте «для детей» можно узнать в Справочном центре YouTube.
- Ресурс
liveBroadcastподдерживает два новых свойства, позволяющих создателям контента и зрителям определять контент, предназначенный для детей:- Свойство
selfDeclaredMadeForKidsпозволяет создателям контента указывать, является ли прямая трансляция контентом, предназначенным для детей. Это свойство можно установить при создании трансляции с помощью методаliveBroadcasts.insert. Обратите внимание, что это свойство включается в ответы API, содержащие ресурсыliveBroadcastтолько если владелец канала авторизовал запрос API. - Свойство
madeForKidsпозволяет любому пользователю API получить статус трансляции «создано для детей». Например, статус может определяться на основе значения свойстваselfDeclaredMadeForKids. Дополнительную информацию о настройке аудитории для вашего канала, видео или трансляций можно найти в Справочном центре YouTube .
- Свойство
- В API данных YouTube ресурс
channelтакже поддерживает новые свойстваselfDeclaredMadeForKidsиmadeForKids.
Мы также обновили Условия использования сервисов 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-обозреватель примерами значений для вашего варианта использования или открыть полноэкранный API-обозреватель с уже заполненными значениями. Эти изменения призваны упростить просмотр примеров кода, непосредственно применимых к варианту использования, который вы пытаетесь реализовать в своем приложении.
В настоящее время поддерживаются примеры кода для Java, JavaScript, PHP, Python и curl.
На странице с примерами кода также появился новый пользовательский интерфейс, предлагающий все описанные выше функции. С помощью этого инструмента вы можете изучать варианты использования различных методов, загружать значения в обозреватель API и открывать полноэкранный обозреватель API для просмотра примеров кода на Java, JavaScript, PHP и Python.
В связи с этим изменением были удалены страницы, на которых ранее были перечислены доступные примеры кода для Java, PHP и Python.
25 февраля 2019 г.
Документация к ресурсам liveChatMessage и superChatEvent была обновлена, чтобы отразить тот факт, что оба ресурса теперь могут содержать информацию о суперстикерах. Суперстикеры — это тип сообщений Super Chat, отображающих изображение. Как и другие сообщения Super Chat, сообщение Super Sticker приобретается фанатом во время прямой трансляции на YouTube.
- В ресурсе
liveChatMessageсвойствоsnippet.typeтеперь устанавливается вsuperStickerEvent, чтобы указать, что ресурс содержит информацию о суперстикере. В этом случае ресурс также содержит объектsnippet.superStickerDetails, который содержит дополнительную информацию о суперстикере. - В ресурсе
superChatEventлогическое значениеsnippet.isSuperStickerEventуказывает, является ли сообщение Super Chat также Super Sticker. Если да, то объектsnippet.superStickerMetadataсодержит дополнительные сведения о Super Sticker.
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представляет собой сообщение Super Chat, приобретенное фанатом во время прямой трансляции на YouTube. В чате прямой трансляции на YouTube сообщения Super Chat выделяются среди других сообщений двумя способами:- Сообщения Super Chat выделены цветом.
- Сообщения Super Chat остаются закрепленными в бегущей строке в течение определенного периода времени.
Цвет сообщения Super Chat, время его закрепления в бегущей строке и максимальная длина сообщения определяются суммой покупки. Дополнительную информацию о Super Chat можно найти в Справочном центре YouTube .
API поддерживает метод для вывода списка событий Super Chat для прямых трансляций канала за предыдущие 30 дней. Этот метод также возвращает данные о событиях Fan Funding (
fanFundingEvents) из последней прямой трансляции канала.
Обновление существующих ресурсов и методов.
Свойство
snippet.typeтеперь поддерживает значениеsuperChatEvent, указывающее на то, что ресурс описывает Super Chat.Кроме того, новое свойство
snippet.superChatDetailsресурсаliveChatMessageи его дочерние элементы содержат информацию о событии Super Chat.Свойство
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 г.
Примечание: Это объявление об устаревании функции.
В связи с выпуском новой функции Super Chat , YouTube прекратил поддержку функции Fan Funding, и API Fan Funding будет отключен 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, которое было пыталось вставить в запрос. Ниже приведен список причин ошибок и свойств, с которыми они связаны:-
invalidFormat:cdn.format -
invalidFrameRate:cdn.frameRate -
invalidIngestionType:cdn.ingestionType -
invalidResolution:cdn.resolution
liveStreams.insertМетод liveStreams.insertподдерживает две новые ошибки400(Bad Request), каждая из которых указывает на отсутствие необходимого значения в ресурсеliveStream, который запрашивался для вставки. Ниже приведен список причин ошибок и свойств, с которыми они связаны:-
frameRateRequired:cdn.frameRate -
resolutionRequired:cdn.resolution
liveStreamнеобходимо указать значение либо для свойстваcdn.format, либо для свойствcdn.frameRateиcdn.resolution.- API возвращает ошибку
formatRequired, если вы не указываете значение ни для одного из трех свойств. - API возвращает ошибку
frameRateRequiredесли вы указываете значение дляcdn.resolution, но не дляcdn.frameRate. - API возвращает ошибку
resolutionRequiredесли вы указываете значение дляcdn.frameRate, но не дляcdn.resolution.
liveStreams.updateМетод liveStreams.updateвозвращает ошибку403(Forbidden), если запрос пытается изменить значение любого из следующих неизменяемых свойств:-
cdn.format -
cdn.frameRate -
cdn.ingestionType -
cdn.resolution
reason:liveStreamModificationNotAllowed.-
18 декабря 2015 г.
Законодательство Европейского союза (ЕС) требует предоставления определенной информации конечным пользователям в ЕС и получения их согласия. Поэтому конечным пользователям в Европейском союзе необходимо соблюдать Политику ЕС о согласии пользователей . Мы добавили уведомление об этом требовании в наши Условия использования API YouTube .
17 декабря 2015 г.
В это обновление внесены следующие изменения:
Новые ресурсы и методы
API поддерживает несколько новых ресурсов для обеспечения функциональности чата во время прямых трансляций. YouTube поддерживает функцию чата во время активных прямых трансляций, и эти ресурсы и их методы позволяют получать сообщения чата, а также выполнять административные функции для чата.
Ресурсы liveChatMessageЭтот ресурс представляет собой сообщение в чате прямой трансляции YouTube. YouTube поддерживает несколько типов сообщений, включая текстовые сообщения и сообщения о мероприятиях по сбору средств от фанатов. Некоторые типы сообщений идентифицируют определенный этап чата, например, начало периода только для спонсоров или конец чата. API поддерживает методы для отображения, добавления и удаления сообщений в чате прямой трансляции. liveChatModeratorsЭтот ресурс идентифицирует модератора чата. Модераторы могут выполнять некоторые административные функции, такие как блокировка пользователей в чате или удаление сообщений. API поддерживает методы для отображения списка, добавления и удаления модераторов чата. liveChatBansЭтот ресурс идентифицирует пользователя, которому запрещено публиковать сообщения в определенном онлайн-чате. Блокировка может быть временной или постоянной. API поддерживает методы для добавления и удаления блокировок в онлайн-чате. fanFundingEventsЭтот ресурс представляет собой пример кампании по сбору средств от поклонников на YouTube-канале. Такая кампания позволяет зрителям добровольно поддержать авторов контента на YouTube единовременной денежной помощью.
МетодfanFundingEvents.listв API отображает список событий, связанных с привлечением средств от поклонников канала. События, инициированные через чат во время прямой трансляции, принадлежащей каналу, также отправляют сообщениеfanFundingEventв чат прямой трансляции.
Подробнее о финансировании от фанатов можно узнать в Справочном центре YouTube .sponsorsРесурс sponsorидентифицирует спонсора YouTube-канала. Спонсор платит каналу ежемесячную абонентскую плату. Рядом с сообщениями спонсора в прямых чатах канала отображается значок, а спонсоры также могут участвовать в прямых чатах, предназначенных исключительно для спонсоров канала, если таковые проводятся.
Метод `sponsors.listAPI выводит список спонсоров канала. Когда пользователи регистрируются в качестве спонсоров канала во время прямой трансляции, принадлежащей этому каналу, API также добавляет сообщениеnewSponsorEventв чат прямой трансляции.Подробнее о спонсорстве можно узнать в Справочном центре YouTube .
Updates to existing resources and methods
The
liveBroadcastresource contains the following new properties:Характеристики snippet.liveChatIdThe ID for the broadcast's YouTube live chat. With this ID, you can use the liveChatMessageresource's methods to retrieve, insert, or delete chat messages. You can also add or remove chat moderators, ban users from participating in live chats, or remove existing bans.contentDetails.closedCaptionsTypeNote: This property replaces the contentDetails.enableClosedCaptionsproperty.
This property indicates whether closed captioning is enabled for your broadcast and, if so, what type of closed captions you are providing:-
closedCaptionsDisabled: Closed captions are disabled for the live broadcast. -
closedCaptionsHttpPost: You will send captions, via HTTP POST, to an ingestion URL associated with your live stream. -
closedCaptionsEmbedded: Captions will be encoded in the video stream using EIA-608 and/or CEA-708 formats.
contentDetails.enableClosedCaptionsThis property has been deprecated as of December 17, 2015. Use the contentDetails.closedCaptionsTypeproperty instead. For API clients that are already using this property:- Setting the property value to
trueis equivalent to setting thecontentDetails.closedCaptionsTypeproperty toclosedCaptionsHttpPost. - Setting the property value to
falseis equivalent to setting thecontentDetails.closedCaptionsTypeproperty toclosedCaptionsDisabled.
-
The
liveBroadcasts.listmethod's newbroadcastTypeparameter lets you filter an API response to include event broadcasts, persistent broadcasts, or all broadcasts.A persistent broadcast is one that always exists and is not tied to a particular event. Specifically, a channel's default broadcast is a persistent broadcast, and it is accessible via the Live Dashboard in the YouTube Creator Studio. The channel's other broadcasts are event broadcasts.
The
liveStreamresource'sstatus.healthStatus.configurationIssues[].typefield reports the following new health status errors:Ошибки audioTooManyChannelsThe audio has more than two channels, but only one (mono) or two (stereo) channels are supported. Please correct the number of audio channels. frameRateHighThe current framerate is too high. Please set the framerate to %(framerate)sfps or less.The publication date of the previous documentation update was corrected.
New and updated errors
In addition to errors defined for the new resources listed above, the API supports the following new errors:
Подробности ошибки liveBroadcasts.updateHTTP Response Code forbidden (403)Причина closedCaptionsTypeModificationNotAllowedОписание The contentDetails.closedCaptionsTypevalue can only be modified when the broadcast is in thecreatedorreadystatus.liveBroadcasts.updateHTTP Response Code invalidValue (400)Причина invalidEnableClosedCaptionsОписание In the liveBroadcast resource , the value of the contentDetails.enableClosedCaptionsproperty is incompatible with the value of thecontentDetails.closedCaptionTypesetting. Modify the resource to only include one of the two properties, and then resubmit the request.
August 19, 2015
This update contains the following changes:
New resources and methods
Note: Documentation for the
liveChatresource and its methods is confidential and only visible to select YouTube partners.The new
liveChatresource contains a comment posted during a live broadcast on YouTube. The API supports two methods for this resource:Методы liveChats.listList live chat messages for a broadcast. liveChats.insertCreate a new chat message. Live chat messages can only be retrieved and posted while a broadcast is live.
Updates to existing resources and methods
The
liveStreamresource contains the following new properties:Характеристики snippet.isDefaultStreamIndicates whether this stream is the default stream for the channel. A channel's default stream exists indefinitely, does not have a start or end time associated with it, and cannot be deleted. See the property's definition for more information about how default streams work. status.healthStatusThis object contains information that could be used to identify, diagnose and resolve streaming problems. The object contains a number of child properties to help you evaluate the health of a live video stream.
In particular, thestatus.healthStatus.configurationIssues[]object lists issues affecting a video stream. A new document, Configuration Issues for LiveStream Resources , lists all of the issues that the API reports.contentDetails.isReusableIndicates whether the stream is reusable, which means that it can be bound to multiple broadcasts. It is common for broadcasters to reuse the same stream for many different broadcasts if those broadcasts occur at different times. The
liveBroadcastresource contains the following new properties:Характеристики snippet.isDefaultBroadcastIndicates whether this broadcast is the default broadcast for the channel. When a YouTube channel is enabled for live streaming, YouTube creates a default stream and a default broadcast for the channel. The stream defines how the channel owner sends live video to YouTube, and the broadcast is how viewers can see the default stream. See the property's definition for more information about how default broadcasts work. contentDetails.enableLowLatencyIndicates whether this broadcast should be encoded for low-latency streaming. A low-latency stream can reduce the amount of time it takes for video to be visible to users watching a broadcast, though it can also impact the resolution for viewers of the stream. statistics.totalChatCountThe total number of live chat messages associated with the broadcast. The property and its value are present if the broadcast is visible to the user and has the live chat feature enabled. Note that this property will not specify a value after the broadcast ends. So, this property would not identify the number of chat messages for an archived video of a completed live broadcast.
New and updated errors
In addition to errors defined for the new
liveChatresource, the API supports the following new error:Подробности ошибки liveStreams.updateHTTP Response Code forbidden (403)Причина liveStreamModificationNotAllowedОписание The API does not allow you to change a reusable stream to be non-reusable, or vice versa. For more information, see Understanding Broadcasts and Streams
May 21, 2015
This update contains the following changes:
YouTube now supports live video streaming at 60 frames per second (fps), which means smoother playback for gaming and other fast-action videos. When you start a live stream on YouTube at 60fps, YouTube also makes the stream available in 30fps on devices where high-frame-rate viewing is not yet available.
The
liveStreamresource'scdn.formatproperty supports two new values for this feature:720p_hfrand1080p_hfr.See the YouTube Creators Blog for more information about this feature.
21 августа 2014 г.
This update contains the following changes:
The definition of the
liveBroadcasts.controlmethod'swalltimeparameter has been updated to note that the property value is specified in ISO 8601 format (YYYY-MM-DDThh:mm:ss.sssZ).The API now supports the following errors:
Error type Error detail Описание insufficientPermissionsliveStreamingNotEnabledAll methods for the liveBroadcastandliveStreamresources return this error if the user that authorized the API request has not been enabled to stream live video on YouTube. Details explaining why the user cannot stream live video may be available in the user's channel settings at https://www.youtube.com/features .rateLimitExceededuserRequestsExceedRateLimitThe liveBroadcasts.insertandliveStreams.insertmethods both return this error to indicate that the user has sent too many requests within a given timeframe.
May 2, 2014
This update contains the following changes:
The descriptions of the
liveStreamresource and of theliveBroadcasts.bindmethod have been updated to note that a broadcast can only be bound to one video stream, but a video stream can be bound to more than one broadcast. This change is solely a correction to the documentation; the underlying API functionality has not changed.The
liveBroadcastresource'scontentDetails.monitorStream.enableMonitorStreamproperty has been updated to explain that if the property's value istrue, then you must transition your broadcast to thetestingstate before you can transition it to thelivestate. (If the property's value isfalse, your broadcast cannot have atestingstage, so you can transition the broadcast directly to thelivestate.The
liveCuepointresource'ssettings.offsetTimeMsproperty has been updated to note that you should not specify a value for the property if your broadcast does not have a monitor stream.All of the methods for the
liveBroadcastandliveStreamresources now support theonBehalfOfContentOwnerandonBehalfOfContentOwnerChannelparameters. These parameters allow you to use the same authorization credentials to complete API requests for different channels associated with the same content owner.The
liveCuepoints.insertmethod's documentation has been updated to note that you can set a value for thesettings.walltimeproperty when calling that method.The error documentation now specifies the HTTP response code for each error type.
The API now supports the following error:
Error type Error detail Описание insufficientPermissionslivePermissionBlockedThe liveBroadcasts.insert,liveBroadcasts.transition, andliveStreams.insertmethods return this error if the user that authorized the request is unable to stream live video on YouTube. Details explaining why the user cannot stream live video may be available in the user's channel settings at https://www.youtube.com/features .The
liveBroadcasts.insertmethod'sinvalidScheduledStartTimeerror has been updated to clarify that the scheduled start time must be close enough to the current date that a broadcast could be reliably scheduled at that time.
13 декабря 2013 г.
This update contains the following changes:
The
liveBroadcastresource's newstatus.recordingStatusproperty identifies the broadcast's current status.The
liveBroadcastresource's newcontentDetails.enableClosedCaptionsproperty indicates whether closed captions can be ingested for the broadcast. The property value can be set when you insert or update a broadcast, but it cannot be updated once the broadcast is in thetestingorlivestate. If you set this property totrue, then theliveStreamresource that is bound to the broadcast will specify the ingestion URL to use for the broadcast's closed captions.The
liveBroadcastresource'ssnippet.scheduledEndTimeproperty now supports broadcasts that are scheduled to continue indefinitely. With this change, the property is no longer required inliveBroadcasts.insertandliveBroadcasts.updaterequests.
If you retrieve aliveBroadcastresource that does not specify a value for this property, then the broadcast is scheduled to continue indefinitely. Similarly, if you call theliveBroadcasts.insertorliveBroadcasts.updatemethod and do not specify a value for this property, the broadcast will be scheduled to continue indefinitely.The
liveBroadcastresource'scontentDetails.recordFromStartproperty, which already had a default value oftrue, can now only be set tofalseif the broadcasting channel is allowed to disable recordings for live broadcasts.If your channel does not have permission to disable recordings, and you attempt to insert a broadcast with the
recordFromStartproperty set tofalse, the API will return aForbiddenerror. In addition, if your channel does not have that permission and you attempt to update a broadcast to set therecordFromStartproperty tofalse, the API will return amodificationNotAllowederror.The
liveBroadcastresource no longer contains anenableArchiveproperty, which had been mentioned in the descriptions of thecontentDetails.enableDvrandcontentDetails.enableEmbedproperties.The list of valid values for the
liveBroadcastresource'sstatus.lifeCycleStatusproperty has been updated to include a description of each status.The
liveCuepointresource's newsettings.walltimeproperty specifies the date and time at which the cuepoint should be inserted. The API returns an error if a request tries to insert a cuepoint that specifies a value for this property and for thesettings.offsetTimeMsproperty.The new
contentDetailsobject in aliveStreamresource contains information about the stream. Currently, the object's only property iscontentDetails.closedCaptionsIngestionUrl, which specifies the ingestion URL for closed captions associated with the video stream.The list of valid values for the
liveStreamresource'sstatus.streamStatusproperty has been updated to include a description of each status.The
liveBroadcasts.controlmethod's newwalltimeparameter lets you specify the date and time when a slate change will occur. The API returns an error if a request specifies a value for this parameter and for theoffsetTimeMsparameter.In the API response to a
liveBroadcasts.listrequest, the value of thekindproperty has changed fromyoutube#liveBroadcastListtoyoutube#liveBroadcastListResponse.In the API response to a
liveStreams.listrequest, the value of thekindproperty has changed fromyoutube#liveStreamListtoyoutube#liveStreamListResponse.The
eventIdproperty has been deprecated from both theliveBroadcastListResponseand theliveStreamListResponse.The API supports the following new errors:
Error type Error detail Описание invalidValueconflictingTimeFieldsThe liveBroadcasts.controlmethod returns this error if your request specifies values for theoffsetTimeMsandwalltimeparameters. A request can either omit both parameters or specify a value for one of the two parameters.invalidValueinvalidWalltimeThe liveBroadcasts.controlmethod returns this error if thewalltimeparameter's value is invalid.forbiddenenableClosedCaptionsModificationNotAllowedThe liveBroadcasts.updatemethod returns this error if you attempt to update thecontentDetails.enableClosedCaptionsvalue and the broadcast's status is notcreatedorready.invalidValueconflictingTimeFieldsThe liveCuepoints.insertmethod returns this error if your request specifies values for thesettings.offsetTimeMsandsettings.walltimeproperties. A request can either omit both properties or specify a value for one of the two properties.In addition, the
liveStreams.updatemethod no longer supports acdnRequirederror similar to the one that theliveStreams.insertmethod supports.
May 10, 2013
This update contains the following changes:
YouTube no longer identifies experimental API features and services. Instead, we now provide a list of YouTube APIs that are subject to the deprecation policy .
May 2, 2013
This update contains the following changes:
The new
liveBroadcasts.controlmethod enables you to toggle the display settings for a slate that displays in the broadcast stream for a broadcast that is already in progress. If your broadcast stream is delayed, you can also use this method to specify a time offset when the requested slate change will occur.The definitions of the following properties have been updated to explain that the property values must be set if you update a
liveBroadcastresource'scontentDetailspart:The
liveStreamresource'sstatus.streamStatusno longer supports the valuedeletedas a possible stream status.The information that the API returns for many error messages has been revised to better explain why particular errors occurred. The API also supports several new errors.
March 27, 2013
This update contains the following changes:
The following properties have changed in the
liveBroadcastresource:- The
startWithSlateCuepointproperty has been renamed tostartWithSlate. - The
enableArchiveproperty has been renamed torecordFromStart. - The
slateSettingsobject has been deprecated and removed from the documentation. Error messages related to theslateSettingsobject or its properties have also been removed. Finally, the "Displaying Slates" section of the Getting started guide has been removed.
- The
The API no longer supports the ability to insert in-stream slates using the
liveCuepoints.insertmethod. The following documents have been updated to reflect this change:The index page , Getting started guide, and Life of a broadcast tutorial no longer mention this functionality.
The
liveCuepointresource'ssettings.cueTypeproperty no longer supportsslateas a property value. (The only supported value isad.The
liveCuepointresource'ssettings.eventStateproperty has been deprecated and removed from the documentation.
March 18, 2013
This update contains the following changes:
All of the API's error messages have been updated to more clearly explain possible errors and, when possible, offer guidance about how to fix them.
The API may now return several new errors. The list below identifies the error and the API method that might return that error:
-
liveBroadcasts.insert– A broadcast's scheduled end time must be after its scheduled start time. -
liveBroadcasts.insert– The broadcast specifies an invalid privacy status. -
liveBroadcasts.update– The resource does not contain or does not set a value for thecontentDetails.enableArchiveproperty. -
liveBroadcasts.update– The resource does not contain or does not set a value for thecontentDetails.enableContentEncryptionproperty. -
liveBroadcasts.update– The resource does not contain or does not set a value for thecontentDetails.enableDvrproperty. -
liveStreams.insert– The snippet title must be between 1 and 128 characters long. -
liveStreams.update– The resource does not contain or does not set a value for thesnippet.titleproperty.
-
The
liveStreamresource documentation has been updated to reflect that multicast and WebM are not supported ingestion methods as previously indicated. The list of formats for thecdn.formatproperty has been updated accordingly, and thecdn.multicastIngestionInfoobject and its child properties have been removed from the resource's documentation. In addition,httphas been removed from the list of supportedcdn.ingestionTypevalues.