Cómo iniciar transmisiones en vivo de YouTube en dispositivos Android

Este SDK dejó de estar disponible por completo. YouTube ya no la admite ni la mantiene. En su lugar, usa la API del reproductor IFrame de YouTube.

El vínculo directo de YouTube para dispositivos móviles permite que las aplicaciones para Android inicien una transmisión en vivo de YouTube directamente desde un dispositivo móvil. Una app solo debe proporcionar un punto de entrada, como un botón en el que el usuario pueda hacer clic, que inicie el flujo de Mobile Live mediante el mecanismo de intent de Android.

Ejemplo

Este flujo muestra la experiencia del usuario en una app que se vincula directamente con la aplicación de YouTube, adonde llega al usuario en la pantalla de configuración de la transmisión en vivo desde dispositivo móvil.

  1. En primer lugar, el usuario configura la transmisión mediante el título, el modo de privacidad y otras opciones de transmisión.
  2. Luego, el usuario navega a la pantalla Miniatura de la foto para configurar la imagen en miniatura de la transmisión.
  3. Por último, el usuario inicia la transmisión en vivo y transmite la vista desde la cámara frontal o posterior.

Requisitos del dispositivo

Los dispositivos Android deben cumplir con los siguientes requisitos a fin de admitir correctamente la transmisión en vivo de YouTube y el vínculo directo a la transmisión en vivo desde dispositivos móviles:

  • Versión de Android: Marshmallow (API 23) o versiones posteriores
  • Cámara: Al menos una cámara que puede grabar 720p a 30 Hz
  • Micrófono: Micrófono integrado
  • Codificador de audio: Codificador de audio acelerado por hardware capaz de codificar audio mono-PCM de 8 bits a AAC a 44.1 KHz o superior
  • Codificador de video: Codificador de video acelerado por hardware capaz de codificar videos sin procesar con una resolución de 720p a H.264/AVC a 30 Hz o superior
  • App de YouTube instalada: Versión 13.02 o posterior

Especificación de Mobile Live Intent

Para vincular al flujo de transmisión en vivo de YouTube para dispositivos móviles, tu app para Android inicia un Intent. Para iniciar el proceso de transmisión en vivo, el intent inicia una Activity en la aplicación de YouTube.

Formato del intent

Mobile Intent de Mobile usa una string Action personalizada para navegar a la actividad de creación en vivo dentro de la app de YouTube. También especifica el nombre del paquete de la app de YouTube para dispositivos móviles.

  • Acción: "com.google.android.youtube.intent.action.CREATE_LIVE_STREAM"
  • Paquete: "com.google.android.youtube"

Extras de intents

El flujo de configuración de la aplicación de YouTube controla la configuración de la transmisión. Los siguientes extras de intents establecen parámetros asociados con la transmisión en vivo:

Parámetros
Intent.EXTRA_REFERRER Obligatorio: Este parámetro especifica un URI que representa a la aplicación que inicia la actividad de transmisión en vivo. Este valor debe seguir el formato android-app: scheme con un nombre de paquete. El valor permite la atribución y la contabilidad precisas.
Intención.EXTRA_SUBJECT Opcional: Este parámetro proporciona una descripción de texto de la transmisión en vivo. Se coloca en el paquete de extras de intent como una String. El valor se puede usar para anotar la transmisión con un mensaje de marca, como “Transmisión en vivo desde DEVICE”.

Cómo iniciar el flujo de transmisión en vivo

Paso 1: Verifica la compatibilidad

Primero, tu cliente debe confirmar que el intent para dispositivos móviles en vivo se pueda iniciar verificando que la app de YouTube esté instalada en el dispositivo y que la versión de la app de YouTube es compatible con la transmisión en vivo. En la siguiente muestra de código, se definen dos métodos para hacerlo:

  • El método canResolveMobileLiveIntent verifica que el dispositivo admita el intent en vivo para dispositivos móviles.
  • El validateMobileLiveIntent llama al método canResolveMobileLiveIntent en el contexto de una sentencia if-else.
    • Si el dispositivo admite el intent, puede iniciar el flujo de la transmisión en vivo.
    • Si el dispositivo no admite el intent, podría solicitar al usuario que instale o actualice la app de 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 = 
    pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
  return resolveInfo != null && !resolveInfo.isEmpty();
}


private void validateMobileLiveIntent(Context context) {
  if (canResolveMobileLiveIntent(context)) {
    // Launch the live stream Activity
  } else {
    // Prompt user to install or upgrade the YouTube app
  }
}

Paso 2: Inicia la actividad de transmisión en vivo

Para iniciar el flujo de transmisión en vivo, tu app cliente crea e inicia un intent como se muestra en el siguiente ejemplo de código:

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);
}