Теперь API поддерживает возможность помечать ваши прямые трансляции как «предназначенные для детей», а ресурс
liveBroadcast теперь содержит свойство, определяющее статус «предназначенного для детей» данной прямой трансляции. Условия использования и политика разработчиков сервисов API YouTube также были обновлены 10 января 2020 года. Для получения дополнительной информации см. историю изменений сервиса YouTube Live Streaming API и условия использования сервисов API YouTube . Ресурс liveBroadcast представляет собой событие, которое будет транслироваться в прямом эфире на YouTube.
Методы
API поддерживает следующие методы для ресурсов liveBroadcasts :
- list
- Возвращает список трансляций YouTube, соответствующих параметрам запроса API. Попробуйте прямо сейчас .
- insert
- Создаёт трансляцию. Попробуйте прямо сейчас .
- update
- Обновляет трансляцию. Например, вы можете изменить параметры трансляции, определенные в объекте
contentDetailsресурсаliveBroadcast. Попробуйте прямо сейчас . - delete
- Удаляет трансляцию. Попробуйте прямо сейчас .
- bind
- Привязывает трансляцию YouTube к потоку или удаляет существующую привязку между трансляцией и потоком. Трансляция может быть привязана только к одному видеопотоку, хотя видеопоток может быть привязан к нескольким трансляциям. Попробуйте прямо сейчас .
- transition
- Изменяет статус прямой трансляции на YouTube и запускает все процессы, связанные с новым статусом. Например, когда вы переводите статус трансляции в
testing, YouTube начинает передавать видео в поток монитора этой трансляции. Перед вызовом этого метода убедитесь, что значение свойстваstatus.streamStatusдля потока, привязанного к вашей трансляции, являетсяactive. Попробуйте прямо сейчас . - cuepoint
- Вставляет точку воспроизведения в прямую трансляцию. Эта точка воспроизведения может вызвать рекламную паузу.
Представление ресурсов
Следующая JSON-структура демонстрирует формат ресурса liveBroadcasts :
{
"kind": "youtube#liveBroadcast",
"etag": etag,
"id": string,
"snippet": {
"publishedAt": datetime,
"channelId": string,
"title": string,
"description": string,
"thumbnails": {
(key): {
"url": string,
"width": unsigned integer,
"height": unsigned integer
}
},
"scheduledStartTime": datetime,
"scheduledEndTime": datetime,
"actualStartTime": datetime,
"actualEndTime": datetime,
"isDefaultBroadcast": boolean,
"liveChatId": string
},
"status": {
"lifeCycleStatus": string,
"privacyStatus": string,
"recordingStatus": string,
"madeForKids": string,
"selfDeclaredMadeForKids": string,
},
"contentDetails": {
"boundStreamId": string,
"boundStreamLastUpdateTimeMs": datetime,
"monitorStream": {
"enableMonitorStream": boolean,
"broadcastStreamDelayMs": unsigned integer,
"embedHtml": string
},
"enableEmbed": boolean,
"enableDvr": boolean,
"recordFromStart": boolean,
"enableClosedCaptions": boolean,
"closedCaptionsType": string,
"projection": string,
"enableLowLatency": boolean,
"latencyPreference": boolean,
"enableAutoStart": boolean,
"enableAutoStop": boolean,
"availabilityConfig": {
"globalConfig": {
"excludedRegionCodes": [
string
],
"interval": {
"startTime": datetime,
"endTime": datetime
}
},
"regionsConfig": {
"regionIntervals": [
{
"regionCode": string,
"interval": {
"startTime": datetime,
"endTime": datetime
}
}
]
}
}
},
"statistics": {
"totalChatCount": unsigned long
},
"monetizationDetails": {
"adsMonetizationStatus": string,
"eligibleForAdsMonetization": boolean,
"cuepointSchedule": {
"enabled": boolean,
"pauseAdsUntil": datetime,
"ytOptimizedCuepointConfig": string,
"creatorCuepointConfig": {
"scheduleStrategy": string,
"repeatIntervalSecs": unsigned integer
}
}
}
}Характеристики
В следующей таблице описаны свойства, которые отображаются в этом ресурсе:
| Характеристики | |
|---|---|
kind | stringОпределяет тип ресурса API. Значение будет youtube#liveBroadcast . |
etag | etagEtag этого ресурса. |
id | stringИдентификатор, который YouTube присваивает для однозначной идентификации трансляции. |
snippet | objectОбъект snippet содержит основные сведения о событии, включая его заголовок, описание, время начала и время окончания. |
snippet. publishedAt | datetimeДата и время добавления трансляции в расписание прямых трансляций YouTube. Значение указывается в формате ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ). |
snippet. channelId | stringИдентификатор, который YouTube использует для однозначной идентификации канала, публикующего трансляцию. |
snippet. title | stringЗаголовок трансляции. Обратите внимание, что трансляция представляет собой ровно одно видео на YouTube. Вы можете задать это поле, изменив ресурс трансляции или задав поле title соответствующего ресурса видео. |
snippet. description | stringОписание трансляции. Как и title , это поле можно задать, изменив ресурс трансляции или задав поле description соответствующего видеоресурса. |
snippet. thumbnails | objectКарта миниатюр изображений, связанных с трансляцией. Для каждого вложенного объекта в этом объекте ключом является имя миниатюрного изображения, а значением — объект, содержащий другую информацию о миниатюре. |
snippet.thumbnails. (key) | objectДопустимые значения ключей:
|
snippet.thumbnails.(key). url | stringURL изображения. |
snippet.thumbnails.(key). width | unsigned integerШирина изображения. |
snippet.thumbnails.(key). height | unsigned integerВысота изображения. |
snippet. scheduledStartTime | datetimeДата и время начала трансляции. Значение указывается в формате ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ). Creator Studio поддерживает возможность создания трансляции без указания времени начала. В этом случае трансляция начинается, когда владелец канала начинает потоковое вещание. Для таких трансляций значение datetime соответствует нулевому времени Unix-эпохи, и это значение нельзя изменить с помощью API или в Creator Studio. |
snippet. scheduledEndTime | datetimeДата и время окончания трансляции. Значение указывается в формате ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ). Если в ресурсе liveBroadcast не указано значение для этого свойства, трансляция планируется продолжать бесконечно. Аналогично, если значение для этого свойства не указано, YouTube будет рассматривать трансляцию как продолжающуюся бесконечно. |
snippet. actualStartTime | datetimeДата и время фактического начала трансляции. Эта информация становится доступна только после того, как трансляция перейдет live . Значение указывается в формате ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ). |
snippet. actualEndTime | datetimeДата и время фактического завершения трансляции. Эта информация становится доступна только после complete трансляции. Значение указывается в формате ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ). |
snippet. isDefaultBroadcast | boolean Данная функция будет упразднена 1 сентября 2020 года или позднее. В это время YouTube прекратит создавать поток по умолчанию и трансляцию по умолчанию при включении прямой трансляции на канале. Подробнее см. объявление об упразднении . Это свойство указывает, является ли данная трансляция трансляцией по умолчанию.Как работает широковещательная рассылка по умолчанию Когда на YouTube-канале включена функция прямых трансляций, YouTube создает для канала основной поток и основную трансляцию. Поток определяет, как владелец канала отправляет видео в прямом эфире на YouTube, а основная трансляция позволяет зрителям видеть основной поток. Владелец канала может использовать методы liveStreams.list и liveBroadcasts.list для идентификации этих ресурсов.Когда канал начинает трансляцию видео в свой основной поток, видео становится видимым в основной трансляции канала. Когда трансляция заканчивается, YouTube преобразует завершенную трансляцию в видео YouTube и присваивает видео идентификатор видео YouTube. После завершения конвертации видео добавляется в список загруженных видео канала. Видео становится доступно не сразу после окончания трансляции, и длительность задержки зависит от фактической продолжительности трансляции. |
snippet. liveChatId | stringИдентификатор чата прямой трансляции на YouTube. С помощью этого идентификатора вы можете использовать методы ресурса liveChatMessage для получения, добавления или удаления сообщений чата. Вы также можете добавлять или удалять модераторов чата, запрещать пользователям участвовать в прямых трансляциях или снимать существующие блокировки. |
status | objectОбъект status содержит информацию о статусе события. |
status. lifeCycleStatus | stringСтатус трансляции. Статус можно обновить с помощью метода liveBroadcasts.transition API.Допустимые значения для этого свойства:
|
status. privacyStatus | stringСтатус конфиденциальности трансляции. Обратите внимание, что трансляция представляет собой ровно одно видео на YouTube, поэтому настройки конфиденциальности идентичны тем, которые поддерживаются для обычных видео. Кроме того, вы можете установить это поле, изменив ресурс трансляции или установив поле privacyStatus соответствующего ресурса видео.Допустимые значения для этого свойства:
|
status. recordingStatus | stringСтатус записи трансляции. Допустимые значения для этого свойства:
|
status. madeForKids | booleanЭто значение указывает, предназначена ли трансляция для детей. Значение этого свойства доступно только для чтения. |
status. selfDeclaredMadeForKids | booleanВ запросе liveBroadcasts.insert это свойство позволяет владельцу канала указать, что трансляция предназначена для дочерних каналов. В запросе liveBroadcasts.list значение свойства возвращается только в том случае, если владелец канала авторизовал запрос API. |
contentDetails | objectОбъект contentDetails содержит информацию о видеоконтенте мероприятия, например, о том, можно ли отобразить контент во встроенном видеоплеере или он будет заархивирован и, следовательно, доступен для просмотра после завершения мероприятия. |
contentDetails. boundStreamId | stringЭто значение однозначно идентифицирует live stream привязанную к эфиру. |
contentDetails. boundStreamLastUpdateTimeMs | datetimeДата и время последнего обновления прямой трансляции, на которую ссылается boundStreamId . |
contentDetails. monitorStream | objectОбъект monitorStream содержит информацию о потоке мониторинга, которую вещатель может использовать для просмотра содержимого события перед публичным отображением транслируемого потока. |
contentDetails.monitorStream. enableMonitorStream | booleanЭто значение определяет, включен ли мониторинговый поток для трансляции. Если мониторинговый поток включен, YouTube будет транслировать контент события в специальном потоке, предназначенном только для просмотра вещателем. Вещатель может использовать этот поток для просмотра контента события, а также для определения оптимального времени для вставки контрольных точек. Необходимо установить это значение в true , если вы планируете использовать testing этап для вашей трансляции или хотите использовать задержку трансляции для вашего мероприятия. Кроме того, если значение этого свойства равно true , то вам необходимо перевести вашу трансляцию в testing состояние, прежде чем вы сможете перевести ее в live состояние. (Если значение свойства равно false , ваша трансляция не может иметь testing этапа, поэтому вы можете перевести трансляцию непосредственно в live состояние.)При update a broadcast это свойство необходимо установить, если ваш API-запрос включает часть contentDetails в значении параметра part . Однако при insert a broadcast это свойство является необязательным и имеет значение по умолчанию true .Важно: это свойство нельзя изменить после того, как трансляция перейдет в testing или live режим. |
contentDetails.monitorStream. broadcastStreamDelayMs | unsigned integerЕсли вы установили свойство enableMonitorStream в true , то это свойство определяет длительность задержки прямой трансляции.При update a broadcast это свойство необходимо установить, если ваш API-запрос включает часть contentDetails в значении параметра part . Однако при insert a broadcast это свойство является необязательным и имеет значение по умолчанию 0 Это значение указывает на то, что трансляция не имеет задержки. Примечание: это свойство нельзя изменить, если трансляция находится в testing или live состоянии. |
contentDetails.monitorStream. embedHtml | stringHTML-код, встраивающий плеер, воспроизводящий видеопоток с монитора. |
contentDetails. enableEmbed | booleanЭтот параметр определяет, можно ли воспроизводить транслируемое видео во встроенном плеере. Если вы решите архивировать видео (используя свойство enableArchive ), этот параметр также будет применяться к архивированному видео.При update a broadcast это свойство необходимо установить, если ваш API-запрос включает часть contentDetails в значении параметра part . Однако при insert a broadcast это свойство является необязательным и имеет значение по умолчанию true .Примечание: это свойство нельзя изменить после того, как трансляция перейдет в testing или live режим. |
contentDetails. enableDvr | booleanЭтот параметр определяет, могут ли зрители получать доступ к элементам управления DVR во время просмотра видео. Элементы управления DVR позволяют зрителю управлять воспроизведением видео, приостанавливая, перематывая назад или вперед. Значение по умолчанию для этого свойства — true .При update a broadcast это свойство необходимо установить, если ваш API-запрос включает часть contentDetails в значении параметра part . Однако при insert a broadcast это свойство является необязательным и имеет значение по умолчанию true .Важно: необходимо установить значение true , а также значение свойства enableArchive в true , если вы хотите, чтобы воспроизведение стало доступно сразу после окончания трансляции. Кроме того, это свойство нельзя изменить, когда трансляция находится в testing или live состоянии. |
contentDetails. recordFromStart | booleanЭтот параметр определяет, будет ли YouTube автоматически начинать запись трансляции после того, как статус события изменится на «прямая трансляция». Значение по умолчанию для этого свойства — true , и его можно установить в false только в том случае, если каналу вещания разрешено отключать запись прямых трансляций.Если у вашего канала нет разрешения на отключение записи, и вы попытаетесь вставить трансляцию со свойством recordFromStart установленным в значение false , API вернет ошибку Forbidden . Кроме того, если у вашего канала нет такого разрешения, и вы попытаетесь обновить трансляцию, установив свойство recordFromStart в false , API вернет ошибку modificationNotAllowed .При update a broadcast это свойство необходимо установить, если ваш API-запрос включает часть contentDetails в значении параметра part . Однако при insert a broadcast это свойство является необязательным и имеет значение по умолчанию true .Важно: Чтобы воспроизведение стало доступно сразу после окончания трансляции, необходимо также установить значение свойства enableDvr в true . Если вы установите значение этого свойства в true , но не установите значение свойства enableDvr в true , может возникнуть задержка примерно в один день, прежде чем архивное видео станет доступно для воспроизведения.Примечание: это свойство нельзя изменить после того, как трансляция перейдет в testing или live режим. |
contentDetails. enableClosedCaptions | booleanДанное свойство устарело с 17 декабря 2015 года. Вместо него используйте свойство contentDetails.closedCaptionsType .Этот параметр указывает, включено ли отображение субтитров по протоколу HTTP POST для данной трансляции. Для API-клиентов, которые уже используют это свойство:
|
contentDetails. closedCaptionsType | stringПримечание: это свойство заменяет свойство contentDetails.enableClosedCaptions .Это свойство указывает, включены ли субтитры для вашей трансляции и, если да, то какой тип субтитров вы предоставляете:
|
contentDetails. projection | stringФормат проекции этой трансляции. Значение по умолчанию для этого параметра — rectangular .Допустимые значения для этого свойства:
|
contentDetails. enableLowLatency | booleanУказывает, следует ли кодировать данную трансляцию для потоковой передачи с низкой задержкой. Поток с низкой задержкой может сократить время, необходимое для отображения видео пользователям, смотрящим трансляцию, хотя это также может повлиять на разрешение для зрителей. |
contentDetails. latencyPreference | stringУказывает, какой параметр задержки следует использовать для этой трансляции. Это свойство можно использовать вместо enableLowLatency , которое не поддерживает ultraLow .Низкая задержка потока может сократить время, необходимое для отображения видео пользователям, смотрящим трансляцию, хотя это также может повлиять на плавность воспроизведения. Потоковая передача со сверхнизкой задержкой дополнительно сокращает время, необходимое для отображения видео зрителям, что упрощает взаимодействие со зрителями, однако сверхнизкая задержка не поддерживает субтитры или разрешение выше 1080p. Допустимые значения для этого свойства:
|
contentDetails. enableAutoStart | booleanУказывает, следует ли запускать эту трансляцию автоматически при начале потоковой передачи видео в рамках привязанного live stream . |
contentDetails. enableAutoStop | booleanУказывает, следует ли автоматически прекращать трансляцию примерно через минуту после того, как владелец канала прекратит потоковую передачу видео в рамках привязанного видеопотока. |
contentDetails. availabilityConfig | objectНастройки доступности трансляции. Используются для установки доступности в определенном регионе или блокировки определенных регионов. Это необязательный параметр — если он не задан, его использование не будет применяться. |
contentDetails.availabilityConfig. globalConfig | objectГлобальная конфигурация доступности трансляции. Видео доступно во всех регионах, кроме тех, которые указаны в списке excludedRegionCodes . |
contentDetails.availabilityConfig.globalConfig. excludedRegionCodes | list (string)Список регионов, где видео заблокировано. |
contentDetails.availabilityConfig.globalConfig. interval | objectВременной интервал по умолчанию, в течение которого видео доступно для всех незаблокированных регионов. Примечание: это свойство не поддерживается для предстоящих или текущих прямых трансляций. |
contentDetails.availabilityConfig.globalConfig.interval. startTime | datetimeДата и время, когда видео становится доступным. Если не указано, видео уже доступно. Значение указывается в формате ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ). |
contentDetails.availabilityConfig.globalConfig.interval. endTime | datetimeДата и время, когда видео перестает быть доступным. Если не указано, видео будет доступно навсегда. Указанные время начала и окончания не могут быть более чем на пять лет вперед. Значение указывается в формате ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ). |
contentDetails.availabilityConfig. regionsConfig | objectРегиональные настройки доступности трансляции. Видео доступно только в указанных регионах. |
contentDetails.availabilityConfig.regionsConfig. regionIntervals | list (object)Список регионов и временных интервалов, в которых доступно видео. Если регион указан несколько раз, используется объединение всех интервалов. |
contentDetails.availabilityConfig.regionsConfig.regionIntervals. regionCode | stringРегион, в котором доступно видео. |
contentDetails.availabilityConfig.regionsConfig.regionIntervals. interval | objectВременной интервал, в течение которого видео доступно для указанного региона. Примечание: Эта функция не поддерживается для предстоящих или текущих прямых трансляций. |
contentDetails.availabilityConfig.regionsConfig.regionIntervals.interval. startTime | datetimeДата и время, когда видео станет доступно в указанном регионе. Если не указано, видео уже доступно. Значение указывается в формате ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ). |
contentDetails.availabilityConfig.regionsConfig.regionIntervals.interval. endTime | datetimeДата и время, когда видео перестает быть доступным в указанном регионе. Если не указано, видео будет доступно навсегда. Указанные время начала и окончания не могут быть более чем на пять лет вперед. Значение указывается в формате ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ). |
statistics | objectОбъект statistics содержит статистические данные, относящиеся к прямой трансляции. Значения этих статистических данных могут изменяться во время трансляции и могут быть получены только в то время, когда трансляция идёт в прямом эфире. |
statistics. totalChatCount | unsigned longОбщее количество сообщений в чате, связанных с трансляцией. Это свойство и его значение присутствуют, если трансляция видна пользователю, функция чата включена и содержит хотя бы одно сообщение. Обратите внимание, что это свойство не будет указывать значение после завершения трансляции. Таким образом, это свойство не будет определять количество сообщений в чате для архивированного видео завершенной прямой трансляции. |
monetizationDetails | objectОбъект monetizationDetails содержит информацию о деталях монетизации потока, например, включен ли автоматический рекламный генератор или задерживается ли вставка рекламы в середине видео. |
monetizationDetails. adsMonetizationStatus | stringЭто свойство указывает, включена ли в видеотрансляции рекламная вставка в середине ролика. Допустимые значения: on и off . |
monetizationDetails. eligibleForAdsMonetization | stringЭто свойство указывает, подходит ли видеотрансляция для показа рекламы в середине ролика. Трансляция может быть недоступна по разным причинам, например, из-за уже поданной заявки или из-за того, что канал не настроен для монетизации. |
monetizationDetails. cuepointSchedule | objectОбъект cuepointSchedule задает параметры автоматизации рекламы для трансляции. |
monetizationDetails.cuepointSchedule. enabled | booleanЭто значение определяет, будут ли рекламные объявления автоматически вставляться в трансляцию. Если значение равно true , YouTube автоматически вставит рекламные ролики в середине трансляции. Расписание показа рекламы будет определяться значениями других полей в объекте monetizationDetails.cuepointSchedule . |
monetizationDetails.cuepointSchedule. pauseAdsUntil | datetimeЭто значение указывает, что YouTube не должен вставлять рекламные вставки в эфир до указанной даты и времени. Значение указывается в формате ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ). Для приостановки показа рекламы необходимо установить будущую дату и время; для возобновления показа рекламы значение поля также может быть установлено на прошедшую дату и время или быть пустым. |
monetizationDetails.cuepointSchedule. ytOptimizedCuepointConfig | stringВ этом поле указывается выбранный параметр для автоматически вставляемых рекламных блоков. В поле можно указать один из трех режимов:
|
monetizationDetails.cuepointSchedule. creatorCuepointConfig | objectОбъект creatorCuepointConfig задает параметр автоматического создания рекламы, который позволяет создателю выбирать способ отображения рекламных вставок. |
monetizationDetails.cuepointSchedule.creatorCuepointConfig. scheduleStrategy | stringЭто значение определяет стратегию, которой YouTube должен следовать при планировании точек воспроизведения. Допустимые значения:
|
monetizationDetails.cuepointSchedule.creatorCuepointConfig. repeatIntervalSecs | unsigned integerЭто значение задает интервал в секундах между автоматической вставкой рекламы во время трансляции. Например, если значение равно 360 , YouTube может вставлять рекламные ролики в середине видео с интервалом в шесть минут.Примечание:
|