Ubuntu 12.04 (Precise) - Instruções do Firefox 11 Uma versão modificada do script bash do chlumma1.
Com um editor de texto, salve o código abaixo no arquivo chamado "getvids.sh". Mova-o para o local em que você deseja salvar vídeos. Clique com o botão direito do mouse no arquivo, vá para Propriedades, Altere as Permissões para "Permitir Execução como um Programa".
Tudo o que você precisa fazer é clicar no script, selecionar "Executar no Terminal" e ele salvará todos os arquivos de vídeo nesse diretório. Para salvar o vídeo inteiro, ele precisa ser concluído no seu navegador. Ele salvará vídeos de praticamente qualquer site, incluindo o youtube, vimeo, dailymotion, metacafe, liveleak, facebook . Basta excluir os arquivos de vídeo que você não deseja.
(Se um vídeo que você quer não está sendo salvo, então o site provavelmente está usando um formato de fluxo proprietário que não pode ser salvo por nenhum programa de recuperação de cache. Exemplos: Hulu, netflix, alguns vídeos do youtube?) O player é ótimo para assistir a vídeos em flash.
#!/usr/bin/env bash
# getvids.sh [save_folder]
SAVE_FOLDER="$HOME" # User editable
# If the below option is used, then this script should be run in a terminal.
#CPMOD="-i" # Uncomment to prevent file overwrites
PATERN="libflashplayer"
ALL_PID='pgrep -f $PATERN'
if [ $? -eq 1 ]; then
echo ERROR: Flashplayer not running
exit 1
fi
if [ ! -z $1 ]; then
echo "Setting save location: $1"
SAVE_FOLDER="$1"
fi
if [ ! -d "$SAVE_FOLDER" ]; then
echo "Save location doesn't exist: $SAVE_FOLDER"
exit 1
fi
for PID in $ALL_PID; do
declare -a OUTFILES=($(ls -lt1 /proc/$PID/fd | grep '/tmp/Flash' | sed 's/^.*\/tmp\///' | sed 's/\ .*$//'))
declare -a FDS=($(ls -lt1 /proc/$PID/fd | grep '/tmp/Flash' | awk '{ print $9 }' ))
for ((i=0; i<${#FDS[@]}; i++)); do
saveas="$SAVE_FOLDER/${OUTFILES[i]}.flv"
echo "Copying video ${FDS[i]} to $saveas"
cp $CPMOD "/proc/$PID/fd/${FDS[i]}" "$saveas"
done
done
Aqueles que sabem um pouco sobre o terminal podem editar as duas primeiras variáveis e obter um pouco de funcionalidade extra. Como alternativa, para exibir os arquivos ao vivo, você pode digitar isso em um terminal para descobrir onde eles estão for i in $(pgrep -f libflash); do find /proc/$i/fd/ -ls | grep "/tmp/Flash" | awk '{ print $11 }'; done
PS. Além disso, excelente trabalho chlumma1, mas demitir o estilo de programação C faz um loop um pouco;)