Web2Py Organization

mdipierro    Más opciones 11 nov, 15:52
De: mdipierro <mdipie@cs.depaul.edu>
Fecha: Thu, 11 Nov 2010 06:52:07 -0800 (PST)
Local: Jue 11 nov 2010 15:52
Asunto: web2py organization – important for consultants !!!

This is important. Please read!

These days I am getting a lot of private requests from people/
businesses who need consulting development jobs in web2py. This is
more than can I can handle. I need to keep track who is available and
who is capable so that I can refer those jobs to them.

Long ago we had discussions on the list about giving a more
professional facade to the group (at least some part of the group) so
that members could bid for larger contracts as if we were a business.
If you think about IBM it is not more than a collection of
consultants, exactly as are we. The difference is that in their case
the shareholders take a cut of the revenues of the consultants and
they have a legal status. We do not.

One proposed solution was to create a professional organization. We
discussed options.

I came up with this:

    ——————
    http://www.experts4solutions.com
    ——————

I registered experts4solutions as an LLC to shield myself from
liability and give it a more professional legal status.

If you have contributed to web2py or have created a public web2py
application you are invited to join. By joining you are saying you are
willing to work on paid web2py projects and have your work reviewed
(by me and other members).

I will initially review and approve applications until we have a solid
core of members who can help draft better rules, improve the page,
offer more services.

The more members the more strict the admission rules will be since
they will be revised.

Let’s be clear on this… there is no cost of joining and it does not
take any cut in your revenues when you are contacted directly by a
client. experts4solutions will provide additional optional services
also provided by me and other members. For example you may want to
take a contract but you or your client may wants to purchase code
review, and/or a long time support contract, and/or something you
cannot provide as an individual but we may be able to provide as a
group. You can be listed even if you have a company (actually it is
better if you have one and your company name will be listed too).

Eventually this may replace:

http://web2py.com/examples/default/support

The point of this is that I am impressed by the expertise I find on
this list. Some of the skills you have are hard to find. I want to
help you capitalize on it.

I love working with you guys. web2py is what today keeps us together
but web2py is a tool and one day (2100?) it will be replaced by a
better one. Yet there is a value in our group and perhaps it may
outlive web2py.

experts4solutions is not a discussion group and will not affect this
mailing list.

Massimo


    Responder     Responder al autor     Reenviar       

    Calificar esta entrada: Text for clearing space

Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.

Branko Vukelic  
Ver perfil   Traducir al Español Traducido (ver original)
 Más opciones 11 nov, 19:21
De: Branko Vukelic <bg.bra@gmail.com>
Fecha: Thu, 11 Nov 2010 19:21:54 +0100
Local: Jue 11 nov 2010 19:21
Asunto: Re: [web2py] web2py organization – important for consultants !!!

On Thu, Nov 11, 2010 at 3:52 PM, mdipierro <mdipie@cs.depaul.edu> wrote:
>    http://www.experts4solutions.com

Nice!

> I love working with you guys. web2py is what today keeps us together
> but web2py is a tool and one day (2100?) it will be replaced by a
> better one.

Yes, it’s called web3py. \(^o^)/


Branko Vukelić

bg.bra@gmail.com
stu@brankovukelic.com

Check out my blog: http://www.brankovukelic.com/
Check out my portfolio: http://www.flickr.com/photos/foxbunny/
Registered Linux user #438078 (http://counter.li.org/)
I hang out on identi.ca: http://identi.ca/foxbunny

Gimp Brushmakers Guild
http://bit.ly/gbg-group


    Responder     Responder al autor     Reenviar       

    Calificar esta entrada: Text for clearing space

Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.

Stefaan Himpe  
Ver perfil   Traducir al Traducido (ver original)
De: Stefaan Himpe <stefaan.hi@gmail.com>
Fecha: Thu, 11 Nov 2010 20:02:33 +0100
Local: Jue 11 nov 2010 20:02
Asunto: Re: web2py organization – important for consultants !!!

