martes, julio 10, 2007

Ingenieria inversa para la web 2.0

Ayer, buscando en google una canción en mp3, llegué a una curiosa página, mp3tube.net, que es web estilo estilo youtube pero para alojar mp3s, tiene un reproductor flash para reproducir las canciones y no permite descargar las canciones, pero claro yo aunque quizás hubiera sido mejor descargar la canción mediante p2p ya que me había encontrado con esto no quería dejarlo así, quería averiguar donde estaban guardados los mp3s para poder descargarmelo.

Lo primero que hice fue echarle un vistazo al código fuente, quizás estuviera la url del mp3 en él y me ahorraría tener que descompilar el reproductor flash y buscar en su código ActionScript. Busqué pero no encontré nada útil, excepto un detalle importante, el "id" del archivo, cada archivo tiene uno diferente, así que deduje que me sería útil para descargar las canciones una vez averiguara donde estaban alojadas. Esto fue lo único interesante que vi en el código fuente:

http://www.mp3tube.net/play.swf?id=772691db234dc0b62844eac87f3d21d5

Se ve perfectamente el id, y el nombre del reproductor flash. Luego intenté una tontería, pero a lo mejor funcionaba, puse mp3tube.net/id_del_archivo.mp3 pero no funciono, error 404, tras probar varias posibilidades mas pare probar, no sirvió ninguna de mis intuiciones. Próximo paso? descargar el reproductor flash, descompilarlo y ver que hace. Así que nada wget mp3tube.net/play.swf, apt-cache search swf decompiler, apt-get install flasm, flasm, flasm -d play.swf. Explico: descargo el archivo, busco un descompilador de archivos swf, instalo el que he encontrado (flasm), lo ejecuto sin argumentos para ver la sintaxis, y luego lo ejecuto con -d (descompilar) como parámetro y play.swf (archivo swf) como argumento. Tras mirar un poco veo que hay llama a otro archivo, a fmp3.swf, así que lo descargo igualmente y miro un poco el código de este archivo, no veo nada útil, así que me voy de nuevo al primero y repasándolo veo una cosa cuanto menos curiosa:

'mp3', 'http://matrix.mp3tube.net/tube/', 'id', '.tube'

Lo que me hace pensar que los archivos mp3 se pueden sacar de matrix.mp3tube.net/tube/id_del_archivo.tube, así que hago la prueba poniendo como id el de la canción que puse antes como ejemplo, Como el agua, de Camarón, y descargo mediante wget (si ya que se puede con firefox, pero a mi me gusta el terminal):

wget http://matrix.mp3tube.net/tube/772691db234dc0b62844eac87f3d21d5.tube

Vaya, son 3.5 MB tiene toda la pinta de ser una canción en mp3, cuando termino de descargarlo para ver que es ejecuto:

file 772691db234dc0b62844eac87f3d21d5.tube

Y efectivamente es un fichero mp3, así que intento reproducirlo:

mplayer 772691db234dc0b62844eac87f3d21d5.tube

Suena!! ya sabemos donde están los archivos, pero trabajo acabado?

No... es mucho trabajo hacer todo eso a mano, así que, se me ocurre que puedo hacer un script que haga el solo todo el trabajo, y de paso practico un poco shell scripting.

Blogger deforma un poco (en realidad mucho) es script, así que lo he colgado, podeis verlo aquí: http://neobiusnet.googlepages.com/mp3tube.sh

Voy a comentaros un poco el script, se que algunos lo entenderéis perfectamente, pero a alguien le interesará saber como funciona, así que lo explico un poco:

La primera línea: #!/bin/bash simplemente indica que es un script bash.

Después hay una comprobación mediante un if, si no se le ha puesto ningún argumento muestra en la pantalla mediante varios echo, para que sirve el script y como se usa, lo he puesto en inglés para que lo pueda usar mas gente aunque realmente dudo de la calidad de la pagina mp3tube.net, y de si tiene mucha audiencia o no, pero bueno, lo he puesto en inglés de todas formas.

En caso de que si se le haya pasado la url como argumento comienza descargando la pagina html (linea 17), y lo guarda como index.html.

La línea 18 asigna a la variable CANCION, el id de la canción, imprimiendo el archivo index.html, mediante grep se selecciona una línea y luego mediante cut se corta el id.

En condiciones normales cuando se descarga el archivo tiene un nombre absurdo, [id].tube, es imposible saber que canción es, así que para solucionar esto la línea 19 se encarga de tomar el nombre de la propia url:

http://www.mp3tube.net/es/musics/Camaron-Como-el-agua/4844/

En este caso sería Camaron-Como-el-agua.mp3. La forma de hacerlo es dividiendo con cut la url en partes usando como límites las "/" de la url, con -f6 se selecciona la parte que queremos, este es el dato que se asigna a $NOMBRE.

