Guardando streaming de audio en formato MP3

Hoy os mostraré como jugar un poco con Wireshark (http://www.wireshark.org)
Wireshark es una herramienta de software libre bajo licencia GPL que permite capturar y analizar el tráfico de datos de un adaptador de red. 

En la wikipedia lo explican mejor que yo 😉
"Permite examinar datos de una red viva o de un archivo de captura salvado en disco. Se puede analizar la información capturada, a través de los detalles y sumarios por cada paquete. Wireshark incluye un completo lenguaje para filtrar lo que queremos ver y la habilidad de mostrar el flujo reconstruido de una sesión de TCP."(wikipedia)

Bien, lo primero es descargar Wireshark desde la página oficial (http://www.wireshark.org/download.html) A fecha de hoy la versión estable es la 1.4.6
Existen versiones tanto para 32 bits como para 64 bits. Deberéis instalar la versión correspondiente a vuestro S.O.

Una vez instalado estaremos listos para empezar la captura.

Para ello iremos a Capture —> Interfaces…:


(Haz click para agrandar)

Es posible que exista más de un adaptador de red. En mi caso particular tengo 3.
En este caso se utilizará el adaptador Realtek RTL8168C/8111C, ya que ese adaptador es mi tarjeta ethernet.

Pulsaremos en Options:


(Haz click para agrandar)

En las opciones de captura se establecerá un filtro. Sólo se va a capturar el tráfico procedente del puerto 80. Para ello pulsaremos en Capture Filter:


(Haz click para agrandar)

Y seleccionaremos el filtro "TCP or UDP port 80 (HTTP):

Finalmente pulsaremos sobre el botón Start para iniciar la captura de paquetes que llegan por el puerto 80:

En ese momento y dependiendo del tráfico entrante (si tenéis IExplorer, Firefox, Chrome, etc abiertos) puede que s e muestren paquetes:


(Haz click para agrandar)

En nuestro caso "filtraremos" los paquetes que nos llegan por el puerto 80. De todos los paquetes que llegan únicamente nos interesan los de "streaming". Para ello estableceremos el siguiente filtro:

http.content_type == "audio/mpeg" y pulsaremos en Apply:

Bien, Wireshark ya está a la "espera" y capurando paquetes de streaming.

Seguramente ahora lo que algunos de vosotros/as se estará preguntando es de donde sacamos estos paquetes de streaming, ¿verdad?

Vamos a utilizar Grooveshark como fuente del streaming.
Para los que no conozcan Grooveshark decir que se trata de una de las mayores libres de audio de internet (no sólo de Spotify vive el hombre 🙂 , es gratuito y no se necesita registro para utilizarlo.

Más información: http://en.wikipedia.org/wiki/Grooveshark
Página oficial: http://listen.grooveshark.com

Entramos en Grooveshark y buscamos un tema, el que queráis. Yo he buscado el clásico "Stairway to heaven" de Led Zeppelin:


(Haz click para agrandar)

Seleccionamos el archivo para la repoducción


(Click para agrandar)

En la barra de progreso de la reproducción  se pueden ver "dos barras".

La primera de color verde indica el tiempo actual de reproducción de la canción
La segunda de un color grisaceo indica el total del streaming cargado. Cuando dicho total cargado llegue al final (representado con la flecha roja en la imagen anterior) indica que todo el streaming se ha descargado.

Dependiendo de la conexión a internet que tengas, la canción puede durar 4 minutos, pero el streaming se te ha descargado en 3 segundos.

Pues bien, cuando el streaming se ha descargado volvemos a Wireshark detenemos la captura (este paso es opcional)

Observamos que tenemos un "paquete de datos" supuestamente de streaming. Seleccionamos dicho paquete.

Después de seleccionar el paquete pulsamos en "Media Type":

A continuación pulsaremos dentro de la opción "Media Type audio/mpeg (xxxxxxxx bytes):


(Haz click para agrandar)

Veréis que al hacer esto se mostrará una ventana que va indicando una barra de progreso. Puede que tarde más o menos en función del tamaño de los bytes capturados.

Una vez procesada toda la información se  "autoseleccionarán" los xxxxxxxx bytes.

Ahora pulsamos con el botón derecho del ratón otra vez sobre Media Type: audio/mpeg (xxxxxxx bytes) y seleccionamos  la opción "Exported Selected Packet Bytes…":


(Haz click para agrandar)

Le damos un nombre. Como extensión usar "mp3", por ejemplo: stairwayToHeaven.mp3:

Añadimos dicho mp3 por ejemplo al iTunes y probamos 🙂


(Haz click para agrandar)

Y ya puesto que estamos en iTunes, pasamos ese mp3 al iPod, iPhone, … 🙂

Nota: Cuando seleccionamos el contenido del Media Type: audio/mpeg (xxxxxxx bytes) podemos ver que los primeros bytes corresponden al tag ID3 que suelen tener todos los mp3.
Tampoco es necesario detener la captura entre canción y canción, simplemente has de estar antento al paquete generado (más quenada para darle un nombre correcto cuando lo guardes en formato *.mp3)


(Haz click para agrandar)

 

Tags: how to save grooveshark songs, save grooveshark to mp3, save audio stream to mp3, guardar canciones de grooveshark, using wireshark to save grooveshark songs, grooveshark to file , capture audio streaming, save audio streaming

Saludos.
mov eax,ollydbg; Int 13h