LiveBroadcasts

この API では、ライブ配信を「子ども向け」としてマークする機能がサポートされ、liveBroadcast リソースには、そのライブ配信の「子ども向け」ステータスを識別するプロパティが追加されました。YouTube API サービスの利用規約とデベロッパー ポリシーも 2020 年 1 月 10 日に更新されました。詳しくは、YouTube Live Streaming API サービスの変更履歴と YouTube API サービス利用規約をご覧ください。

liveBroadcast リソースは、YouTube でライブ動画でストリーミングされるイベントを表します。

Methods

この API では、liveBroadcasts リソースについて次のメソッドがサポートされています。

list
API リクエストのパラメータに一致する YouTube ブロードキャストのリストを返します。今すぐ試す
挿入
ブロードキャストを作成します。 今すぐ試す
update
ブロードキャストを更新します。たとえば、liveBroadcast リソースの contentDetails オブジェクトで定義されたブロードキャスト設定を変更できます。こちらから今すぐお試しください。
delete
ブロードキャストを削除します。 今すぐ試す
バインド
YouTube ブロードキャストをストリームにバインドするか、ブロードキャストとストリームの間の既存のバインディングを削除します。ブロードキャストは 1 つの動画ストリームにのみバインドできますが、動画ストリームは複数のブロードキャストにバインドできます。今すぐ試す
transition
YouTube ライブ配信のステータスを変更し、新しいステータスに関連するプロセスを開始します。たとえば、ブロードキャストのステータスを testing に移行すると、YouTube はそのブロードキャストのモニター ストリームへの動画の送信を開始します。このメソッドを呼び出す前に、ブロードキャストにバインドされているストリームの status.streamStatus プロパティの値が active であることを確認する必要があります。こちらから今すぐお試しください。
キューポイント
ライブ配信にキューポイントを挿入します。キューポイントで広告ブレークをトリガーする。

リソース表現

次の 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 が割り当てた ID。
snippet object
snippet オブジェクトには、タイトル、説明、開始時間、終了時間など、イベントに関する基本情報が含まれます。
snippet.publishedAt datetime
YouTube のライブ配信スケジュールにこの配信が追加された日時です。値は ISO 8601YYYY-MM-DDThh:mm:ss.sZ)形式で指定します。
snippet.channelId string
ブロードキャストを公開しているチャンネルを一意に識別するために YouTube が使用する ID。
snippet.title string
ブロードキャストのタイトル。なお、このブロードキャストは 1 つの YouTube 動画のみを表します。このフィールドを設定するには、ブロードキャスト リソースを変更するか、対応する動画リソースの title フィールドを設定します。
snippet.description string
ブロードキャストの説明。title と同様に、このフィールドを設定するには、ブロードキャスト リソースを変更するか、対応する動画リソースの description フィールドを設定します。
snippet.thumbnails object
ブロードキャストに関連付けられたサムネイル画像のマップ。このオブジェクト内のネストされたオブジェクトについて、キーはサムネイル画像の名前、値はサムネイルに関するその他の情報を含むオブジェクトです。
snippet.thumbnails.(key) object
有効な Key-Value は次のとおりです。
  • default – デフォルトのサムネイル画像。動画(または、再生リストのアイテムや検索結果など、動画を参照するリソース)のデフォルト サムネイルは幅 120px、高さ 90px です。チャンネルのデフォルト サムネイルは幅 88px、高さ 88px です。
  • medium – サムネイル画像の高解像度バージョン。動画(または動画を参照するリソース)の場合、この画像は幅 320px、高さ 180px です。チャンネルの場合は、幅 240px、高さ 240px です。
  • high – サムネイル画像の高解像度バージョン。動画(または動画を参照するリソース)の場合、この画像は幅 480px、高さ 360px です。チャンネルの場合、幅 800px、高さ 800px です。