Por último se descarga el archivo, le cambia el nombre a $NOMBRE.mp3 y termina diciendo "El archivo $NOMBRE.mp3 ha sido guardado".

Una cosa que se me había olvidado, gracias a Castigador por su ayuda con el script, ya que tuve unos problemillas con cut.

24 comentarios:

D@nY dijo...

Hola Neobius,
la verdad es que este post me ha parecido de lo mas interesante.

Saludos

arcodelta dijo...

Madre de dios lo que aprende un novato aqui!

gracias... todos los experimentos que posteas me resultan de lo más interesante.

saludos,
arco

Neobius dijo...

Gracias a los dos, me alegro de que os haya gustado el post :D

Saludos ;-)

shinchandmc dijo...
Este comentario ha sido eliminado por el autor.
shinchandmc dijo...

Geniales tus articulos Neobius, siempre me encantan.

Pero el script tiene un pequeño fallito, el renombramiento, toma las ultimas cifras como el nombre, por ejemplo con la url :
http://mp3tube.net/musics/Black-eyed-peace-Pump-it/45/
Pues el nombre tendria que ser Black-eyed-peace-Pump-it, pero es 45.mp3

Venga,a seguir trasteando, y actualiza el blog machote!

Neobius dijo...

Hola shinchandmc, me alegro de que te gusten mis post :D

Luego sobre el script llevar razón, con esa url falla, pero es que me acabas de mostrar un problema con el que no contaba, mira estas dos urls:

http://www.mp3tube.net/es/musics/Camaron-Como-el-agua/4844/
http://mp3tube.net/musics/Black-eyed-peace-Pump-it/45/

Ves la diferencia? la primera tiene "/es/" y la segunda no, y ese parámetro al no existir en la segunda url me ha fastidiado el chiringuito, porque lo que yo hago para coger el nombre es dividir la url segun las "/":

http: www.mp3tube.net es music Camaron... 4844

Y luego selecciono el dato adecuado, que yo suponía que era fijo, pero en tu url al faltar el "es" por lo que coge el número del final en vez del nombre, no se si me entiendes...

Todavía no he pensado como solucionarlo, voy a investigar un poco mas las urls de varias canciones a ver cuantos tipos de url hay, luego si se me ocurre algo bien, si no a lo mejor recurro de nuevo al código fuente. Voy a estudiar la solución cuando este listo lo publicaré.

Saludos y gracias por el aviso ;-)

Neobius dijo...

El script ya esta arreglado podeis bajarlo de aquí:

http://neobiusnet.googlepages.com/mp3tube.sh

Ahora estoy escribiendo un post sobre el tema, no se si lo voy a tener para hoy o lo terminaré mañana, pero bueno, el script ya lo tenéis.

Saludos ;-)

rubisf dijo...

El programa no funcionaba, así que he corregido el código, le he añadido unas cosillas y he creado un paquete .deb para los ubuntu, lo puedes descargar en mi página:
http://rubisf.wordpress.com/2007/10/05/musica-gratis-en-dd-en-deb-con-linux-ubuntu/
Era sólo para comentártelo, ya que la idea partió de tí y me pareció buena, borra el comentario si quieres una vez que lo leas . Un Saludo.

Neobius dijo...

rubisf, pues gracias por haberlo actualizado, se ve que han cambiado alguna cosa y ha provocado que mi script deje de funcionar.

Saludos ;-)

Anónimo dijo...

Hola

Te complicaste mucho, ya que solo es necesario mirar las cabeceras y ahí ves claramente que es lo que pides y que es lo que regresa al servidor y como dices, con el id bajas la canción que quieras,muy interesante tu blog.

Hize un script en python para bajar música de mp3tube.net y goear.com, pueden bajarlos de mi página web tekkenbolivia.net

saludos :)

Gisela dijo...

Hola a todos., les tengo un metodo para que guarden las canciones de MP3TUBE.NET en su pc mientras las escucha.

1. Borren todo el historial de internet incluyendo cookies.
2. Abran mp3tube.net y busquen su cancion y denle play.
3. cuando termine la cancion vayan a opciones de internet y en historial denle ver archivos.
4. Busquen hasta abajo un archivo que tiene un numero muy largo (que es la id de la cancion) y en la columna de tipo de archivo debe decir archivo TUBE.
5. Coloquense sobre el y denle abrir saldra un cuadro de dialogo de que no es segureo abrirlo denle que si lo abra.
6. Se abrira otro cuadro de dialogo para guardarlo. Veran el numero largo y al final escriban .mp3 para que se guarde con la extension mp3 incluso le pueden cambiar el numero por el nombre de la cancion.
7. Listo, a disfrutar de su cancion.

Si desean subir el archivo a un sitio gratuito sin registrarse usen el http://musicuploader.org

