实现:广播和数据流

以下示例展示了如何使用 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 参数设置为广播 ID,并将 streamId 查询参数设置为数据流 ID。

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 参数设置为广播 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