LiveStreams

liveStream リソースには、YouTube に送信する動画ストリームに関する情報が含まれています。このストリームでは、YouTube ユーザーにブロードキャストされるコンテンツを提供します。作成した liveStream リソースは、1 つ以上の liveBroadcast リソースにバインドできます。

Methods

API は、liveStreams リソースについて次のメソッドをサポートしています。

list
API リクエスト パラメータに一致する動画ストリームのリストを返します。今すぐ試す
挿入
動画ストリームを作成します。この配信では、動画を YouTube に送信して、視聴者に配信することができます。 今すぐ試す
update
動画ストリームを更新します。変更するプロパティを更新できない場合は、適切な設定で新しいストリームを作成する必要があります。今すぐ試す
delete
動画ストリームを削除します。 今すぐ試す

リソース表現

次の JSON 構造は、liveStreams リソースの形式を示しています。

{
 
"kind": "youtube#liveStream",
 
"etag": etag,
 
"id": string,
 
"snippet": {
   
"publishedAt": datetime,
   
"channelId": string,
   
"title": string,
   
"description": string,
   
"isDefaultStream": boolean
 
},
 
"cdn": {
   
"ingestionType": string,
   
"ingestionInfo": {
     
"streamName": string,
     
"ingestionAddress": string,
     
"backupIngestionAddress": string
   
},
   
"resolution": string,
   
"frameRate": string
 
},
 
"status": {
   
"streamStatus": string,
   
"healthStatus": {
     
"status": string,
     
"lastUpdateTimeSeconds": unsigned long,
     
"configurationIssues": [
       
{
         
"type": string,
         
"severity": string,
         
"reason": string,
         
"description": string
       
}
     
]
   
}
 
},
 
"contentDetails": {
   
"closedCaptionsIngestionUrl": string,
   
"isReusable": boolean
 
}
}

プロパティ

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

プロパティ
kind string
API リソースのタイプを識別します。値は youtube#liveStream です。
etag etag
このリソースの Etag。
id string
ストリームを一意に識別するために YouTube が割り当てる ID。
snippet object
snippet オブジェクトには、ストリームに関する基本情報(チャンネル、タイトル、説明など)が含まれています。
snippet.publishedAt datetime
ストリームが作成された日時。値は ISO 8601YYYY-MM-DDThh:mm:ss.sZ)形式で指定します。
snippet.channelId string
YouTube で、ストリーミングを配信しているチャンネルを一意に識別するために使用する ID です。
snippet.title string
ストリームのタイトル。値は 1 ~ 128 文字にする必要があります。
snippet.description string
ストリームの説明。10,000 文字以内で指定してください。
snippet.isDefaultStream boolean
このプロパティは 2020 年 9 月 1 日に非推奨となります。その時点で、チャンネルでライブ配信が有効になっている場合、YouTube はデフォルトのストリームとデフォルトのブロードキャストの作成を停止します。詳しくは、サポート終了のお知らせをご覧ください。
このプロパティは、このストリームがチャンネルのデフォルト ストリームかどうかを示します。

デフォルト ストリームの仕組み

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

チャンネルのデフォルト ストリームは無期限に存在し、開始時間または終了時間は関連付けられず、削除もできません。チャンネル所有者は動画ビットの送信を開始するだけで、ストリーミングが自動的に開始されます。

ストリーミングが終了すると、完了したブロードキャストが YouTube 動画に変換され、その動画に YouTube 動画 ID が割り当てられます。変換が完了すると、動画はアップロードされた動画のリストに追加されます。配信が終了した直後に動画を利用できず、遅延の長さは実際の配信時間と関連しています。
cdn object
cdn オブジェクトは、ライブ配信のコンテンツ配信ネットワーク(CDN)の設定を定義します。これらの設定では、YouTube にコンテンツをストリーミングする方法の詳細を指定します。
cdn.format string
このプロパティは 2016 年 4 月 18 日をもって非推奨となり、2020 年 8 月 17 日をもってサポートが終了します。この日時点でこのプロパティを使用しているリクエストは失敗します。

代わりに、cdn.frameRate プロパティと cdn.resolution プロパティを使用して、フレームレートと解像度を個別に指定します。
cdn.ingestionType string
動画ストリームの転送に使用する方法またはプロトコルです。

このプロパティの有効な値は次のとおりです。
  • dash
  • hls
  • rtmp(RTMPS を含む)