tambien les puedo decir como sacar las url de goear.

QUE BONITO ES AYUDAR
Espero sus comentarios.

Gisela dijo...

Tambien se puede con mozilla firefox, es mas complejo pero ya lo probe y se puede. Si les interesa diganme y les explico como.

Anónimo dijo...

Muchas Gracias Gisela!!!

Funciona!

Anónimo dijo...

anxiety attack relievers [url=http://usadrugstoretoday.com/products/baclofen.htm]baclofen[/url] nosocomial infections 2008 http://usadrugstoretoday.com/products/minocycline.htm weight loss program online http://usadrugstoretoday.com/products/hyaluronic-acid.htm
deaths of heart disease [url=http://usadrugstoretoday.com/products/zofran.htm]zofran[/url] open heart diagram [url=http://usadrugstoretoday.com/products/levothroid.htm]usec diapers for health[/url]

Anónimo dijo...

http://meen.in/clarinex/clarinex-claritin-versus
[url=http://meen.in/carvedilol/carvedilol-25mg]perscripton drugs on international flights[/url] survival of the drug t pa with multiple pulmonary embolism [url=http://meen.in/clomid/clomid-order-online]clomid order online[/url]
fiorinal 3 drug http://meen.in/claritin/mc2b-claritin
[url=http://meen.in/celecoxib/celecoxib-pharmacy]discount levitra online[/url] generic drugs online pharmacy [url=http://meen.in/clomid/bee-pollen-and-taking-clomid-for-getting-pregnant]bee pollen and taking clomid for getting pregnant[/url]
cialis injury attorney columbus http://meen.in/cleocin/cleocin-generic-price
[url=http://meen.in/celecoxib/rofecoxib-celecoxib]ft myers generic drugs[/url] cialis levitra versus [url=http://meen.in/feldene/ingredients-of-feldene]ingredients of feldene[/url] illicit drug use during accutane treatment [url=http://meen.in/celebrex/celebrex-price]celebrex price[/url]

Anónimo dijo...

ronnie w humphrey racing http://autoexpress.in/saturn/what/color/is/saturn fournisseur constructeur automobile
[url=http://autoexpress.in/porsche/porsche/rebuild/kits]outlook address auto complete[/url] auto racing led lap counter [url=http://autoexpress.in/royce/rolls/royce/trent/900]rolls royce trent 900[/url]
contact for automobile magazines http://autoexpress.in/rover/land/rover/discovery/rear/discs/genuine/uk
[url=http://autoexpress.in/rally/xpand/cross/rally/extreme/help]auto tow hitch[/url] automobile accessiories [url=http://autoexpress.in/radiator/cost/od/radiator/for/1995/cilica/gt]cost od radiator for 1995 cilica gt[/url]
racing car carnegie mellon http://autoexpress.in/scooter/razor/scooter/snow/extentions
[url=http://autoexpress.in/rover/land/rover/discovery/2]mercedes dance cd cover[/url] volkswagen used cars [url=http://autoexpress.in/radiator/maverick/radiator]maverick radiator[/url]

Anónimo dijo...

poco travel http://greatadventures.in/plane-tickets/pretend-play-plane-tickets swiss travel products
[url=http://greatadventures.in/disneyland/firefighter-discount-disneyland]travel mileage allowance[/url] springville travel [url=http://greatadventures.in/tourist/gerona-tourist]gerona tourist[/url]
oge and gifts of travel http://greatadventures.in/inn/abaco-inn
[url=http://greatadventures.in/disneyland/disneyland-half-marathon-results]dell axim x50v travel power cable[/url] acis education travel [url=http://greatadventures.in/tourism/alaska-tourism-wrangell-national]alaska tourism wrangell national[/url]
africa travel guide http://greatadventures.in/hotel/hotel-acores-lisboa all access visa travel [url=http://greatadventures.in/tourist/egypt-tourist-office-london]egypt tourist office london[/url]

Anónimo dijo...

floershem shoes http://topcitystyle.com/?action=products&product_id=2047 clothes dryers and multiple run [url=http://topcitystyle.com/95-accessories-size56.html]mary jane shoes[/url] chaps ralph lauren zacka
http://topcitystyle.com/xxl-outwear-size8.html jacksonville shoes [url=http://topcitystyle.com/?action=products&product_id=2191]designer inspired purses[/url]

Anónimo dijo...

anal interracial preview http://theporncollection.in/masturbating/free-woman-masturbating-movies
[url=http://theporncollection.in/gay-anal/gay-bdsm-movies]adult stores in 61554[/url] adult rape [url=http://theporncollection.in/gay-man/gay-porn-video-archives]gay porn video archives[/url]
free porn of men and women fucking http://theporncollection.in/free-hentai/fairly-odd-parents-hentai
[url=http://theporncollection.in/lesbian-porn/free-online-lesbian-dildoing]how to hack porn sites[/url] anal flickr [url=http://theporncollection.in/lesbian-porn/lesbian-webcomic]lesbian webcomic[/url]
shay hendrix suburban amateur http://theporncollection.in/lesbian-sex/lesbian-sex-game
[url=http://theporncollection.in/sex-mature/ameture-mature]asian anal free videos asian galore[/url] over 60s porn pics [url=http://theporncollection.in/gay-man/gay-pride-merchandise-wholesale]gay pride merchandise wholesale[/url]
adult club dance tracks http://theporncollection.in/orgy/homemade-amateur-orgy
[url=http://theporncollection.in/gay-boy/gay-tantric-massage-nyc]adult vedio sharing[/url] pa adult chip program [url=http://theporncollection.in/masturbating/masturbating-girls-pics]masturbating girls pics[/url]

Anónimo dijo...

opera mobile registration code http://www.orderphonetoday.com/ mobile homes in santa cruz [url=http://www.orderphonetoday.com/quad-band-phones-category1.html]acadian ambulance mobile trak[/url] cbs mobile al

Anónimo dijo...

estrogen vaginal ring [url=http://usadrugstoretoday.com/products/generic-imitrex.htm]generic imitrex[/url] e pill pillpak birth control pill reminder http://usadrugstoretoday.com/categories/la-sante-des-os.htm
finding the right medical career [url=http://usadrugstoretoday.com/products/cleocin-gel.htm]cleocin gel[/url] free e booksworkout and diet advice for skiiny guys [url=http://usadrugstoretoday.com/categories/parte-pills.htm ]heart attack fatigue [/url] tietze syndrome
treatment for urinary stones [url=http://usadrugstoretoday.com/products/levitra-professional.htm]levitra professional[/url] male infant lump in breast http://usadrugstoretoday.com/products/brand-amoxil.htm
johns hopkins breast cancer blog [url=http://usadrugstoretoday.com/products/rumalaya.htm]rumalaya[/url] metrohealth medical center cleveland ohio [url=http://usadrugstoretoday.com/products/cephalexin.htm ]health and safety regulations for a roller coaster [/url] calcium carbonate uroliths dog

Anónimo dijo...

ralph lauren atmosphere carpet http://www.thefashionhouse.us/-v-neck-women-category101.html women clothes wrestling [url=http://www.thefashionhouse.us/on-sale-page33.html]make polish horseshoes[/url] discount gucci handbags
http://www.thefashionhouse.us/gray-color99.html big man running shoes [url=http://www.thefashionhouse.us/energie-bags-brand65.html]baseball truff shoes[/url]

Anónimo dijo...

wholesale bingo daubers http://xwn.in/gambling-online_gambling-for-a-living betting odds explaned
[url=http://xwn.in/online-casinos_pennsylvania-pocono-casinos]free sign up bonus casinos[/url] schliester gambling [url=http://xwn.in/blackjack_how-to-beat-blackjack]how to beat blackjack[/url]
play blackjack games top http://xwn.in/blackjack_free-applications-for-samsung-blackjack-2
[url=http://xwn.in/lottery_tropical-lottery]most common drawn lottery numbers[/url] chekhov the lottery ticket study guide [url=http://xwn.in/baccarat_casino-ok-baccarat]casino ok baccarat[/url]
betting sites http://xwn.in/slots_wheel-of-fortune-special-edition-super-spin-video-slots-free wi lottery [url=http://xwn.in/online-casinos_paramedic-coverage-in-casinos]paramedic coverage in casinos[/url]

Anónimo dijo...

silent movie piano mp3 [url=http://moviestrawberry.com/films/film_murder_rooms_the_photographer_s_chair/]murder rooms the photographer s chair[/url] video streaming movie http://moviestrawberry.com/films/film_diagnosis_death/ the great escape movie theater new albany in
movie theatres in kimberly wi [url=http://moviestrawberry.com/films/film_a_good_year/]a good year[/url] download porn movie free http://moviestrawberry.com/hqmoviesbyyear/year_1947_high-quality-movies/ movie theatres in nh
yankee doodle jimmy cagney movie [url=http://moviestrawberry.com/films/film_gossip_girl/]gossip girl[/url] cost of movie ticket in 1970
movie listing in ct [url=http://moviestrawberry.com/films/film_love_in_a_cold_climate/]love in a cold climate[/url] watch superbad full movie http://moviestrawberry.com/films/film_noel/ nonnude movie
halloween babe andnot costume costumes movie [url=http://moviestrawberry.com/films/film_in_the_loop/]in the loop[/url] bourne ultimatium the movie http://moviestrawberry.com/films/film_born_to_dance/ boring monologue movie