>      ——————
>      http://www.experts4solutions.com
>      ——————

Looks very slick :)

There’s a typo on http://www.experts4solutions.com/e4s/default/companies
(it says “conact” instead of “contact”)

Best regards,
Stefaan.


    Responder     Responder al autor     Reenviar       

    Calificar esta entrada: Text for clearing space

Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.

Stefaan Himpe  
Ver perfil   Traducir al Traducido (ver original)
 Más opciones 11 nov, 20:11
De: Stefaan Himpe <stefaan.hi@gmail.com>
Fecha: Thu, 11 Nov 2010 20:11:57 +0100
Local: Jue 11 nov 2010 20:11
Asunto: Re: web2py organization – important for consultants !!!

Still looks very slick :)

But there’s a second typo on
http://www.experts4solutions.com/e4s/default/guidelines

In the first sentence of the RAD section it says “but a belief” where I
expected something like “by a belief”…

Best regards,
Stefaan.


    Responder     Responder al autor     Reenviar       

    Calificar esta entrada: Text for clearing space

Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.

Bruno Rocha  
Ver perfil   Traducir al Traducido (ver original)
 Más opciones 11 nov, 20:27
De: Bruno Rocha <rochacbr@gmail.com>
Fecha: Thu, 11 Nov 2010 17:27:24 -0200
Local: Jue 11 nov 2010 20:27
Asunto: Re: [web2py] Re: web2py organization – important for consultants !!!

There’s a typo on page title

2010/11/11 Stefaan Himpe <stefaan.hi@gmail.com>

> Still looks very slick :)

> But there’s a second typo on
> http://www.experts4solutions.com/e4s/default/guidelines

> In the first sentence of the RAD section it says “but a belief” where I
> expected something like “by a belief”…

> Best regards,
> Stefaan.


http://rochacbruno.com.br


    Responder     Responder al autor     Reenviar       

    Calificar esta entrada: Text for clearing space

Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.

Stefaan Himpe  
Ver perfil   Traducir al Traducido (ver original)
 Más opciones 11 nov, 20:35
De: Stefaan Himpe <stefaan.hi@gmail.com>
Fecha: Thu, 11 Nov 2010 20:35:10 +0100
Local: Jue 11 nov 2010 20:35
Asunto: Re: web2py organization – important for consultants !!!

Some more typos in the guidelines page…

faled prototypes can be minimized by
=> failed prototypes can be minimized [also remove the word "by"]

it is not as an alternative to executing the full project project. =>
[it mentions project twice at the end of the sentence]

mjor contributor => major contributor

Use Open Standards and Interoprability => Interoperability

Europen Union => European Union

Use Industry Standard Tehcnologies => Technologies

singificantrole => significant role

wise-spread => wide-spread

an hedge vs our competitors => an edge vs our competitors

crytical => critical

The framework we use was reviewed by the checked against the top 10 … =>
[remove the "reviewed by"]

written by client =>
written by the client

We build software is portable and can un efficienly =>
We build software that is portable and can run efficiently

Best regards,
Stefaan.


    Responder     Responder al autor     Reenviar       

    Calificar esta entrada: Text for clearing space

Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.

Branko Vukelic  
Ver perfil   Traducir al Traducido (ver original)
 Más opciones 11 nov, 20:42
De: Branko Vukelic <bg.bra@gmail.com>
Fecha: Thu, 11 Nov 2010 20:42:27 +0100
Local: Jue 11 nov 2010 20:42
Asunto: Re: [web2py] Re: web2py organization – important for consultants !!!

Massimo, you need to make another service offering proof-reading.
These guys are really good. :D

- Mostrar texto de la cita -


Branko Vukelić

bg.bra@gmail.com
stu@brankovukelic.com

Check out my blog: http://www.brankovukelic.com/
Check out my portfolio: http://www.flickr.com/photos/foxbunny/
Registered Linux user #438078 (http://counter.li.org/)
I hang out on identi.ca: http://identi.ca/foxbunny

Gimp Brushmakers Guild
http://bit.ly/gbg-group


    Responder     Responder al autor     Reenviar       

    Calificar esta entrada:

Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.

mdipierro  
Ver perfil   Traducir al Español Traducido (ver original)
 Más opciones 11 nov, 21:05
De: mdipierro <mdipie@cs.depaul.edu>
Fecha: Thu, 11 Nov 2010 12:05:01 -0800 (PST)
Local: Jue 11 nov 2010 21:05
Asunto: Re: web2py organization – important for consultants !!!

LOL

On Nov 11, 1:42 pm, Branko Vukelic <bg.bra@gmail.com> wrote:

- Mostrar texto de la cita -


    Responder     Responder al autor     Reenviar       

    Calificar esta entrada: Text for clearing space

Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.

Luther Goh Lu Feng  
Ver perfil   Traducir al Traducido (ver original)
 Más opciones 11 nov, 21:14
De: Luther Goh Lu Feng <elf@yahoo.com>
Fecha: Thu, 11 Nov 2010 12:14:12 -0800 (PST)
Local: Jue 11 nov 2010 21:14
Asunto: Re: web2py organization – important for consultants !!!

Nice. I hope to improve myself enough so I can join.

On Nov 12, 4:05 am, mdipierro <mdipie@cs.depaul.edu> wrote:

- Mostrar texto de la cita -


    Responder     Responder al autor     Reenviar       

    Calificar esta entrada: Text for clearing space

Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.

Fin de los mensajes

0

0
 

MegaVideo por programacion -> by Daniel Vispo

He encontrado un articulo genial sobre megavideo, en el blog Daniel Vispo Blog:

Obtener la URL de un archivo flv de MegaVideo por programación

abr 24
2009

Como todos ya sabeis MegaVideo se gana el pan de cada día a base de publicidad y suscripciones para que pagues y asíno recibas mensajitos del estilo ” Has visto 72 minutos, por lo que te voy a joder un ratito y te vas a quedar sin ver tu peli favorita durante 50 minutos”.

Esta protección se reliza a varios niveles, me explico:

- A través de tu IP comprueba que la cantidad de datos descargados corresponde en tiempo a x minutos y si superas ese tiempo el reproductor de flash te muestra ese maravilloso cuadro. Esta protección se puede saltar borrando tus cookies y cambiando tu ip. Se puede cambiar la ip de múltiples formas tales como reiniciar el router si posees IP dinámica o conectándote a un servidor proxy para enmascarar tu IP. Nota: Más adelante añadiré un post en el que explico como configurar un servidor proxy squid si posees un VPS o alguna máquina con OS Linux donde le puedas meter mano.

- A través del enmascarado de la URL del archivo flv, o lo que es lo mismo, del propio archivo *.flv que te sirve megavideo. Esto se hace mediante un algoritmo que a través de tres variables es capaz de descifrar el reproductor flash y mostrate así el video.

Pues bien, uno de los sintomas de la curiosidad hizo que intentara descubrir que tipo de algoritmo es el utilizado por el reproductor de flash y como conseguir la URL del video para poder reproducirla directamente en mi propio reproductor (por ejemplo MPlayer). Os explico paso por paso lo que hice y os añado el código fuente y binarios de un programita que hice para automatizar todos los pasos.

Paso uno. Que narices hace el reproductor de flash para conseguir la URL del archivo flv.

Cuando quieres ver un video en MegaVideo, la página que sirve éste tiene una URL del tipo:  http://www.megavideo.com/?v=F9UGA7EI donde a través del parámetro v=XXXXXXX la página cambia para mostrarte un video u otro en el reproductor flash que se incrusta en tu navegador.

Si hechas un vistazo al código fuente servido de seguida te das cuenta que no aparece la URL del video a ver, si no que al reproductor de flash se le pasan otro tipo de parámetros sin ningún sentido a priori.

Entonces si al reproductor no se le pasa la URL del archivo flv como narices lo sabe???. Sencillo!, es el reproductor quien calcula esta dirección URL a través de esos parámetros ininteligibles.

Vayamos entonces a ver que algoritmo es el que calcula dicha dirección…. pero espera!! que no puedes ver el código fuente del reproductor de flash!! Opss!!!

Paso dos. Descompilar el reproductor de flash para ver que hace.

Afortunadamente existen herramientas de terceros para descompilar un archivo compilado de flash. De todos es conocido la falta de protección del código fuente de flash, sobretodo si no se utilizan técnicas para enmascararlo un poco.

Una de las herramientas que encontré para decompilar el flash fue Flash Decompiler Trillix en su versión 3, que es una versión comercial (de esas de sacar tu VISA para conseguir una licencia) pero afortunadamente todo el mundo sabe como conseguir un serial by the face no? (no lo explico aquí que ya sois mayorcitos!).

Este programa es tan sencillo que basta con descargar el reproductor flash de la página de megavideo (archivo:  mv_player.swf que está en URL: http://wwwstatic.megavideo.com/mv_player.swf. Lo podeis ver facilmente en el código fuente), abrirlo con la aplicación de Trillix y ya teneis disponibles todos sus frames, text, images, sprites…. y lo más importante! su código actionscript donde encontrar la función que a través de tres variables forma la URL completa del archivo .flv

trillix

Paso tres. Donde está la famosa función?

Si indagamos un poco, observamos que en la carpeta Scripts, se encuentran varios ficheros y es el primero (Frame 0) donde debemos buscar.

La función se llama decrypt y toma como parámetros str, key1 y key2 que corresponden respectivamente a las variables: flashvars.un, flashvars.k1 y flashvars.k2 que encontramos en el código fuente de la página. Con estas tres variables se forma una cadena que se concatena al final de otra cadena del estilo: http://www[xxx].megavideo.com/files/, donde [xxx] es el valor de la variable  flashvars.s que también se encuentra en el código fuente de la página.

Un ejemplo es más claro:

Supongamos que hacemos una petición a la página: http://www.megavideo.com/?v=6FL2UG4V, ésta a través de su código fuente y para ese momento determinado (las varibles cambian con cada petición) nos devuelve la variable  flashvars.s = “603“, por lo que con esto ya tenemos una parte de la cadena: http://www603.megavideo.com/files/.

Ahora tan solo nos queda averiguar la otra parte de la cadena y esta se forma a través de la función decrypt que si le pasamos los valores que se encuentran en el código fuente de la página (flashvars.un = “d4e9bb2c757a7716eaa0c1fb7fb87784“,  flashvars.k1 = “31317“,  flashvars.k2 = “19798“) nos devuelve  d33bc94eaaa34a1795da23de2535ee23.

Finalmente solo nos queda añadir esta cadena al texto anterior y tenemos la URL completa al archivo flv.  http://www603.megavideo.com/files/d33bc94eaaa34a1795da23de2535ee2

Esta URL se la podemos pasar por ejemplo al MPlayer y ver directamente el video en nuestro reproductor de escritorio que tenga los codecs necesarios para reproducir este tipo de ficheros. Para muestra un botón:

Traducción a C# de la función decrypt y creación de una pequeña aplicación que muestra lo explicado en este post


programita

El código fuente de la aplicación lo podeis encontrar aquí y si lo que deseais son lo binarios para probarla directamente sin compilar código fuente lo encontrareis aquí.

code

Nos vemos en el próximo post!!!


0

0
 

megaup.py

megaup.py at master from ga2arch’s megaup – GitHub:

from os import path
import pycurl
import sys
import os
class Page:
def __init__(self):
self.contents = ''
def body_callback(self, buf):
self.contents = self.contents + buf
class MegaUploader:
def __init__(self, username=None, password=None, description = 'megaup'):
self.username = username
self.password = password
self.description = description
self.isLoggedIn = False
def login(self):
if path.isfile('/tmp/cookies.txt'):
os.remove('/tmp/cookies.txt')
if self.username and self.password:
postdict = [('username', self.username),
('password', self.password),
('login', '1'),
('redir', '1')]
t = Page()
c = pycurl.Curl()
c.setopt(c.POST, 1)
c.setopt(c.WRITEFUNCTION, t.body_callback)
c.setopt(c.URL, 'http://www.megaupload.com')
c.setopt(c.HTTPPOST, postdict)
c.setopt(c.COOKIEFILE, '/tmp/cookies.txt')
c.setopt(c.COOKIEJAR, '/tmp/cookies.txt')
c.setopt(c.VERBOSE, 0)
c.perform()
c.close()
self.isLoggedIn = path.isfile('/tmp/cookies.txt')
def upload(self, filepath):
filepath = path.normpath(path.join(os.getcwd(), path.basename(filepath)))
t = Page()
c = pycurl.Curl()
c.setopt(c.URL, 'http://www.megaupload.com')
c.setopt(c.WRITEFUNCTION, t.body_callback)
c.perform()
c.close()
r = t.contents.split('action="')[1]
upload_url = r.split('" target')[0]
upload_identifier = upload_url.split('=')[1]
postdict = [('UPLOAD_IDENTIFIER', upload_identifier),
('sessionid', upload_identifier),
('file', (c.FORM_FILE, filepath)),
('message', self.description)]
c = pycurl.Curl()
c.setopt(c.POST, 1)
c.setopt(c.WRITEFUNCTION, t.body_callback)
c.setopt(c.URL, upload_url)
c.setopt(c.HTTPPOST, postdict)
c.setopt(c.COOKIEFILE, '/tmp/cookies.txt')
c.setopt(c.COOKIEJAR, '/tmp/cookies.txt')
c.setopt(c.VERBOSE, False)
c.perform()
c.close()
r = t.contents.split('parent.downloadurl = \'')[1]
download_url = r.split('\';')[0]
if path.isfile('/tmp/cookies.txt'):
os.remove('/tmp/cookies.txt')
return download_url

0

0
 

Ecoder, editor codigo desde el navegador web

Publicado el Martes, 24 de marzo del 2009 por Alan

Ecoder, edita código desde el navegador web

ecoder

Ecoder se trata de un editor de código online pero que lo puedes acceder desde el navegador, permitiendo editar en una gran cantidad de lenguajes de programación, así como soporte de distintos formatos de texto.

La aplicación web está desarrollada en PHP y Javascript, permitiéndote editar código desde el navegador, sin la necesidad de que tengas instalado un IDE, aunque en el caso del código, tan solo podrás editarlo ya que no podrás compilarlo ni ejecutarlo, pero al menos si requieres de hacer unas modificaciones rápidas o comenzar con al programación de algún proyecto, esta es una buena opción ya que reconoce la sintaxis del código y te colorea las distintas palabras.

También te permite crear carpetas, subir o descargar archivos, editar varios archivos simultáneamente, hasta un máximo de 10 archivos, así como editar archivos ejemplo, si necesitas basarte en algún código.

Vía | despuesdegoogle

Comparte este articulo:

Posts relacionados

0

0
 

www.megavideodownloader.com

MegaVideoDownloader.com – Free Megavideo premium link generator that support download accelerator:

Megavideo URL:


Example accepted MegaVideo URL: http://www.megavideo.com/?v=IZ5T2YIS

NEWS

FOR ALL VISITORS (ESPECIALLY THE NEW ONE): I’ve posted the site rules on our blog, please read and understand it. Especially those who new visitor of MegaVideoDownloader.com, read the site rules here on our blog.

TIPS FOR CPALEAD SURVEY: if you want to complete on of CPALead surveys, please do not choose mobile phone survey/offer, they will charge your mobile phone number. Mobile phone offers/surveys are easily known by having mobile phone logo before the survey text. Also, beware of survey that ask you to install certain application, it’s highly probability that they are malware/spayware.
Don’t hesitate to contact me if you have any trouble using my site. You can also check which survey is mobile phone survey via this link: CPAlead survey list and type

FOR ALL: Site is up again. Sorry, I accidentally shutdown Apache server, reaized that just now..LOL. Report if the site is still not working.

About

This site will allow you to download files from MegaVideo with all premium features!. Enter your MegaVideo URL and the generator will check and create a valid MegaVideo premium link for you.

Your IP address: 77.225.252.26
Max. generated per day per IP: 4 (You can lift this limitation by doing survey once)
Used by your IP: 0
Maximum file size: none

0

0
 

API Megavideo en JS: ClippNabber

ClipNabber – Developer FLV Retrieval API:

Developer Tools

Mass FLV Retrieval API

This developer API allows you to use our code base to gather the FLV paths to online videos. In return we ask you to link to us on your website advertising or pay a small monthly fee. Contact us at support[at]clipnabber.com for more information

Mini Download Window for Embedded Videos

This system is great for websites that have lots of embedded videos on their websites, and want to provide users a way to download videos directly. Previously you had to send users to the main ClipNabber page, but we have a new easier system. It opens a smaller popup window, with less clutter, and it takes your user right to download link faster. Here’s how to implement it:

First you need to include our javascript file in your site. Just paste this code in your header
<script type=”text/javascript” src=”http://clipnabber.com/mini.js”></script>

Then whenever you want to include a download link, use text such as this, just with the youtube link replaced to be the specific link that you want to allow your users to download:
<a href=”http://clipnabber.com/mini.php?mode=2&txt1=http://www.youtube.com/watch?v=K7y8GC3DW4Y” onClick=”wopen(this.href); return false;”>Download Video</a>

Here’s an example: You can offer a download link as in the picture below:
Example Page

When the user clicks the link, he will be taken to a popup such as this one:
Example Popup

0

0
 

Obtener la URL de un archivo flv de MegaVideo por programación

Obtener la URL de un archivo flv de MegaVideo por programación « Daniel Vispo Blog:

Como todos ya sabeis MegaVideo se gana el pan de cada día a base de publicidad y suscripciones para que pagues y asíno recibas mensajitos del estilo ” Has visto 72 minutos, por lo que te voy a joder un ratito y te vas a quedar sin ver tu peli favorita durante 50 minutos”.

Esta protección se reliza a varios niveles, me explico:

- A través de tu IP comprueba que la cantidad de datos descargados corresponde en tiempo a x minutos y si superas ese tiempo el reproductor de flash te muestra ese maravilloso cuadro. Esta protección se puede saltar borrando tus cookies y cambiando tu ip. Se puede cambiar la ip de múltiples formas tales como reiniciar el router si posees IP dinámica o conectándote a un servidor proxy para enmascarar tu IP. Nota: Más adelante añadiré un post en el que explico como configurar un servidor proxy squid si posees un VPS o alguna máquina con OS Linux donde le puedas meter mano.

- A través del enmascarado de la URL del archivo flv, o lo que es lo mismo, del propio archivo *.flv que te sirve megavideo. Esto se hace mediante un algoritmo que a través de tres variables es capaz de descifrar el reproductor flash y mostrate así el video.

Pues bien, uno de los sintomas de la curiosidad hizo que intentara descubrir que tipo de algoritmo es el utilizado por el reproductor de flash y como conseguir la URL del video para poder reproducirla directamente en mi propio reproductor (por ejemplo MPlayer). Os explico paso por paso lo que hice y os añado el código fuente y binarios de un programita que hice para automatizar todos los pasos.

Paso uno. Que narices hace el reproductor de flash para conseguir la URL del archivo flv.

Cuando quieres ver un video en MegaVideo, la página que sirve éste tiene una URL del tipo:  http://www.megavideo.com/?v=F9UGA7EI donde a través del parámetro v=XXXXXXX la página cambia para mostrarte un video u otro en el reproductor flash que se incrusta en tu navegador.

Si hechas un vistazo al código fuente servido de seguida te das cuenta que no aparece la URL del video a ver, si no que al reproductor de flash se le pasan otro tipo de parámetros sin ningún sentido a priori.

Entonces si al reproductor no se le pasa la URL del archivo flv como narices lo sabe???. Sencillo!, es el reproductor quien calcula esta dirección URL a través de esos parámetros ininteligibles.

Vayamos entonces a ver que algoritmo es el que calcula dicha dirección…. pero espera!! que no puedes ver el código fuente del reproductor de flash!! Opss!!!

Paso dos. Descompilar el reproductor de flash para ver que hace.

Afortunadamente existen herramientas de terceros para descompilar un archivo compilado de flash. De todos es conocido la falta de protección del código fuente de flash, sobretodo si no se utilizan técnicas para enmascararlo un poco.

Una de las herramientas que encontré para decompilar el flash fue Flash Decompiler Trillix en su versión 3, que es una versión comercial (de esas de sacar tu VISA para conseguir una licencia) pero afortunadamente todo el mundo sabe como conseguir un serial by the face no? (no lo explico aquí que ya sois mayorcitos!).

Este programa es tan sencillo que basta con descargar el reproductor flash de la página de megavideo (archivo:  mv_player.swf que está en URL: http://wwwstatic.megavideo.com/mv_player.swf. Lo podeis ver facilmente en el código fuente), abrirlo con la aplicación de Trillix y ya teneis disponibles todos sus frames, text, images, sprites…. y lo más importante! su código actionscript donde encontrar la función que a través de tres variables forma la URL completa del archivo .flv

trillix

Paso tres. Donde está la famosa función?

Si indagamos un poco, observamos que en la carpeta Scripts, se encuentran varios ficheros y es el primero (Frame 0) donde debemos buscar.

La función se llama decrypt y toma como parámetros str, key1 y key2 que corresponden respectivamente a las variables: flashvars.un, flashvars.k1 y flashvars.k2 que encontramos en el código fuente de la página. Con estas tres variables se forma una cadena que se concatena al final de otra cadena del estilo: http://www[xxx].megavideo.com/files/, donde [xxx] es el valor de la variable  flashvars.s que también se encuentra en el código fuente de la página.

Un ejemplo es más claro:

Supongamos que hacemos una petición a la página: http://www.megavideo.com/?v=6FL2UG4V, ésta a través de su código fuente y para ese momento determinado (las varibles cambian con cada petición) nos devuelve la variable  flashvars.s = “603“, por lo que con esto ya tenemos una parte de la cadena: http://www603.megavideo.com/files/.

Ahora tan solo nos queda averiguar la otra parte de la cadena y esta se forma a través de la función decrypt que si le pasamos los valores que se encuentran en el código fuente de la página (flashvars.un = “d4e9bb2c757a7716eaa0c1fb7fb87784“,  flashvars.k1 = “31317“,  flashvars.k2 = “19798“) nos devuelve  d33bc94eaaa34a1795da23de2535ee23.

Finalmente solo nos queda añadir esta cadena al texto anterior y tenemos la URL completa al archivo flv.  http://www603.megavideo.com/files/d33bc94eaaa34a1795da23de2535ee2

Esta URL se la podemos pasar por ejemplo al MPlayer y ver directamente el video en nuestro reproductor de escritorio que tenga los codecs necesarios para reproducir este tipo de ficheros. Para muestra un botón:

Traducción a C# de la función decrypt y creación de una pequeña aplicación que muestra lo explicado en este post


programita

El código fuente de la aplicación lo podeis encontrar aquí y si lo que deseais son lo binarios para probarla directamente sin compilar código fuente lo encontrareis aquí.

code

Nos vemos en el próximo post!!!

0

0