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 つの動画ストリームにのみバインドできますが、1 つの動画ストリームは複数のブロードキャストにバインドできます。今すぐ試す
transition
YouTube ライブ配信のステータスを変更し、新しいステータスに関連するプロセスを開始します。たとえば、ブロードキャストのステータスを testing に移行すると、そのブロードキャストのモニタリング ストリームへの動画送信が開始されます。このメソッドを呼び出す前に、ブロードキャストにバインドされているストリームの 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
  }
}

プロパティ

次の表は、このリソースで使用されているプロパティの定義を示したものです。

プロパティ
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)形式で指定します。Creator 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 動画 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 状態に移行できます)。

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

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

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

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

注: ブロードキャストが testing または live の状態になると、このプロパティを更新できません。
contentDetails.enableDvr boolean
視聴者は、動画の視聴中に DVR コントロールを使用できるかどうかを指定します。DVR コントロールを使用すると、視聴者はコンテンツを一時停止、巻き戻し、早送りして、動画の再生エクスペリエンスを制御できます。このプロパティのデフォルト値は true です。

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

重要: ブロードキャストの直後に再生できるようにするには、値を true に設定し、enableArchive プロパティの値を true に設定する必要があります。また、ブロードキャストが testing または live 状態になると、このプロパティを更新できません。
contentDetails.recordFromStart boolean
この設定は、イベントのステータスがライブに変更されると、YouTube が自動的にブロードキャストの録画を開始するかどうかを示します。

このプロパティのデフォルト値は true です。ブロードキャスト チャンネルでライブ配信の録画を無効にできる場合にのみ、false に設定できます。

チャンネルに録画を無効にする権限がなく、recordFromStart プロパティを false に設定してブロードキャストを挿入しようとすると、API は Forbidden エラーを返します。また、チャンネルにこの権限がなく、ブロードキャストを更新して recordFromStart プロパティを false に設定しようとすると、API は modificationNotAllowed エラーを返します。

API リクエストの part パラメータ値に contentDetails 部分が含まれる場合、update a broadcast でこのプロパティを設定する必要があります。ただし、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: HTTP POST で、ライブ配信に関連付けられた取り込み URL に字幕を送信します。
  • closedCaptionsEmbedded: 字幕は EIA-608 形式や CEA-708 形式を使用して、動画ストリーム内でエンコードされます。
contentDetails.projection string
このブロードキャストの投影形式。プロパティのデフォルト値は rectangular です。

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

低レイテンシのストリームでは、ユーザーがブロードキャストを視聴している時間が短縮されますが、再生の滑らかさに影響する可能性があります。

超低レイテンシのストリームにより、視聴者に対する動画の表示時間がさらに短縮され、
    非常に低い値で字幕がキャプチャされることはありません
  • normal
  • low
  • ultraLow
contentDetails.enableAutoStart boolean
バインドされている live stream で動画のストリーミングを開始したときに、このブロードキャストを自動的に開始するかどうかを指定します。
contentDetails.enableAutoStop boolean
チャンネル所有者がバインドされた動画ストリームでの動画のストリーミングを停止してから約 1 分後に、このブロードキャストを自動的に停止するかどうかを示します。
statistics object
statistics オブジェクトには、ライブ配信に関する統計情報が格納されます。これらの統計情報の値は配信中に変更され、配信の期間中にのみ取得できます。
statistics.totalChatCount unsigned long
配信に関連するチャット メッセージの合計数。このプロパティは、ブロードキャストがユーザーに表示され、チャット機能が有効で、メッセージが少なくとも 1 つある場合に存在します。このプロパティでは、ブロードキャストの終了後に値は指定されません。そのため、このプロパティでは、ライブ配信のアーカイブが済んだ動画に対するチャット メッセージの数は特定されません。