この 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 8601( YYYY-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 は次のとおりです。
|
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 )形式で指定します。YouTube 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
このプロパティは 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 メソッドを使用して更新できます。このプロパティで有効な値は次のとおりです。
|
status.privacyStatus |
string ブロードキャストのプライバシー ステータス。なお、ブロードキャストは 1 つの 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 は放送局のみが視聴できる特別なストリームでイベント コンテンツをブロードキャストします。放送局はストリームを使用してイベントのコンテンツを確認したり、キューポイントを挿入する最適なタイミングを特定したりできます。 配信に 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 クライアントの場合:
|
contentDetails.closedCaptionsType |
string 注: このプロパティは contentDetails.enableClosedCaptions プロパティの代わりに使用されます。このプロパティは、ブロードキャストで字幕が有効になっているかどうかと、有効になっている場合はどのような種類の字幕を提供しているかを示します。
|
contentDetails.projection |
string このブロードキャストのプロジェクション形式。プロパティのデフォルト値は rectangular です。このプロパティで有効な値は次のとおりです。
|
contentDetails.enableLowLatency |
boolean このブロードキャストを低レイテンシ ストリーミング用にエンコードするかどうかを示します。低レイテンシ ストリームにより、配信を視聴するユーザーに動画が表示されるまでの時間は短縮できますが、ストリームの視聴者の解像度にも影響する場合があります。 |
contentDetails.latencyPreference |
string このブロードキャストに使用するレイテンシ設定を示します。このプロパティは、 ultraLow をサポートしていない enableLowLatency の代わりに使用できます。低レイテンシ ストリームは、ブロードキャストを視聴するユーザーに動画が表示されるまでの時間を短縮できますが、再生の滑らかさにも影響します。 超低レイテンシ ストリームは、視聴者が動画を表示するまでの時間をさらに短縮し、視聴者とのインタラクションを容易にしますが、このプロパティの値が 01 または解像度が高い場合、超低遅延は 0 の値、つまり 1 よりも高い解像度をサポートしていません。
|
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 8601(YYYY-MM-DDThh:mm:ss.sZ)形式で指定します。広告を一時停止するには、この値を将来の日時に設定する必要があります。また、時間の経過時に広告の一時停止を解除するために、このフィールドの値を近い将来の日時に設定することもできます。 |
monetizationDetails.cuepointSchedule.scheduleStrategy |
string この値は、キューポイントのスケジューリングの際に YouTube が従う戦略を指定します。有効な値は次のとおりです。
|
monetizationDetails.cuepointSchedule.repeatIntervalSecs |
unsigned integer この値には、ブロードキャスト中の自動広告挿入の間隔を秒単位で指定します。たとえば、値が 300 の場合、YouTube は 5 分間隔でミッドロール広告のキューポイントを挿入できます。この値は、連続するキューポイントの開始から開始までの時間を指定します。つまり、あるキューポイントの終了から次のキューポイントの開始までの間隔は測定されません。 |