snippet.thumbnails.(key).url string
画像の URL。
snippet.thumbnails.(key).width unsigned integer
画像の幅。
snippet.thumbnails.(key).height unsigned integer
画像の高さ。
snippet.scheduledStartTime datetime
配信の開始が予定されている日時。値は ISO 8601YYYY-MM-DDThh:mm:ss.sZ)形式で指定します。YouTube Studio では、開始時間を指定せずに配信を作成できます。この場合、チャンネル所有者がストリーミングを開始するたびに配信が開始されます。このようなブロードキャストの場合、datetime 値は UNIX 時間ゼロに対応しており、API または Creator Studio でこの値を変更することはできません。
snippet.scheduledEndTime datetime
配信の終了が予定されている日時。値は ISO 8601YYYY-MM-DDThh:mm:ss.sZ)形式で指定します。liveBroadcast リソースでこのプロパティの値が指定されていない場合、ブロードキャストは無期限に継続するようにスケジュールされます。同様に、このプロパティの値を指定しない場合、YouTube はブロードキャストを無期限に継続する場合と同様に扱います。
snippet.actualStartTime datetime
配信が実際に開始された日時。この情報は、ブロードキャストの状態が live の場合にのみ利用できます。値は ISO 8601YYYY-MM-DDThh:mm:ss.sZ)形式で指定します。
snippet.actualEndTime datetime
配信が実際に終了した日時。この情報は、ブロードキャストの状態が complete の場合にのみ利用できます。値は ISO 8601YYYY-MM-DDThh:mm:ss.sZ)形式で指定します。
snippet.isDefaultBroadcast boolean
このプロパティは 2020 年 9 月 1 日以降非推奨となります。その時点で、チャンネルでライブ ストリーミングが有効になっている場合、YouTube はデフォルトのストリームとデフォルトの配信の作成を停止します。詳しくは、サポート終了のお知らせをご覧ください。
このプロパティは、このブロードキャストがデフォルトのブロードキャストかどうかを示します。

デフォルトのブロードキャストの仕組み

YouTube チャンネルでライブ配信を有効にすると、デフォルトのストリームと、そのチャンネルのデフォルトのブロードキャストが作成されます。ストリームは、チャンネル所有者が YouTube にライブ動画を送信する方法を定義します。ブロードキャストは、視聴者にデフォルトのストリームを表示するためのものです。チャンネル所有者は、liveStreams.list メソッドと liveBroadcasts.list メソッドを使用して、これらのリソースを識別できます。

チャンネルがデフォルトのストリームで動画のストリーミングを開始すると、動画はチャンネルのデフォルトのブロードキャストで表示されます。ストリーミングが終了すると、YouTube は完了したブロードキャストを YouTube 動画に変換し、その動画に YouTube 動画 ID を割り当てます。

変換が完了すると、動画はチャンネルのアップロード動画のリストに追加されます。配信終了後すぐに動画は視聴できなくなり、配信の遅延時間は配信の実際の長さに比例します。
snippet.liveChatId string
配信の YouTube チャットの ID。この ID により、liveChatMessage リソースのメソッドを使用してチャット メッセージを取得、挿入、削除できます。チャット モデレーターの追加または削除、チャットへの参加の禁止、既存の参加禁止の削除を行うこともできます。
status object
status オブジェクトには、イベントのステータスに関する情報が格納されます。
status.lifeCycleStatus string
ブロードキャストのステータス。ステータスは、API の liveBroadcasts.transition メソッドを使用して更新できます。

このプロパティで有効な値は次のとおりです。
  • complete – ブロードキャストの終了。
  • created – ブロードキャストの設定が不完全であるため、live または testing ステータスに移行する準備ができていませんが、ブロードキャストは作成されており、それ以外の場合は有効です。
  • live – ブロードキャストはアクティブです。
  • liveStarting – ブロードキャストが live ステータスに移行中です。
  • ready – ブロードキャスト設定が完了し、ブロードキャストが live または testing ステータスに移行できる状態。
  • revoked – このブロードキャストは管理者による操作によって削除されました。
  • testStarting – ブロードキャストが testing ステータスに移行中です。
  • testing – ブロードキャストはパートナーにのみ表示されます。
status.privacyStatus string
ブロードキャストのプライバシー ステータス。なお、ブロードキャストは 1 つの YouTube 動画のみを表すため、プライバシー設定は、動画に対してサポートされる設定と同じです。このフィールドを設定するには、ブロードキャスト リソースを変更するか、対応する動画リソースの privacyStatus フィールドを設定します。

このプロパティで有効な値は次のとおりです。
  • private
  • public
  • unlisted
status.recordingStatus string
ブロードキャストの記録ステータス。

このプロパティで有効な値は次のとおりです。
  • notRecording
  • recorded
  • recording
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 は放送局のみが視聴できる特別なストリームでイベント コンテンツをブロードキャストします。放送局はストリームを使用してイベントのコンテンツを確認したり、キューポイントを挿入する最適なタイミングを特定したりできます。

