lsof |grep Flash
Que sirve para buscar el archivo de vídeo, mostrando algo de este estilo:
plugin-co 2925 kaos1204 42u REG 8,6 1746126 141520 /tmp/FlashXXSccA9R (deleted)
Y cuando el archivo esté cargado al completo en el navegador ya se puede copiar fácilmente teniendo en cuenta los números resaltados de lo mostrado en el anterior comando de búsqueda, que dando así:
cp /proc/2925/fd/42 video.flv
Pero en los comentarios un tal «Vampire» programó un script en bash para usar este método de forma fácil y cómoda; y como me gustó, lo prové, va bien y no quiero perderlo, pues lo pongo aquí que lo uso como chuletario para cuando me haga falta jeje:
#!/bin/bash
timeSleep=100; #Modificar para el tiempo de espera en la comprovacion de descarga.
echo Herramienta para salvar videos flash de firefox.
echo Solo mantenga abiertos los videos que necesita salvar.
echo Buscando videos flash...
#findFile=$(lsof | grep -i flash | grep "deleted");
PID=$(ps -C plugin-container | grep "plugin" | awk -F" " '{print $1}');
findFile=$(lsof -p $PID | grep -i flash | grep "deleted");
echo
c=0;
while IFS= read -r; do
line="$REPLY";
folderFlash=$(echo $line | awk -F" " '{print $2}');
fileFlash=$(echo $line | awk -F" " '{print $4}');
copyNumber=${#fileFlash};
copyNumber=$(expr $copyNumber "-" 1);
fileFlash=${fileFlash:0:$copyNumber};
urlFiles[$c]="/proc/$folderFlash/fd/$fileFlash";
c=$((++c));
done<<<"$findFile"
echo Se han encontrado $c archivos de video flash;
c=0;
for fileURL in ${urlFiles[*]}; do
fileSizeOld[$c]=$(du -sL $fileURL | awk -F" " '{print $1}');
echo "Ubicacion: $fileURL Capacidad: ${fileSizeOld[$c]}";
c=$((++c));
done
echo
echo Esperando que la descarga de los archivos termine.
echo
vid=0;
while [ $c != 0 ]
do
sleep $timeSleep;
i=0;
while [ $i != $c ]
do
fileURL=${urlFiles[$i]};
if [ -e $fileURL ]
then
fileSizeNew=$(du -sL $fileURL | awk -F" " '{print $1}');
if [ ${fileSizeOld[$i]} != $fileSizeNew ]
then
fileSizeOld[$i]=$fileSizeNew;
echo El archivo $fileURL ahora contiene $fileSizeNew bytes.
i=$((++i));
else
echo La descarga del archivo $fileURL a concluido o se a dejado de descargar.
cp $fileURL "video$vid.flv";
echo El archivo $fileURL se a copiado a la direccion: $PWD/video$vid.flv;
vid=$((++vid));
for ((j=$i;j<=$c;j++)); do
urlFiles[$j]=${urlFiles[$j+1]};
fileSizeOld[$j]=${fileSizeOld[$j+1]};
done
c=$((--c));
fi
else
echo Se perdio el video $fileURL porque se ha cerrado la pagina de reproduccion.
for ((j=$i;j<=$c;j++)); do
urlFiles[$j]=${urlFiles[$j+1]};
fileSizeOld[$j]=${fileSizeOld[$j+1]};
done
c=$((--c));
fi
done
done
echo Pulse enter para continuar.
read
Yo le he modificado el tiempo de espera pero el resto es íntegro de Vampire ya que funciona bien tal y como está. Si a alguien le viene bien pues genial, yo al menos estoy seguro de que le daré buen uso jeje.