Реализация: трансляции и стримы

В примерах ниже показано, как использовать YouTube Live Streaming API для создания и управления трансляциями.

Создать трансляцию

Вызовите метод liveBroadcasts.insert, чтобы запланировать новое мероприятие с прямой трансляцией. В теле запроса необходимо указать название трансляции, запланированное время начала и статус доступа. Вы также можете указать категорию видео с помощью свойства snippet.categoryId. Получить список категорий можно с помощью метода videoCategories.list.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.liveBroadcasts.insert?
        part=snippet,status

Тело запроса содержит ресурс liveBroadcast. В этом примере тело запроса выглядит так:

{
  "snippet": {
    "title": "My Live Event",
    "scheduledStartTime": "2026-10-30T19:00:00Z",
    "categoryId": "17"
  },
  "status": {
    "privacyStatus": "unlisted"
  }
}

Создание потока

Вызовите метод liveStreams.insert, чтобы создать трансляцию и задать ее настройки. Вам нужно будет указать название трансляции и задать настройки CDN (тип передачи данных, разрешение и частоту кадров).

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.liveStreams.insert?
        part=snippet,cdn

Тело запроса содержит ресурс liveStream. В этом примере тело запроса выглядит так:

{
  "snippet": {
    "title": "My Live Stream"
  },
  "cdn": {
    "frameRate": "30fps",
    "ingestionType": "rtmp",
    "resolution": "720p"
  }
}

Как связать трансляцию с потоком

Вызовите метод liveBroadcasts.bind, чтобы связать трансляцию с потоком. Задайте для параметра id идентификатор трансляции, а для параметра запроса streamId – идентификатор потока.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.liveBroadcasts.bind?
        id=BROADCAST_ID
        &streamId=STREAM_ID
        &part=id,snippet

Статус трансляции перехода

Вызовите метод liveBroadcasts.transition, чтобы изменить статус трансляции. Например, чтобы начать тестирование, измените статус на testing. Чтобы начать трансляцию, измените статус на live.

В этом примере трансляция переходит в testing. В параметре id укажите идентификатор трансляции, а в параметре broadcastStatus – значение testing.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.liveBroadcasts.transition?
        broadcastStatus=testing
        &id=BROADCAST_ID
        &part=id,status

Как получить список трансляций

Чтобы получить трансляции, вызовите метод liveBroadcasts.list. Вы можете отфильтровать результаты по значению параметра broadcastStatus (например, active, completed, upcoming) или получить список собственных трансляций, используя параметр mine.

В этом примере запрашиваются предстоящие трансляции аутентифицированного пользователя.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.liveBroadcasts.list?
        part=snippet,status
        &broadcastStatus=upcoming
        &mine=true