配信に testing ステージを用意する場合や、イベントに配信の遅延を設定したい場合は、この値を true に設定する必要があります。また、このプロパティの値が true の場合は、live 状態に移行する前にブロードキャストを testing 状態に移行する必要があります。(プロパティの値が false の場合、ブロードキャストに testing ステージを含めることはできないため、ブロードキャストを直接 live 状態に移行できます)。

update a broadcast で、API リクエストの part パラメータ値に contentDetails の部分が含まれている場合、このプロパティを設定する必要があります。ただし、insert a broadcast の場合、このプロパティは省略可能です。デフォルト値は true です。

重要: ブロードキャストが testing 状態または live 状態になると、このプロパティを更新することはできません。
contentDetails.monitorStream.broadcastStreamDelayMs unsigned integer
enableMonitorStream プロパティを true に設定している場合、このプロパティによってライブ配信の遅延の長さが決まります。

update a broadcast で、API リクエストの part パラメータ値に contentDetails の部分が含まれている場合、このプロパティを設定する必要があります。ただし、insert a broadcast の場合、このプロパティは省略可能です。デフォルト値は 0 です。この値は、ブロードキャストにブロードキャスト遅延がないことを示します。注: ブロードキャストが testing 状態または live 状態になると、このプロパティを更新することはできません。
contentDetails.monitorStream.embedHtml string
モニター ストリームを再生するプレーヤーを埋め込む HTML コード。
contentDetails.enableEmbed boolean
この設定は、ブロードキャスト動画を埋め込みプレーヤーで再生できるかどうかを示します。enableArchive プロパティを使用して動画をアーカイブした場合、この設定はアーカイブされた動画にも適用されます。

update a broadcast で、API リクエストの part パラメータ値に contentDetails の部分が含まれている場合、このプロパティを設定する必要があります。ただし、insert a broadcast の場合、このプロパティは省略可能です。デフォルト値は true です。

注: ブロードキャストが testing 状態または live 状態になると、このプロパティを更新できなくなります。
contentDetails.enableDvr boolean
この設定により、視聴者が動画の視聴中に DVR コントロールを使用できるかどうかが決まります。DVR コントロールとは、コンテンツを一時停止、巻き戻し、早送りするなどの操作で、動画の再生環境をコントロールできる機能です。このプロパティのデフォルト値は true です。

update a broadcast で、API リクエストの part パラメータ値に contentDetails の部分が含まれている場合、このプロパティを設定する必要があります。ただし、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 リクエストの part パラメータ値に contentDetails の部分が含まれている場合、このプロパティを設定する必要があります。ただし、insert a broadcast の場合、このプロパティは省略可能です。デフォルト値は true です。

重要: 配信終了後すぐに再生を利用できるようにするには、enableDvr プロパティの値を true に設定する必要があります。このプロパティの値を true に設定したものの、enableDvr プロパティを true に設定しなかった場合、アーカイブした動画を再生できるようになるまでに 1 日程度の遅延が生じる可能性があります。

注: ブロードキャストが testing 状態または live 状態になると、このプロパティを更新できなくなります。
contentDetails.enableClosedCaptions boolean
このプロパティは 2015 年 12 月 17 日をもって非推奨となりました。代わりに contentDetails.closedCaptionsType プロパティを使用してください。

この設定は、このブロードキャストで HTTP POST 字幕を有効にするかどうかを指定します。すでにこのプロパティを使用している API クライアントの場合:
  • プロパティ値を true に設定することは、contentDetails.closedCaptionsType プロパティを closedCaptionsHttpPost に設定するのと同等です。
  • プロパティ値を false に設定することは、contentDetails.closedCaptionsType プロパティを closedCaptionsDisabled に設定するのと同等です。
contentDetails.closedCaptionsType string
注: このプロパティは contentDetails.enableClosedCaptions プロパティの代わりに使用されます

このプロパティは、ブロードキャストで字幕が有効になっているかどうかと、有効になっている場合はどのような種類の字幕を提供しているかを示します。
  • closedCaptionsDisabled: ライブ配信で字幕が無効になります。
  • closedCaptionsHttpPost: ライブ配信に関連付けられた取り込み URL に HTTP POST を使用して字幕を送信します。
  • closedCaptionsEmbedded: 字幕は EIA-608 形式や CEA-708 形式を使用して動画ストリームでエンコードされます。
