23 de Octubre de 2014
Mayo
22

Guardando streaming de audio en formato MP3

Categorías: 

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 

5
Valoración media: 5 (2 votos)

3 Comentarios:

Eem, intento hacerlo y me

Eem, intento hacerlo y me sale noseque de un error, posiblemente de hardware, sobre que no soporta el "promiscuous mode". ¿Alguna solución?

 Y ya de paso, ¿no sabrás como hacerlo para capturar video verdad? Porque creo que podría serme muy util para cierta cosa que necesito y que no consigo descargar de ninguna otra manera.

 Saludos!

Puedes capturar lo "que te

Puedes capturar lo "que te dé la real gana".

Abre el Wireshark, te pones a escuchar por el puerto 80.

Al no saber exáctamernte el formato del vídeo que es lo que quieres capturar estableces el siguiente filtro:

http.content_type contains "video"

Ahora te vas por ejemplo aquí:
http://vimeo.com/20241459

(se puede hacer con Youtube, pero comenté aquí desde hace unos días me va como el puto culo)

Cuando el streaming se ha capurado, en Wireshark tenemos algo como esto:

 

(Haz click para agrandar)

Como vemos, el archivo es de tipo "video/mp4" exportamos los bytes seleccionados como "rick.mp4"

A continuación, abrimos el archivo rick.mp4 con nuestro visualizador de vídeos favorito (QuickTime, Media Player, VLC, etc) y voilá:

 

Sobre el tema del modo promiscuo ni idea, pero me dá a mi (corrígeme si me equivoco) que estás intentando capturar los paquetes via Wi-Fi, ¿acierto?

Quizás en la F.A.Q. de Wireshark comenten algo al respecto. Ahí poco puedo ayudarte :(

Originalmente iba a titular "Cómo descargar las canciones de Spotify por todo el morro en tu PC", pero me pareció que cantaba más que las plantillas de un anuncio de Devorolor X-D X-D X-D


Saludos.
mov eax,ollydbg; Int 13h 

 

Me he cambiado

Me he cambiado temporalmente a ethernet para que no me de problemas con el promicuous, pero poniendo el filtro que me dices, no me coge nada. Ni siquiera del ejemplo que tienes puesto de Rick Astley. Con ese ejemplo, me sale el Transmission Control Protocol, aunque no el Media Type (pero sin poner el filtro). Si pongo el filtro no me sale nada.

Y ya si hablamos del sitio de donde quiero descargar el video que me interesa, pasa exactamente lo mismo. Nada con el filtro.

Ya no se que probar :S

Saludos