cdn.ingestionInfo object
ingestionInfo オブジェクトには、ストリームを YouTube に送信するために必要な情報が含まれます。
cdn.ingestionInfo.streamName string
YouTube が動画ストリームに割り当てるストリーム名。
cdn.ingestionInfo.ingestionAddress string
RTMP、DASH、または HLS を使用する場合、動画を YouTube にストリーミングする際に使用するメインの取り込み URL です。動画は、この URL にストリーミングする必要があります。

動画ストリームのエンコードに使用するアプリケーションやツールによっては、ストリーム URL とストリーム名を個別に入力することや、
STREAM_URL/STREAM_NAME
という形式で連結する必要があります。
cdn.ingestionInfo.backupIngestionAddress string
RTMP、DASH、または HLS を使用する場合、動画を YouTube にストリーミングする際に使用するバックアップ取り込み URL。ingestionAddress に送信するコンテンツを、この URL に同時にストリーミングすることもできます。
cdn.ingestionInfo.rtmpsIngestionAddress string
RTMPS を使用する場合に、動画を YouTube にストリーミングする際に使用するメインの取り込み URL。動画は、この URL にストリーミングする必要があります。

動画ストリームのエンコードに使用するアプリまたはツールによっては、ストリーム URL とストリーム名を個別に入力することや、
STREAM_URL/STREAM_NAME
という形式で連結する必要があります。
cdn.ingestionInfo.rtmpsBackupIngestionAddress string
RTMPS を使用する場合に、YouTube への動画のストリーミングに使用するバックアップ取り込み URL。
cdn.resolution string
受信動画データの解像度。

このプロパティの有効な値は次のとおりです。
  • 240p
  • 360p
  • 480p
  • 720p
  • 1080p
  • 1440p
  • 2160p
  • variable: この設定を使用すると、ストリーミングした動画の解像度を自動的に検出できます。また、cdn.frameRatevariable に設定する必要があります。
    推奨されるエンコーダの設定については、YouTube ヘルプセンターをご覧ください。
cdn.frameRate string
受信動画データのフレームレート。

このプロパティの有効な値は次のとおりです。
  • 30fps
  • 60fps
  • variable: この設定を使用して、ストリーミングした動画のフレームレートを自動的に検出します。また、cdn.resolutionvariable に設定する必要があります。
    推奨されるエンコーダの設定については、YouTube ヘルプセンターをご覧ください。
status object
status オブジェクトには、ライブ配信のステータスに関する情報が含まれます。
status.streamStatus string
ストリームのステータス。

このプロパティの有効な値は次のとおりです。
  • active – ストリームがアクティブ状態(ユーザーがストリーム経由でデータを受信している状態)
  • created – ストリームは作成されましたが、有効な CDN 設定がありません。
  • error – ストリームにエラー条件が存在します。
  • inactive – ストリームは非アクティブ状態です。つまり、ユーザーはストリーム経由でデータを受信していません。
  • ready – ストリームに有効な CDN 設定があります。
status.healthStatus object
このオブジェクトには、ライブ配信のヘルス ステータスに関する情報が含まれています。この情報は、ストリーミングの問題の特定、診断、解決に使用できます。
status.healthStatus.status string
このストリームのステータス コード。

このプロパティの有効な値は次のとおりです。
  • good - 重大度warning 以下の設定の問題はありません。
  • ok - 重大度error の構成上の問題はありません。
  • bad – 配信の重大度error である問題があります。
  • noData – YouTube のライブ ストリーミング バックエンド サーバーにはストリームの状態に関する情報がありません。
status.healthStatus.lastUpdateTimeSeconds unsigned long
ストリームの健全性が最後に更新された時刻。この値には秒単位の UNIX タイムスタンプが反映されます。
status.healthStatus.configurationIssues[] list
このオブジェクトには、ストリームに影響を与える構成の問題のリストが含まれます。
status.healthStatus.configurationIssues[].type string
ストリームに影響するエラーのタイプを示します。
設定に関する問題
audioBitrateHigh
理由:音声の設定を確認してください
説明:音声ストリームの現在のビットレート(%(actual))が推奨ビットレートよりも高くなっています。オーディオ ストリーム ビットレートは %(expected)s を使用することをおすすめします。
audioBitrateLow
理由:音声の設定を確認してください
説明:音声ストリームの現在のビットレート (%(actual)s) が推奨ビットレートよりも低くなっています。オーディオ ストリーム ビットレートは %(expected)s を使用することをおすすめします。
audioBitrateMismatch
理由:セカンダリ ストリームを確認してください
説明:現在の設定では、動画のメイン ストリームとバックアップ ストリームの音声ビットレートが異なります。同じ音声ビットレートを使用するようにストリームを構成する必要があります。
audioCodec
理由:音声の設定を確認してください
説明:音声ストリームはサポートされていないコーデックによってエンコードされています。ストリームの音声コーデックを、サポートされているコーデック(AAC、MP3)に設定してください。
audioCodecMismatch
理由:セカンダリ ストリームの状態が不良です
説明:現在の設定では、動画のメイン ストリームとバックアップ ストリームが異なるオーディオ コーデックを使用しています。同じオーディオ コーデックを使用するようにストリームを構成する必要があります。
audioSampleRate
理由:音声の設定を確認してください
説明:現在のサンプルレートは %(actual) です。推奨サンプルレートは 44.1 kHz と 48 kHz です。
audioSampleRateMismatch
理由:セカンダリ ストリームの状態が不良です
説明:現在の設定では、動画のメイン ストリームとバックアップ ストリームの音声サンプルレートが異なります。同じ音声サンプルレートになるようにストリームを構成する必要があります。
audioStereoMismatch
理由:セカンダリ ストリームの状態が不良です
説明:現在の設定では、動画のメイン ストリームと代替ストリームの音声チャンネルが異なっています。これらのストリームに同じ音声チャンネルを設定する必要があります。
audioTooManyChannels
理由:音声の設定を確認してください
説明:音声に 3 つ以上のチャンネルがありますが、1 つ(モノラル)または 2 つ(ステレオ)のチャンネルのみがサポートされます。音声チャンネルの数を修正してください。
badContainer
理由:動画の設定が不良です
説明:動画のコンテナ形式を変更してください。この構成では、現在のコンテナの形式が正しくありません。
bitrateHigh
理由:動画の設定を確認してください
説明:ストリームの現在のビットレート (%(actual)s) が推奨ビットレートよりも高くなっています。ストリームのビットレートは %(expected)s を使用することをおすすめします。
bitrateLow
理由:動画の出力が低すぎます
説明:ストリームの現在のビットレート (%(actual)s) が推奨値より低くなっています。ストリームのビットレートは %(expected)s を使用することをおすすめします。
framerateMismatch
理由:セカンダリ ストリームを確認してください
説明:現在の設定では、動画のメイン ストリームとバックアップ ストリームのフレームレートが異なります。同じフレームレートになるようにストリームを構成する必要があります。
frameRateHigh
理由:フレームレートが高すぎます
説明:現在のフレームレートが高すぎます。フレームレートを %(framerate)s fps 以下に設定してください。
gopMismatch
理由:セカンダリ ストリームの状態が不良です
説明:現在の設定では、動画のメイン ストリームとバックアップ ストリームのキーフレーム間隔が異なります。ストリームのキーフレーム間隔が同じになるように構成する必要があります。
gopSizeLong
理由:動画の設定が不良です
説明:4 秒以下のキーフレーム間隔を使用してください。現在、キーフレーム間隔が長すぎるためバッファリングが発生します。現在のキーフレーム間隔は %(actual_gop).1f 秒です。取り込みエラーが発生すると、誤った GOP(Group of Pictures)サイズになってしまう可能性があります。
gopSizeOver
理由:動画の設定を確認してください
説明:4 秒以下のキーフレーム間隔を使用してください。現在、キーフレーム間隔が長すぎるためバッファリングが発生する可能性があります。現在のキーフレーム間隔は %(actual_gop).1f 秒です。取り込みエラーが発生すると、誤った GOP(Group of Pictures)サイズになってしまう可能性があります。
gopSizeShort
理由:動画の設定を確認してください
説明:GOP(Group of Pictures)サイズが非常に小さいため、画像の品質が低下する可能性があります。推奨されるキーフレーム間隔は 4 秒です。現在のキーフレーム間隔は %(actual_gop).1f 秒です。取り込みエラーが発生すると、誤った GOP サイズになってしまう可能性があります。
multipleAudioStreams
理由:音声の設定を確認してください
説明:取り込みストリームに複数の音声ストリームが含まれています。含めることができる音声ストリームは 1 つのみです。
multipleVideoStreams
理由:動画の設定が不良です
説明:取り込みストリームに複数の動画ストリームが含まれています。含めることができる音声ストリームは 1 つのみです。
noAudioStream
理由:音声がない
説明:取り込みストリームに音声ストリームが含まれていません。1 つの音声ストリームを含める必要があります。
noVideoStream
理由:動画がありません
説明:取り込みストリームに動画ストリームが含まれていません。1 つの音声ストリームを含める必要があります。
openGop
理由:動画の設定が不良です
説明:動画エンコーダの設定を「クローズされた写真グループ(GOP)」に変更してください。「オープン GOP」に設定されているようですが、YouTube ではサポートされていません。
resolutionMismatch
理由:セカンダリ ストリームの状態が不良です
説明:現在の設定では、動画のメイン ストリームとバックアップ ストリームの解像度が異なります。ストリームの解像度が同じになるように構成する必要があります。
videoBitrateMismatch
理由:セカンダリ ストリームを確認してください
説明:現在の設定では、動画のメイン ストリームとバックアップ ストリームのビットレートが異なります。ストリームの動画ビットレートが同じになるように設定する必要があります。
videoCodec
理由:動画の設定が不良です
説明:動画はサポートされていないコーデックによってエンコードされています。ストリームの動画コーデックを、サポートされているコーデック(H.264)に設定してください。
videoCodecMismatch
理由:セカンダリ ストリームの状態が不良です
説明:現在の設定では、動画のメイン ストリームとバックアップ ストリームが異なる動画コーデックを使用しています。同じ動画コーデックが含まれるようにストリームを設定する必要があります。
videoIngestionStarved
理由:動画の出力が低すぎます
説明:スムーズなストリーミングを維持するのに十分な動画が YouTube に届いていません。そのため、視聴者はバッファリングを経験します。
videoInterlaceMismatch
理由:セカンダリ ストリームの状態が不良です
説明:現在の設定では、動画のメイン ストリームとバックアップ ストリームのインターレースが異なります。ストリームが同じインターレースを持つように構成する必要があります。
videoProfileMismatch
理由:セカンダリ ストリームの状態が不良です
説明:現在の設定では、動画のメイン ストリームとバックアップ ストリームのプロフィールが異なります。ストリームが同じプロファイルを持つように構成する必要があります。
videoResolutionSuboptimal
理由:解像度を確認してください
説明:動画の解像度を確認してください。現在の解像度は (%(actual_w)dx%(actual_h)d) で、最適ではありません。
videoResolutionUnsupported
理由:サポートされていない解像度です
説明:動画の解像度を変更する必要があります。現在の解像度は (%(actual_w)dx%(actual_h)d) ですが、この構成ではサポートされていません。予想される動画の解像度は (%(expected_w)dx%(expected_h)d) です。
status.healthStatus.configurationIssues[].severity string
ストリームにおける問題の重大度を示します。

