実装: ブロードキャストとストリーム

以下の例は、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