この API で、ライブ配信を「子ども向け」としてマークできるようになりました。また、
liveBroadcast リソースに、そのライブ配信の「子ども向け」ステータスを識別するプロパティが含まれるようになりました。YouTube API サービス利用規約とデベロッパー ポリシーも 2020 年 1 月 10 日に更新されました。詳細については、YouTube Live Streaming API サービスと YouTube API サービスの利用規約の改訂履歴をご覧ください。liveBroadcast リソースは、YouTube でライブ動画を使用してストリーミングされるイベントを表します。
メソッド
この API は、liveBroadcasts リソースに対して次のメソッドをサポートしています。
- list
- API リクエスト パラメータに一致する YouTube ブロードキャストのリストを返します。今すぐ試す
- insert
- ブロードキャストを作成します。今すぐ試す
- update
- ブロードキャストを更新します。たとえば、
liveBroadcastリソースのcontentDetailsオブジェクトで定義されたブロードキャスト設定を変更できます。ぜひ、こちらからお試しください。 - delete
- ブロードキャストを削除します。今すぐ試す
- bind
- YouTube ブロードキャストをストリームにバインドするか、ブロードキャストとストリーム間の既存のバインディングを削除します。ブロードキャストは 1 つの動画ストリームにのみバインドできますが、動画ストリームは複数のブロードキャストにバインドできます。今すぐ試す
- transition
- YouTube ライブ配信のステータスを変更し、新しいステータスに関連付けられたプロセスを開始します。たとえば、ブロードキャストのステータスを
testingに移行すると、YouTube はそのブロードキャストのモニターストリームへの動画の送信を開始します。このメソッドを呼び出す前に、ブロードキャストにバインドされたストリームのstatus.streamStatusプロパティの値がactiveであることを確認する必要があります。ぜひ、こちらからお試しください。 - cuepoint
- ライブ配信にキューポイントを挿入します。キューポイントによってミッドロール挿入点がトリガーされることがあります。
リソース表現
次の 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,
"availabilityConfig": {
"globalConfig": {
"excludedRegionCodes": [
string
],
"interval": {
"startTime": datetime,
"endTime": datetime
}
},
"regionsConfig": {
"regionIntervals": [
{
"regionCode": string,
"interval": {
"startTime": datetime,
"endTime": datetime
}
}
]
}
}
},
"statistics": {
"totalChatCount": unsigned long
},
"monetizationDetails": {
"adsMonetizationStatus": string,
"eligibleForAdsMonetization": boolean,
"cuepointSchedule": {
"enabled": boolean,
"pauseAdsUntil": datetime,
"ytOptimizedCuepointConfig": string,
"creatorCuepointConfig": {
"scheduleStrategy": string,
"repeatIntervalSecs": unsigned integer
}
}
}
}プロパティ
次の表は、このリソースで使用されているプロパティの定義を示したものです。
| プロパティ | |
|---|---|
kind |
stringAPI リソースのタイプを識別します。値は youtube#liveBroadcast になります。 |
etag |
etagこのリソースの Etag。 |
id |
stringブロードキャストを一意に識別するために YouTube が割り当てる ID。 |
snippet |
objectsnippet オブジェクトには、イベントのタイトル、説明、開始時間、終了時間など、イベントに関する基本的な詳細が含まれます。 |
snippet.publishedAt |
datetimeブロードキャストが YouTube のライブ配信スケジュールに追加された日時。値は ISO 8601( YYYY-MM-DDThh:mm:ss.sZ)形式で指定します。 |
snippet.channelId |
stringYouTube がブロードキャストを公開しているチャンネルを一意に識別するために使用する ID。 |
snippet.title |
stringブロードキャストのタイトル。ブロードキャストは 1 つの YouTube 動画を表します。このフィールドは、ブロードキャスト リソースを変更するか、対応する動画リソースの title フィールドを設定することで設定できます。 |
snippet.description |
stringブロードキャストの説明。 title と同様に、このフィールドは、ブロードキャスト リソースを変更するか、対応する動画リソースの description フィールドを設定することで設定できます。 |
snippet.thumbnails |
objectブロードキャストに関連付けられたサムネイル画像のマップ。このオブジェクト内のネストされた各オブジェクトのキーはサムネイル画像の名前で、値はサムネイルに関するその他の情報を含むオブジェクトです。 |
snippet.thumbnails.(key) |
object有効なキー値は次のとおりです。
|
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)形式で指定します。クリエイター ツールでは、開始日時を設定せずにブロードキャストを作成できます。この場合、チャンネル所有者が配信を開始すると、ブロードキャストが開始されます。これらのブロードキャストの場合、datetime の値は Unix エポック タイムのゼロに対応しており、この値は API またはクリエイター ツールで変更できません。 |
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 はチャンネルのデフォルトのストリームとデフォルトのブロードキャストを作成します。ストリームはチャンネル所有者がライブ動画を YouTube に送信する方法を定義し、ブロードキャストは視聴者がデフォルトのストリームを視聴する方法を定義します。チャンネル所有者は、 liveStreams.list メソッドと liveBroadcasts.list メソッドを使用してこれらのリソースを特定できます。チャンネルがデフォルト ストリームへの動画のストリーミングを開始すると、その動画はチャンネルのデフォルト ブロードキャストに表示されます。ストリームが終了すると、YouTube は完了したブロードキャストを YouTube 動画に変換し、その動画に YouTube 動画 ID を割り当てます。 変換が完了すると、動画はチャンネルのアップロード済み動画のリストに含まれます。動画は配信終了後すぐに利用できるわけではなく、遅延の長さは配信の実際の長さに比例します。 |
snippet.liveChatId |
stringブロードキャストの YouTube ライブチャットの ID。この ID を使用すると、 liveChatMessage リソースのメソッドを使用して、チャット メッセージの取得、挿入、削除を行うことができます。チャット モデレーターの追加や削除、ユーザーのライブチャットへの参加禁止、既存の禁止措置の解除も可能です。 |
status |
objectstatus オブジェクトには、イベントのステータスに関する情報が含まれます。 |
status.lifeCycleStatus |
stringブロードキャストのステータス。ステータスは、API の liveBroadcasts.transition メソッドを使用して更新できます。このプロパティの有効な値は次のとおりです。
|
status.privacyStatus |
stringブロードキャストのプライバシー ステータス。ブロードキャストは 1 つの YouTube 動画を表すため、プライバシー設定は動画でサポートされているものと同じです。また、ブロードキャスト リソースを変更するか、対応する動画リソースの privacyStatus フィールドを設定することで、このフィールドを設定することもできます。このプロパティの有効な値は次のとおりです。
|
status.recordingStatus |
stringブロードキャストの記録ステータス。 このプロパティの有効な値は次のとおりです。
|
status.madeForKids |
booleanこの値は、ブロードキャストが子ども向けとして指定されているかどうかを示します。このプロパティ値は読み取り専用です。 |
status.selfDeclaredMadeForKids |
booleanliveBroadcasts.insert リクエストで、このプロパティを使用すると、チャンネル所有者はブロードキャストを子ども向けとして指定できます。liveBroadcasts.list リクエストでは、チャンネル所有者が API リクエストを承認した場合にのみ、プロパティ値が返されます。 |
contentDetails |
objectcontentDetails オブジェクトには、イベントの動画コンテンツに関する情報が含まれます。たとえば、コンテンツを埋め込み動画プレーヤーで表示できるかどうか、コンテンツがアーカイブされてイベント終了後に視聴可能になるかどうかなどです。 |
contentDetails.boundStreamId |
stringこの値は、ブロードキャストにバインドされた live stream を一意に識別します。 |
contentDetails.boundStreamLastUpdateTimeMs |
datetimeboundStreamId で参照されるライブ配信が最後に更新された日時。 |
contentDetails.monitorStream |
objectmonitorStream オブジェクトには、ブロードキャスターがブロードキャスト ストリームを一般公開する前にイベント コンテンツを確認するために使用できる、モニター ストリームに関する情報が含まれています。 |
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 integerenableMonitorStream プロパティを 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このブロードキャストに使用するレイテンシ設定を示します。このプロパティは enableLowLatency の代わりに使用できます。enableLowLatency は ultraLow をサポートしていません。低レイテンシ ストリームを使用すると、ブロードキャストを視聴しているユーザーに動画が表示されるまでの時間を短縮できますが、再生の滑らかさに影響する可能性もあります。 超低レイテンシ ストリームを使用すると、視聴者に動画が表示されるまでの時間をさらに短縮できるため、視聴者とのやり取りが容易になりますが、超低レイテンシではクローズド キャプションや 1080p を超える解像度はサポートされていません。 このプロパティの有効な値は次のとおりです。
|
contentDetails.enableAutoStart |
booleanバインドされた live stream で動画のストリーミングを開始したときに、このブロードキャストを自動的に開始するかどうかを示します。 |
contentDetails.enableAutoStop |
booleanこのブロードキャストが、チャンネル所有者がバインドされた動画ストリームで動画のストリーミングを停止してから約 1 分後に自動的に停止するかどうかを示します。 |
contentDetails.availabilityConfig |
objectブロードキャストの可用性構成。特定の地域の可用性を設定したり、特定の地域をブロックしたりするために使用されます。これは省略可能です。設定しない場合、適用されません。 |
contentDetails.availabilityConfig.globalConfig |
objectブロードキャストのグローバルな可用性構成。動画は、 excludedRegionCodes リストで指定された地域を除くすべての地域で利用できます。 |
contentDetails.availabilityConfig.globalConfig.excludedRegionCodes |
list (string)動画がブロックされている地域のリスト。 |
contentDetails.availabilityConfig.globalConfig.interval |
object動画がブロックされていないすべての地域で利用できるデフォルトの時間枠。注: このプロパティは、予定されているライブブロードキャストやアクティブなライブブロードキャストではサポートされていません。 |
contentDetails.availabilityConfig.globalConfig.interval.startTime |
datetime動画が視聴可能になる日時。指定しない場合、動画はすでに利用可能です。値は ISO 8601( YYYY-MM-DDThh:mm:ss.sZ)形式で指定します。 |
contentDetails.availabilityConfig.globalConfig.interval.endTime |
datetime動画の視聴が停止される日時。指定しない場合、動画は永続的に利用できます。指定した開始時間と終了時間は、5 年以上先の時間にはできません。値は ISO 8601( YYYY-MM-DDThh:mm:ss.sZ)形式で指定します。 |
contentDetails.availabilityConfig.regionsConfig |
objectブロードキャストの地域別の提供状況の設定。この動画は、指定された地域でのみ視聴できます。 |
contentDetails.availabilityConfig.regionsConfig.regionIntervals |
list (object)動画が利用可能な地域と時間帯のリスト。リージョンが複数回指定されている場合は、すべての間隔の和集合が使用されます。 |
contentDetails.availabilityConfig.regionsConfig.regionIntervals.regionCode |
string動画が利用可能な地域。 |
contentDetails.availabilityConfig.regionsConfig.regionIntervals.interval |
object指定された地域で動画を視聴できる期間。注: このプロパティは、予定されているライブブロードキャストやアクティブなライブブロードキャストではサポートされていません。 |
contentDetails.availabilityConfig.regionsConfig.regionIntervals.interval.startTime |
datetime指定された地域で動画が利用可能になる日時。指定しない場合、動画はすでに利用可能です。値は ISO 8601( YYYY-MM-DDThh:mm:ss.sZ)形式で指定します。 |
contentDetails.availabilityConfig.regionsConfig.regionIntervals.interval.endTime |
datetime指定された地域で動画の配信が停止される日時。指定しない場合、動画は永続的に利用できます。指定した開始時間と終了時間は、5 年以上先の時間にはできません。値は ISO 8601( YYYY-MM-DDThh:mm:ss.sZ)形式で指定します。 |
statistics |
objectstatistics オブジェクトには、ライブ配信に関連する統計情報が含まれます。これらの統計情報の値はブロードキャスト中に変更される可能性があり、ブロードキャストがライブ配信中の場合にのみ取得できます。 |
statistics.totalChatCount |
unsigned longブロードキャストに関連付けられているチャット メッセージの総数。ブロードキャストがユーザーに表示され、ライブチャット機能が有効になっていて、メッセージが 1 つ以上ある場合、プロパティとその値が存在します。このプロパティは、ブロードキャストの終了後に値を指定しません。そのため、このプロパティでは、完了したライブ配信のアーカイブ動画のチャット メッセージ数は特定できません。 |
monetizationDetails |
objectmonetizationDetails オブジェクトには、広告自動化ツールがオンになっているかどうか、ミッドロール広告の挿入が遅延しているかどうかなど、ストリームの収益化に関する詳細情報が含まれます。 |
monetizationDetails.adsMonetizationStatus |
stringこのプロパティは、動画ブロードキャストでミッドロール広告が有効になっているかどうかを示します。有効な値は on と off です。 |
monetizationDetails.eligibleForAdsMonetization |
stringこのプロパティは、動画ブロードキャストがミッドロール広告の対象かどうかを示します。既存の申し立てがある場合や、チャンネルで収益化が設定されていない場合など、さまざまな理由でブロードキャストが対象外になることがあります。 |
monetizationDetails.cuepointSchedule |
objectcuepointSchedule オブジェクトは、ブロードキャストの広告自動化設定を指定します。 |
monetizationDetails.cuepointSchedule.enabled |
booleanこの値は、ブロードキャストに広告が自動的に挿入されるかどうかを決定します。値が true の場合、YouTube はブロードキャストにミッドロール広告を自動的に挿入します。広告の配信スケジュールは、monetizationDetails.cuepointSchedule オブジェクトの他のフィールドの値によって決まります。 |
monetizationDetails.cuepointSchedule.pauseAdsUntil |
datetimeこの値は、指定された日時まで YouTube がブロードキャストにミッドロール広告を挿入しないことを指定します。値は ISO 8601(YYYY-MM-DDThh:mm:ss.sZ)形式で指定します。広告を一時停止するには、値を将来の日時に設定する必要があります。広告の再開には、過去の日時または空の値に設定することもできます。 |
monetizationDetails.cuepointSchedule.ytOptimizedCuepointConfig |
stringこのフィールドは、自動挿入される広告キューポイントの選択オプションを指定します。このフィールドでは、次の 3 つのモードのいずれかを指定できます。
|
monetizationDetails.cuepointSchedule.creatorCuepointConfig |
objectcreatorCuepointConfig オブジェクトは、広告自動化オプションを指定します。このオプションを使用すると、クリエイターはミッドロールの表示方法を選択できます。 |
monetizationDetails.cuepointSchedule.creatorCuepointConfig.scheduleStrategy |
stringこの値は、キューポイントのスケジュール設定で YouTube が従うべき戦略を指定します。有効な値は次のとおりです。
|
monetizationDetails.cuepointSchedule.creatorCuepointConfig.repeatIntervalSecs |
unsigned integerこの値は、ブロードキャスト中の自動広告挿入の間隔(秒単位)を指定します。たとえば、値が 360 の場合、YouTube は 6 分間隔でミッドロール広告のキューポイントを挿入できます。注:
|