このプロパティの有効な値は次のとおりです。
  • info - この動画は、パフォーマンスに悪影響を与えることなく視聴者に配信されます。
  • warning - 動画は視聴者にブロードキャストされますが、パフォーマンスは最適ではありません。
  • error – 動画を視聴者に配信できない。
status.healthStatus.configurationIssues[].reason string
問題の簡単な説明。ライブ ストリーム リソースの設定に関する問題のドキュメントでは、各設定の問題タイプに関連する理由を示しています。
status.healthStatus.configurationIssues[].description string
問題の詳細な説明。可能であれば、説明に問題の解決方法が記載されています。ライブ ストリーム リソースの設定に関する問題のドキュメントに、設定に関するすべての問題の種類と関連する説明が記載されています。
contentDetails object
content_details オブジェクトには、ストリームの字幕取り込み URL など、ストリームに関する情報が格納されます。
contentDetails.closedCaptionsIngestionUrl string
このストリームの字幕を送信する取り込み URL です。
contentDetails.isReusable boolean
ストリームが再利用可能かどうかを示します。つまり、複数のブロードキャストにバインドできることを意味します。複数の異なる配信で異なるブロードキャストが配信される場合、放送局が同じストリームを再利用することがよくあります。

この値を false に設定すると、ストリームは再利用できません。つまり、1 つのブロードキャストにバインドのみできます。再利用可能なストリームと再利用可能なストリームは、次の点で異なります。
  • 再利用できないストリームは 1 つのブロードキャストにのみバインドできます。
  • 再利用できないストリームは、配信終了後の自動プロセスによって削除されることがあります。
  • liveStreams.list メソッドを呼び出して mine パラメータを true に設定した場合、再利用可能なストリームは一覧表示されません。このメソッドを使用して、再利用できないストリームのリソースを取得する唯一の方法は、id パラメータを使用してストリームを識別することです。