Aplicación de YouTube para Android Reproducir intención de video

7 minutos de lectura

Aplicacion de YouTube para Android Reproducir intencion de video
isaac waller

Creé una aplicación donde puedes descargar videos de YouTube para Android. Ahora, lo quiero para que si reproduces un video en la aplicación nativa de YouTube, también puedas descargarlo. Para hacer esto, necesito saber el Intent que la aplicación nativa de YouTube muestra para reproducir la aplicación de YouTube.
Podría hacer esto fácilmente si tuviera el programa de YouTube en mi emulador, así que mi primera pregunta es:
1. ¿Puedo descargar la aplicación de YouTube para mi emulador o…?
2. ¿Cuál es la intención utilizada cuando el usuario selecciona un video para reproducirlo?

  • Oye, también estoy tratando de hacer una aplicación para descargar videos de YouTube. Entonces, quiero saber si tengo que obtener alguna clave de API para eso o simplemente puedo usar webview en mi aplicación. @ÁSPID

    – Jaydip Kalkani

    15 de marzo de 2018 a las 8:04

1641948716 65 ¿Cuando se debe usar RxJava Observable y cuando simplemente Callback
Roger Garzón Nieto

Y que tal esto:

public static void watchYoutubeVideo(Context context, String id){
    Intent appIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube:" + id));
    Intent webIntent = new Intent(Intent.ACTION_VIEW,
                Uri.parse("http://www.youtube.com/watch?v=" + id));
    try {
        context.startActivity(appIntent);
    } catch (ActivityNotFoundException ex) {
        context.startActivity(webIntent);
    }
}  

  • Props para admitir la aplicación de YouTube si está disponible y volver al navegador web si es necesario. Para aquellos que vienen a esta pregunta, esta es la respuesta a utilizar.

    – Lucas Sapan

    30 de mayo de 2015 a las 22:04

  • Cómo iniciar la aplicación de YouTube para buscar a través de una palabra clave, por ejemplo. quiero que se inicie la aplicación de youtube y luego en esa búsqueda de “steve jobs”

    – Rusheel Jain

    13 de septiembre de 2015 a las 9:20

  • @RusheelJain eso sería un problema nuevo. Lo que haría sería buscar “texto de búsqueda de intención de YouTube de Android” o algo así.

    – voghDev

    1 oct 2015 a las 9:23

  • En mi humilde opinión, esta debería ser la respuesta aceptada. ¡Muchas gracias!

    – nacho l.

    21 de noviembre de 2015 a las 14:31

  • Esta es la respuesta, pero tal vez debería eliminar la estática en la declaración de la función.

    – Ampersanda

    20 de mayo de 2017 a las 12:51

Aplicacion de YouTube para Android Reproducir intencion de video
emby

Esto funcionará en un dispositivo pero no el emulador según la respuesta de Lemmy.

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=cxLG2wtE7TM")));

  • Este fue el ganador para mí, si tiene instalada la aplicación de YouTube, le pregunta si desea usar eso en su lugar.

    – Tristán Warner-Smith

    23 de marzo de 2010 a las 16:37

  • use este código para obtener el selector de intenciones para youtube y el navegador. como ocultarlo? solo necesito vincularme directamente al reproductor de youtube.

    – Praveen

    21 de mayo de 2010 a las 14:13

  • @Praveen Chandrasekaran, es posible que la aplicación de YouTube no esté disponible; es mejor usar Intent y dejar que el sistema determine qué aplicaciones instaladas admiten la solicitud.

    – cofiem

    23 de septiembre de 2010 a las 12:27

  • Deberá llamar a setClassName en la intención antes de llamar a startActivity, así: intent.videoClient.setClassName(“com.google.android.youtube”, “com.google.android.youtube.PlayerActivity”); Consulte la respuesta de Sana para ver un ejemplo de código de trabajo.

    – Simétrico

    28 de enero de 2011 a las 15:50

  • Esto no funciona para mí, en un dispositivo real con la aplicación de YouTube instalada. Todavía abre el navegador web. Sin embargo, el enfoque de Bibbity a continuación funciona. O tal vez el comentario de Symmetric, no lo he intentado.

    – Mathias Conradt

    11 de noviembre de 2011 a las 8:10

1646745673 192 Aplicacion de YouTube para Android Reproducir intencion de video
Bibbity Bobbity Boo

Así es como resolví este problema:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube://" + video_id));
startActivity(intent);

