YouTube モバイルライブのディープリンクを使用すると、Android アプリからモバイル デバイスで直接 YouTube ライブ配信を開始できます。アプリは、Android インテント メカニズムを使用して Mobile Live フローを開始する、ユーザーがクリックできるボタンなどのエントリ ポイントを提供するだけで済みます。
例
このフローは、YouTube アプリにディープリンクするアプリのユーザー エクスペリエンスを示しています。ユーザーはモバイル ライブ配信の設定画面に移動します。
- まず、ユーザーがタイトル、プライバシー モード、その他のストリーム オプションを設定して、ストリームを構成します。
- 次に、ユーザーは [サムネイル写真] 画面に移動して、ストリームのサムネイル画像を設定します。
- 最後に、ユーザーがライブ配信を開始し、前面カメラまたは背面カメラからの映像をブロードキャストします。

デバイスの要件
Android デバイスが YouTube ライブ配信とモバイルライブ ディープリンクを適切にサポートするには、次の要件を満たす必要があります。
- Android リリース: Marshmallow(API 23)以降
- カメラ: 720p、30 Hz 以上で録画できるカメラが 1 台以上
- マイク: オンボード マイク
- オーディオ エンコーダ: 8 ビット PCM モノラル音声を 44.1KHz 以上で AAC にエンコードできるハードウェア アクセラレーション オーディオ エンコーダ
- 動画エンコーダ: 720P の未加工動画を 30 Hz 以上で H.264/AVC にエンコードできるハードウェア アクセラレーション動画エンコーダ
- YouTube アプリがインストールされている: バージョン 13.02 以降
モバイルの Live Intent の仕様
YouTube モバイル ライブ配信フローにリンクするには、Android アプリで Intent を起動します。このインテントは、YouTube アプリでアクティビティを開始して、ライブ配信プロセスを開始します。
インテント形式
モバイルライブ インテントは、カスタムの Action 文字列を使用して、YouTube アプリ内のライブ作成アクティビティに移動します。また、YouTube モバイルアプリのパッケージ名も指定します。
- アクション:
"
com.google.android.youtube.intent.action.CREATE_LIVE_STREAM" - パッケージ:
"
com.google.android.youtube"
インテント エクストラ
YouTube アプリのセットアップ フローでストリームの設定を行います。次のインテント エクストラは、ライブ配信に関連付けられたパラメータを設定します。
| パラメータ | |
|---|---|
| Intent.EXTRA_REFERRER | 必須。このパラメータは、ライブ ストリーミング Activity を起動するアプリを表す URI を指定します。この値は、パッケージ名を含む android-app: scheme 形式にする必要があります。この値により、正確なアトリビューションとアカウンティングが可能になります。 |
| Intent.EXTRA_SUBJECT | (省略可)このパラメータは、ライブ配信のテキストによる説明を提供します。これは、String としてインテント エクストラ バンドルに配置されます。この値は、「DEVICE からライブ配信中」などのブランド メッセージをストリームに付加するために使用できます。 |
ライブ配信フローの開始
次の 2 つの手順を完了して、デバイスの互換性を確認し、Android アプリからモバイル ライブ アクティビティを開始します。
ステップ 1: サポートを確認する
クライアントは、まず、YouTube アプリがデバイスにインストールされていること、および YouTube アプリのバージョンがライブ配信をサポートしていることを確認して、モバイル ライブ インテントを起動できることを確認する必要があります。次のコードサンプルでは、これを行う 2 つのメソッドを定義しています。
canResolveMobileLiveIntentメソッドは、デバイスが Mobile Live Intent をサポートしていることを確認します。validateMobileLiveIntentは、if-elseステートメントのコンテキストでcanResolveMobileLiveIntentメソッドを呼び出します。- デバイスがインテントをサポートしている場合、デバイスはライブ配信フローを起動できます。
- デバイスがインテントをサポートしていない場合、デバイスは YouTube アプリのインストールまたはアップグレードをユーザーに求めることができます。
private boolean canResolveMobileLiveIntent(Context context) {
Intent intent = new Intent("com.google.android.youtube.intent.action.CREATE_LIVE_STREAM")
.setPackage("com.google.android.youtube");
PackageManager pm = context.getPackageManager();
List<ResolveInfo> resolveInfo =
pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
return resolveInfo != null && !resolveInfo.isEmpty();
}
private void validateMobileLiveIntent(Context context) {
if (canResolveMobileLiveIntent(context)) {
// Launch the livestream Activity
} else {
// Prompt user to install or upgrade the YouTube app
}
}
Android 11(API レベル 30)以降をターゲットとするアプリは、PackageManager が YouTube アプリをクエリできるように、AndroidManifest.xml ファイルでパッケージの公開設定要件を宣言する必要があります。
<queries>
<package android:name="com.google.android.youtube" />
<intent>
<action android:name="com.google.android.youtube.intent.action.CREATE_LIVE_STREAM" />
</intent>
</queries>
ステップ 2: ライブ配信アクティビティを開始する
ライブ ストリーミング フローを開始するには、次のコードサンプルに示すように、クライアント アプリでインテントを作成して起動します。
private Intent createMobileLiveIntent(Context context, String description) {
Intent intent = new Intent("com.google.android.youtube.intent.action.CREATE_LIVE_STREAM")
.setPackage("com.google.android.youtube");
Uri referrer = new Uri.Builder()
.scheme("android-app")
.appendPath(context.getPackageName())
.build();
intent.putExtra(Intent.EXTRA_REFERRER, referrer);
if (!TextUtils.isEmpty(description)) {
intent.putExtra(Intent.EXTRA_SUBJECT, description);
}
return intent;
}
private void startMobileLive(Context context) {
Intent mobileLiveIntent = createMobileLiveIntent(context, "Streaming via ...");
startActivity(mobileLiveIntent);
}