API теперь поддерживает возможность помечать ваши прямые трансляции как «предназначенные для детей», а ресурс
liveBroadcast
теперь содержит свойство, которое определяет статус этой прямой трансляции «сделано для детей». Условия использования API-сервисов YouTube и Правила для разработчиков также были обновлены 10 января 2020 года. Для получения дополнительной информации см. историю изменений API-сервиса YouTube Live Streaming и Условия использования 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 }, "statistics": { "totalChatCount": unsigned long }, "monetizationDetails": { "cuepointSchedule": { "enabled": boolean, "pauseAdsUntil": datetime, "scheduleStrategy": string, "repeatIntervalSecs": unsigned integer, } } } }
Характеристики
В следующей таблице определены свойства, которые появляются в этом ресурсе:
Характеристики | |
---|---|
kind | string Идентифицирует тип ресурса API. Значением будет youtube#liveBroadcast . |
etag | etag Etag этого ресурса. |
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 | string URL-адрес изображения. |
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 Статус трансляции. Статус можно обновить с помощью метода API liveBroadcasts.transition .Допустимые значения для этого свойства:
|
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 | string HTML-код, встраивающий проигрыватель, воспроизводящий поток монитора. |
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 , а также установить значение true для свойства enableArchive , если вы хотите сделать воспроизведение доступным сразу после окончания трансляции. Кроме того, это свойство невозможно обновить, если трансляция находится в состоянии 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 Указывает, должна ли эта трансляция прекращаться автоматически примерно через минуту после того, как владелец канала прекратит потоковую передачу видео в связанном видеопотоке. |
statistics | object Объект statistics содержит статистику, связанную с прямой трансляцией. Значения этой статистики могут меняться во время трансляции и могут быть получены только во время прямой трансляции. |
statistics. totalChatCount | unsigned long Общее количество сообщений чата, связанных с трансляцией. Свойство и его значение присутствуют, если трансляция видна пользователю, включена функция живого чата и имеется хотя бы одно сообщение. Обратите внимание, что это свойство не будет указывать значение после завершения трансляции. Таким образом, это свойство не будет определять количество сообщений чата для архивного видео завершенной прямой трансляции. |
monetizationDetails | object Объект monetizationDetails содержит информацию о деталях монетизации потока, например о том, включен ли автоматизатор рекламы или задерживается ли вставка объявлений в середине ролика. |
monetizationDetails. cuepointSchedule | object Объект cuepointSchedule задает настройки автоматизации рекламы для трансляции. |
monetizationDetails.cuepointSchedule. enabled | boolean Это значение определяет, будет ли реклама автоматически вставляться в трансляцию. Если значение равно true , YouTube автоматически вставит в трансляцию рекламу в середине ролика. Расписание показа рекламы будет определяться значением других полей в объекте monetizationDetails.cuepointSchedule . |
monetizationDetails.cuepointSchedule. pauseAdsUntil | datetime Это значение указывает, что YouTube не должен вставлять рекламу в середине ролика в трансляцию до указанной даты и времени. Значение указывается в формате ISO 8601 ( ГГГГ-ММ-ДДТчч:мм:сс.сЗ ). Чтобы приостановить рекламу, необходимо установить значение даты и времени в будущем; значение поля также может быть установлено на дату и время в ближайшем будущем, чтобы возобновлять показ рекламы по истечении времени. |
monetizationDetails.cuepointSchedule. scheduleStrategy | string Это значение определяет стратегию, которой YouTube должен следовать при планировании ключевых точек. Допустимые значения:
|
monetizationDetails.cuepointSchedule. repeatIntervalSecs | unsigned integer Это значение определяет интервал в секундах между автоматической вставкой рекламы во время трансляции. Например, если значение равно 300 , YouTube может вставлять ключевые точки рекламы в середине ролика с пятиминутными интервалами.Обратите внимание, что это значение указывает время между началом последовательных точек разметки. То есть интервал не измеряется от конца одной точки до начала следующей. |