Si quieres una aplicación para Android que permita una gestión flexible de los protocolos de streaming de Youtube de forma que permita seleccionar sólo la parte de audio del flujo multimedia descartando la pista de vídeo, échale un ojo a VLC para Android . Todavía está "en desarrollo", pero probablemente se trate de la función "sólo audio".
Desde un punto de vista más técnico, ayuda a desglosar la cuestión en los protocolos de red de Youtube disponibles para la transmisión de medios RTSP . Las especificaciones de RTSP permiten a un cliente hacer una petición utilizando el comando DESCRIBE al que el servidor responde con un segmento de datos SDP (ver detalles más abajo). Los servidores de Youtube pueden responder en una variedad de protocolos, enviando flujos subyacentes que, a su vez, utilizan una variedad de codificaciones -una para el audio y otra para el vídeo- para transferir los bits multimedia a través de la red hasta el cliente. En las redes móviles, una función que se dirija a Youtube para recibir tanto las pistas de audio como las de vídeo antes de descartar el vídeo y reproducir sólo el audio no es una buena práctica debido a la gran necesidad de red para el flujo de vídeo no utilizado. Se puede sortear la ineficiencia de la red con un poco más de investigación técnica.
Los estándares RTSP y SDP observados por Youtube permitirían a un cliente de streaming (dispositivo Android) solicitar SOLO el Audio durante los pasos de handshake Cliente/Servidor y los pasos de negociación en torno a la configuración de la conexión de red que hará el streaming de medios. En este caso, no se enviaría ningún vídeo y el reproductor de Android se configuraría en un flujo de sólo audio. Algunos detalles de los comandos CLI y algunos detalles del protocolo en este escenario de "sólo audio de youtube" siguen.
En la siguiente URI RTSP está disponible una pista de audio de youtube, formato 1, para un vídeo concreto:
rtsp://v8.cache8.c.youtube.com/CigLENy73wIaHwlcw_gs85OUchMYDSANFEgGUgx1c2VyX3VwbG9hZHMM/0/0/0/video.3gp
A partir de la URI RTSP para todo el vídeo (pista de audio más pista de vídeo) , la siguiente expresión CLI hace uso de 2 clientes multimedia openRTSP y mPlayer yendo a Youtube donde luego OBTIENE/PRODUCE sólo la pista de audio de Youtube solicitando sólo canal=1 .
./openRTSP -a rtsp://v8.cache8.c.youtube.com/CigLENy73wIaHwlcw_gs85OUchMYDSANFEgGUgx1c2VyX3VwbG9hZHMM/0/0/0/video.3gp | ./mplayer -cache 8092 - -rawaudio channels=1:rate=8000:samplesize=2:format=0x73616D72
Esta expresión de la CLI se describe con más detalle en un enlace en la parte inferior.
Los "feeds" de Youtube describen los formatos de flujo disponibles para cualquier vídeo de Youtube, incluidos los URI RTSP mencionados anteriormente. Para una explicación técnica del streaming de Youtube formatos véase la entrada de formato 1,5,6 en la tabla larga.
La siguiente petición obtiene un feed de Youtube que incluye las URIs RTSP con distintos formatos que están disponibles para ese vídeo en particular:
http://gdata.youtube.com/feeds/api/users/rowntreerob/uploads?vq=cpST8yz4w1w&prettyprint='true'
Los detalles escabrosos de una SESIÓN RTSP conectada en la que se solicita la descripción SDP completa de un video de youtube en particular para poder transmitir/reproducir sólo la pista de audio son aquí .
Clave de las líneas numeradas en el enlace anterior:
82 – the RTSP DESCRIBE request
101 – the SDP response
103 – video track’s format
116 – the attributes describing the audio track
line 165 – the audio track setup by the player
184 – the audio-only playback
201 – using a separate CLI expression this is playback of a previous download on just the audio track