iOS abre la aplicación de YouTube con consulta (esquemas de url)

¿Existe un Esquema de URL para abrir la aplicación iOS de YouTube con una consulta de búsqueda específica?

Lo intenté:

NSString *stringURL = @"http://www.youtube.com/results?search_query=foo"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url]; 

Pero esto abrirá Safari en lugar de la aplicación de YouTube.

No puedes usar esta http://www.youtube.com/results?search_query=foo para abrir la aplicación de YouTube. Si usa la URL anterior, se abrirá el safari en lugar de la aplicación de YouTube.

Solo hay tres URLSchemes disponibles para abrir la aplicación de YouTube:

  • http://www.youtube.com/watch?v=VIDEO_IDENTIFIER
  • http://www.youtube.com/v/VIDEO_IDENTIFIER
  • youtube://

Referencia: iPhoneURLScheme

esto está funcionando bien en iOS 9

youtube://www.youtube.com/channel/

Actualización para Swift 3 y iOS 10+

OK, hay dos pasos fáciles para lograr esto:

En primer lugar, debe modificar Info.plist para hacer una lista de Youtube con LSApplicationQueriesSchemes . Simplemente abra Info.plist como un Código fuente, y pegue esto:

 LSApplicationQueriesSchemes  youtube  

Después de eso, puede abrir cualquier URL de youtube dentro de la aplicación de Youtube simplemente sustituyendo https:// por youtube:// . Aquí hay un código completo, puede vincular este código a cualquier botón que tenga como acción:

 @IBAction func YoutubeAction() { let YoutubeQuery = "Your Query" let escapedYoutubeQuery = YoutubeQuery.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed) let appURL = NSURL(string: "youtube://www.youtube.com/results?search_query=\(escapedYoutubeQuery!)")! let webURL = NSURL(string: "https://www.youtube.com/results?search_query=\(escapedYoutubeQuery!)")! let application = UIApplication.shared if application.canOpenURL(appURL as URL) { application.open(appURL as URL) } else { // if Youtube app is not installed, open URL inside Safari application.open(webURL as URL) } } 

Si hay un esquema de URL de búsqueda de aplicaciones compatible con YouTube, no está bien documentado (y probablemente sea frágil). Puede abrir la aplicación de YouTube directamente usando:

 youtube:// 

Puedes reproducir videos específicos usando:

 http://www.youtube.com/watch?v=VIDEO_IDENTIFIER 

Me acercaría a este problema al consultar la lista directamente y mostrar los resultados en una vista web. Lo ideal es que no desee replicar la aplicación de YouTube (ya hay una en la tienda de aplicaciones), por lo que sería mejor buscar el identificador de video específico en alguna otra ruta.

Se puede abrir usando vnd.youtube:/// (se fijan tres barras diagonales)

Puede abrir la aplicación iOS de YouTube de esta manera:

Videos

 Open in YouTube Open in YouTube 

Usuarios y canales

No es posible en este momento. (Fuente: pruebas exhaustivas)

Listas de reproducción

Desconocido / no probado

Si desea abrir la aplicación YouTube iOS con una consulta de búsqueda, use esta syntax:

 youtube:///results?q=search%20query 

(reemplace search%20query con términos de búsqueda sin comillas)

Nota: la syntax anterior tiene tres barras en lugar de dos.

(Funciona a partir de 20160420)

Para iOS 11 esto debería funcionar:

 youtube://www.youtube.com/ 

De acuerdo con la última documentación del desarrollador de Apple, youtube no se puede abrir con el esquema youtube: // url sino que debe ser como se menciona en el siguiente enlace.

https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/YouTubeLinks/YouTubeLinks.html