Ahora que investigué un poco más, parece que solo necesitaba ‘vnd.youtube:VIDEO_ID’ en lugar de dos barras después de los dos puntos (‘:’ frente a ‘://’):

http://it-ride.blogspot.com/2010/04/android-youtube-intent.html

Probé la mayoría de las sugerencias aquí y realmente no funcionaron muy bien con todos los supuestos métodos “directos” que generan excepciones. Asumiría que, con mi método, si la aplicación de YouTube NO está instalada, el sistema operativo tiene una posición alternativa predeterminada que no es bloquear la aplicación. En teoría, la aplicación solo funciona en dispositivos con la aplicación de YouTube, por lo que esto no debería ser un problema.

  • Hola, ¿es posible reproducir videos de youtube en la aplicación en lugar de reproducirlos en Webview?

    – Escorpión

    8 de octubre de 2012 a las 6:07

  • @Scorpion Hay una API de YouTube, con tal posibilidad.

    – Matthewek

    31 de mayo de 2013 a las 19:13


  • ¡Funciona muy bien! Pero te falta un paréntesis derecho en la primera línea.

    – KostasC

    17 de enero de 2016 a las 13:58

Aplicacion de YouTube para Android Reproducir intencion de video
Soubhab Pathak

Use mi código… Puedo reproducir videos de youtube usando este código… solo necesita proporcionar la identificación del video de youtube en la variable “videoId”…

String videoId = "Fee5vbFLYM4";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube:"+videoId)); 
intent.putExtra("VIDEO_ID", videoId); 
startActivity(intent); 

1646745674 685 Aplicacion de YouTube para Android Reproducir intencion de video
sana

Intent videoClient = new Intent(Intent.ACTION_VIEW);
videoClient.setData(Uri.parse("http://m.youtube.com/watch?v="+videoId));
startActivityForResult(videoClient, 1234);

Donde videoId es la identificación del video del video de youtube que debe reproducirse. Este código funciona bien en Hito de Motorola.

Pero básicamente, lo que podemos hacer es verificar qué actividad se carga cuando inicia la aplicación de Youtube y, en consecuencia, sustituir el nombre del paquete y el nombre de la clase.

  • Recibo el siguiente error. ERROR/AndroidRuntime(1519): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.google.android.youtube/com.google.android.youtube.PlayerActivity}; have you declared this activity in your AndroidManifest.xml? Por favor resuelva esto.

    – Vinothkumar Arputharaj

    14 de junio de 2011 a las 14:06


  • ¿Cuál es tu dispositivo? Este nombre de actividad solo es específico para un Motorola Milestone, pero si desea ver el nombre de actividad para la actividad de YouTube, conecte su dispositivo en modo de depuración USB y vea el LogCat cuando haga clic en la aplicación de Youtube. Debería darle el nombre del paquete junto con el nombre de la actividad.

    – Saná

    15 de junio de 2011 a las 2:00

1646745674 951 Aplicacion de YouTube para Android Reproducir intencion de video
Lemmy

Se supone que Youtube (y la aplicación Market) solo deben usarse con ROM especiales, que Google lanzó para el G1 y el G2. Desafortunadamente, no puede ejecutarlos en una ROM OpenSource, como la que se usa en el Emulador. Bueno, tal vez puedas, pero no de manera oficial.

  • Recibo el siguiente error. ERROR/AndroidRuntime(1519): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.google.android.youtube/com.google.android.youtube.PlayerActivity}; have you declared this activity in your AndroidManifest.xml? Por favor resuelva esto.

    – Vinothkumar Arputharaj

    14 de junio de 2011 a las 14:06


  • ¿Cuál es tu dispositivo? Este nombre de actividad solo es específico para un Motorola Milestone, pero si desea ver el nombre de actividad para la actividad de YouTube, conecte su dispositivo en modo de depuración USB y vea el LogCat cuando haga clic en la aplicación de Youtube. Debería darle el nombre del paquete junto con el nombre de la actividad.

    – Saná

    15 de junio de 2011 a las 2:00

1646745675 75 Aplicacion de YouTube para Android Reproducir intencion de video
Morteza Jalambadani

EDITAR: La siguiente implementación demostró tener problemas en al menos algunos dispositivos HTC (se bloquearon). Por esa razón, no uso setclassname y me quedo con el menú de selección de acciones. Desaconsejo encarecidamente el uso de mi implementación anterior.

La siguiente es la implementación anterior:

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(youtubelink));
if(Utility.isAppInstalled("com.google.android.youtube", getActivity())) {
    intent.setClassName("com.google.android.youtube", "com.google.android.youtube.WatchActivity");
}
startActivity(intent);

Donde Utility es mi propia clase de utilidad personal con el siguiente método:

public static boolean isAppInstalled(String uri, Context context) {
    PackageManager pm = context.getPackageManager();
    boolean installed = false;
    try {
        pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
        installed = true;
    } catch (PackageManager.NameNotFoundException e) {
        installed = false;
    }
    return installed;
}

Primero verifico si YouTube está instalado, si está instalado, le digo a Android qué paquete prefiero abrir mi intento.

  • ¿Qué es la Utilidad? No lo veo como una importación disponible.

    – Igor Ganapolski

    3 de abril de 2012 a las 3:49

  • +1 para la EDICIÓN. Usar un nombre de clase explícito definitivamente no es confiable.

    – Giulio Piancastelli

    21 de junio de 2012 a las 8:46

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad