De un tiempo a esta parte son varias las personas que han indicado, a través de los comentarios y el soporte técnico, que no pueden obtener los vídeos flash de Youtube y servicios online similares.
Algunos argumentan que puede deberse al cambio de versión de Flash pero he podido comprobar que utilizando el mismo servicio en equipos diferentes (mi equipo de sobremesa tiene un linux 32 bits mientras que el portátil es de 64 bits) con la misma distribución Linux (Arch) el comportamiento varía por lo que parece que la responsable es la implementación de Flash para las diferentes arquitecturas.
Veamos cómo solucionar el problema
Procedimiento
Como bien menciona Codix en los foros de Ubuntu, la idea es buscar entre los archivos abiertos por los distintos procesos
lsof | grep Flash
observamos que sólo existen dos ficheros flash diferentes en la lista
debemos fijarnos en los siguientes valores de cada uno de ellos
de modo que la rutas a los vídeos flash serán
- /proc/8020/fd/38
- /proc/8021/fd/32
que observamos que han sido generadas utilizando
- el valor de la primera columna (8020 y 8021)
- los valores de la quinta columna sin la letra (38 y 32)
Simplificando el trabajo
Definir función Linux
Aunque no es complicado he optado por crearos una secuencia de comandos Linux para evitaros complicaciones.
for f in `lsof | grep '/tmp/Flash' | awk -F ' ' '{ if ($5!="REG") print "/proc/" $2 "/fd/"$5}' | sort | uniq | sed 's/\([0-9]\+\)[a-z]\+/\1/g'`; do cp $f $(mktemp -u /tmp/VideoFlash-XXXXXXXXXX.flv); done
como no nos acordaremos de tanto comando lo mejor es crear una función con ella
flash() { ... }
sustituyendo los puntos suspensivos con el comando anterior.
Para que esté disponible siempre que abramos una terminal bastará con incluir dicha función dentro del fichero ~/.bashrc
NOTA: recuerda que ~ es tu directorio de usuario 😉
Usar la función
Tan sencillo como escribir en la línea de comandos
flash
NOTA: flash porque he llamado así a la función en .bashrc 😉
Si te vas al directorio /tmp encontrarás una serie de ficheros (tantos como tengas abiertos en el navegador) .flv con los Flash que andas buscando
Conclusión
Aunque no es tan sencillo como en los sistemas de 32 bits (donde bastaba buscar en /tmp) espero que no os resulte excesivamente complicado recuperar los vídeos Flash que estéis visualizando con el script y/o la explicación del truco ofrecida.
Es raro que haya diferencia entre la versi´ñon de 32 bits y la de 64…¿a qué responderá?
Me gustaMe gusta
Gracias por la info 😉
Me gustaMe gusta
Hola, tengo un problema… cuando lsof | grep Flash me da la información del vídeo pero al final pone (deleted) ejemplo:
xxx@xxx:~$ lsof | grep Flash
npviewer. 2485 xxx 11u REG 8,6 17552220 524332 /tmp/FlashXXC39biI (deleted)
si alguien sabe como hacer para que no suceda eso se lo agradeceria
Me gustaMe gusta
El «deleted» es normal porque hay múltiples desconexiones y va borrando el fichero de /tmp; si estudias el script verás que se puede obtener sin problemas (a pesar de el mensaje)
Me gustaMe gusta
lo intente con función, pero queda esperando que le ingrese algo….
xxx@xxx:~$ flash()
>
que debería poner? o que es lo que espera que se ingrese?
Me gustaMe gusta
¿Te parece que lo hablemos a través del soporte técnico para no meter ruido en el post?
Me gustaMe gusta
Podrias poner el script para descargar, ya que por algun motivo no funciona copiando y pegando 😦
seguro que se pierde algun caracter en el html
Me gustaMe gusta
En archlinux estoy usando youtube-dl, es facil de usar y te baja el video con mayor calidad si no le pasas parámetros.
Tuve problemas con el plugin de flash de 64, asi que instale el de 32 con nspluginwrapper.
Saludos! 🙂
Me gustaMe gusta
Gracias por compartir el problema con el plugin… se abre nueva vía de investigación.
Un saludo y bienvenido
Me gustaMe gusta
Mira, yo tuve problemas el plugin de 64 cuando ponia pantalla completa, asi que no creo que afecte al script que mostras, igual uno nunca descarta nada sin probar jaja.
Saludos!
Me gustaMe gusta
Gracias por la data XD
Me gustaMe gusta
A ti por probarlo
Me gustaMe gusta
al parecer se debe dejar cargar todo el video y no cerrar la pestaña para poder realizar todo el proceso, sino el video no se obtendra completo
Me gustaMe gusta