contentDetails.projection string
このブロードキャストのプロジェクション形式。プロパティのデフォルト値は rectangular です。

このプロパティで有効な値は次のとおりです。
  • 360
  • rectangular
contentDetails.enableLowLatency boolean
このブロードキャストを低レイテンシ ストリーミング用にエンコードするかどうかを示します。低レイテンシ ストリームにより、配信を視聴するユーザーに動画が表示されるまでの時間は短縮できますが、ストリームの視聴者の解像度にも影響する場合があります。
contentDetails.latencyPreference string
このブロードキャストに使用するレイテンシ設定を示します。このプロパティは、ultraLow をサポートしていない enableLowLatency の代わりに使用できます。

低レイテンシ ストリームは、ブロードキャストを視聴するユーザーに動画が表示されるまでの時間を短縮できますが、再生の滑らかさにも影響します。

超低レイテンシ ストリームは、視聴者が動画を表示するまでの時間をさらに短縮し、視聴者とのインタラクションを容易にしますが、このプロパティの値が 01 または解像度が高い場合、超低遅延は 0 の値、つまり 1 よりも高い解像度をサポートしていません。


  • normal
  • low
  • ultraLow
contentDetails.enableAutoStart boolean
バインドされた live stream で動画のストリーミングを開始したときに、このブロードキャストを自動的に開始するかどうかを示します。
contentDetails.enableAutoStop boolean
チャンネル所有者が、バインドされた動画ストリームの動画ストリーミングを停止してから、約 1 分後にこのブロードキャストを自動的に停止するかどうかを示します。
statistics object
statistics オブジェクトには、ライブ配信に関する統計情報が格納されます。これらの統計情報の値は配信中に変更されることがあり、配信中にのみ取得できます。
statistics.totalChatCount unsigned long
ブロードキャストに関連付けられたチャット メッセージの合計数。このプロパティとその値は、ブロードキャストがユーザーに表示され、チャット機能が有効になっていて、少なくとも 1 つのメッセージがある場合に存在します。なお、このプロパティでは、ブロードキャストの終了後に値は指定されません。そのため、このプロパティでは、完了したライブ配信のアーカイブされた動画のチャット メッセージ数は識別されません。
monetizationDetails object
monetizationDetails オブジェクトには、広告自動化機能が有効になっているかどうか、ミッドロール広告の挿入が遅延しているかどうかなど、ストリームの収益化の詳細に関する情報が格納されます。

monetizationDetails.cuepointSchedule object
cuepointSchedule オブジェクトは、ブロードキャストの広告自動化設定を指定します。
monetizationDetails.cuepointSchedule.enabled boolean
この値は、ブロードキャストに広告を自動的に挿入するかどうかを決定します。値が true の場合、YouTube はミッドロール広告を自動的にブロードキャストに挿入します。広告掲載のスケジュールは、monetizationDetails.cuepointSchedule オブジェクトの他のフィールドの値によって決まります。
monetizationDetails.cuepointSchedule.pauseAdsUntil datetime
この値は、指定された日時まで YouTube がブロードキャストにミッドロール広告を挿入しないよう指定します。値は ISO 8601YYYY-MM-DDThh:mm:ss.sZ)形式で指定します。広告を一時停止するには、この値を将来の日時に設定する必要があります。また、時間の経過時に広告の一時停止を解除するために、このフィールドの値を近い将来の日時に設定することもできます。
monetizationDetails.cuepointSchedule.scheduleStrategy string
この値は、キューポイントのスケジューリングの際に YouTube が従う戦略を指定します。有効な値は次のとおりです。
  • CONCURRENT: すべての視聴者に対してキューポイントが同時にスケジュールされます
  • NON_CONCURRENT: キューポイントは視聴者ごとに異なる時間にスケジュールされます。このアプローチでは、広告の表示頻度を上げ、視聴者がキューポイントを受信できる場合にキューポイントを受け取ることができます。
monetizationDetails.cuepointSchedule.repeatIntervalSecs unsigned integer
この値には、ブロードキャスト中の自動広告挿入の間隔を秒単位で指定します。たとえば、値が 300 の場合、YouTube は 5 分間隔でミッドロール広告のキューポイントを挿入できます。

この値は、連続するキューポイントの開始から開始までの時間を指定します。つまり、あるキューポイントの終了から次のキューポイントの開始までの間隔は測定されません。