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

Este SDK dejó de estar disponible por completo. Ya no se admite ni mantiene en YouTube. Usa el API del reproductor IFrameer de YouTube.

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

Ejemplo

Este flujo muestra la experiencia del usuario para una aplicación que se vincula directamente a la aplicación de YouTube, donde el usuario llega a la pantalla de configuración de la transmisión en vivo desde un dispositivo móvil.

  1. Primero, el usuario configura la transmisión y establece el título, el modo de privacidad y otras opciones de transmisión.
  2. A continuación, el usuario navega a la pantalla de la foto en miniatura para establecer una imagen en miniatura para 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 para admitir correctamente la transmisión en vivo de YouTube y el vínculo directo en vivo para dispositivos móviles:

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

Especificación de la intención de transmisión en vivo para dispositivos móviles

Para vincularte al flujo de transmisión en vivo de YouTube para dispositivos móviles, tu app para Android inicia un Intent. La instancia de Intent inicia el proceso de transmisión en vivo iniciando una actividad en la aplicación de YouTube.

Formato del intent

El intent de transmisiones en vivo para dispositivos móviles usa una cadena Action personalizada para navegar a la actividad de creación de transmisiones en vivo en 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"

Elementos adicionales del intent

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

Params
Intent.EXTRA_REFERRER Obligatorio. Este parámetro especifica un URI que representa 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 una atribución y contabilización precisas.
Intent.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 del intent como una String. El valor se puede usar para anotar la transmisión con un mensaje de marca, como "Transmitido en vivo desde DISPOSITIVO".

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

Paso 1: Verifica la compatibilidad

Tu cliente primero debe confirmar que el Mobile Live Intent pueda iniciarse verificando que la app de YouTube esté instalada en el dispositivo y que la versión de la app de YouTube admita 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 sea compatible con el intent de transmisión en vivo desde dispositivos móviles.
  • El validateMobileLiveIntent llama al método canResolveMobileLiveIntent en el contexto de una sentencia if-else.
    • Si el dispositivo admite el intent, podría iniciar el flujo de transmisión en vivo.
    • Si el dispositivo no es compatible con la instancia de Intent, podría solicitarle al usuario que instale o actualice la aplicación 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 indica en la siguiente muestra 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);
}