If i help You, send me BTC please 1CJGz4UGyL7hTjPeN8j7fu9LRmmWiWSRHi

Как сохранить flash видео с сайта в Ubuntu

Постов 161 из 175

save flash from site to pc
Недавно встал такой вопрос.
На просторах интернетов было найдено много решений
например плагин Downloadhelper для Firefox,
или musicsig -специальный плагин для закачки контента (и не только) с сайта Вконтакте для Google Chrome.

Плагины конечно хороши, но в них (и не только в этих) есть один существенный минус — они закачивают видео только с поддерживаемых сайтов.

С не поддерживаемых вполне может и не скачать:). Кстати обнаружил для себя в списке сайтов Downloadhelper помеченных «с неприличным содержанием» несколько просто интересных сайтов НЕ ПОРНО:) например http://liveleak.com/

Но да, сейчас не о том.

Видео качать хочется со всех источников — погуглив еще я нашел очень интересную инструкцию на habrahabr.ru

Отсеяв из нее то, что не смог осуществить по собственной кривизне рук (или еще почему — это ж убунту:) вот что я для себя вынес:

Запускаем в Firefox нужное нам видео, ждем пока оно закешируется.

Потом заходим в терминал и проделываем следующее.

Ищем PID (Process IDentifier)процесса, в котором запущен флеш-плагин фаерфокса, для чего вводим в терминале:

ps x | grep firefox

Получаем в ответ такое примерно такое:

1762 ?        S      0:00 /bin/sh /usr/lib/firefox-3.6.11/firefox
1766 ?        S      0:00 /bin/sh /usr/lib/firefox-3.6.11/run-mozilla.sh /usr/lib/firefox-3.6.11/firefox-bin
1770 ?        Sl     0:40 /usr/lib/firefox-3.6.11/firefox-bin
1827 ?        Sl     0:20 /usr/lib/firefox-3.6.11/plugin-container /usr/lib/flashplugin-installer/libflashplayer.so 1770 plugin true
1911 pts/0    S+     0:00 grep --color=auto firefox

Увидели, что PID флеш-плагина = 1827.

Теперь, зная PID, можно посмотреть список всех открытых процессом файлов, используя файловую систему procfs:

ls -l /proc/1827/fd

l-wx------ 1 alex alex 64 2010-10-27 23:50 21 -> /tmp/FlashXXVWshZC
lr-x------ 1 alex alex 64 2010-10-27 23:50 22 -> /tmp/FlashXX3DclYj
lrwx------ 1 alex alex 64 2010-10-27 23:50 3 -> socket:[12577] lr-x------ 1 alex alex 64 2010-10-27 23:50 4 -> anon_inode:[eventpoll] lrwx------ 1 alex alex 64 2010-10-27 23:50 42 -> socket:[12578] l-wx------ 1 alex alex 64 2010-10-27 23:50 5 -> socket:[12654] lr-x------ 1 alex alex 64 2010-10-27 23:50 6 -> socket:[12655] l-wx------ 1 alex alex 64 2010-10-27 23:50 7 -> pipe:[12656] lr-x------ 1 alex alex 64 2010-10-27 23:50 8 -> pipe:[12656] l-wx------ 1 alex alex 64 2010-10-27 23:50 9 -> pipe:[12657]

Из довольно большого количества файлов меня интересуют те, которые лежат в директории /tmp/ — это и есть то видео, которое я хочу достать. В моем случае — вкладок две, соответственно и два временных файла с видео. Дескриптор первого видео — 21, второго -22. Теперь сохраним это видео куда-то, например в домашнюю директорию, назвав файлы video21.flv и video22.flv:

cp /proc/1827/fd/21 /home/alex/video21.flv

cp /proc/1827/fd/22 /home/alex/video22.flv

Вот собственно и весь метод. Заодно и полезный экскурс в некоторые команды Linux.
P.S. Почему то скрипт приведенный в оригинальной статье не заработал так, как нужно, поэтому тут его нет.

, , , , ,

guest15/05/2011 at 22:21Reply

У меня заработал скрипт из конца статьи:

#!/bin/bash

PID=`ps x | grep libflashplayer.so | grep -v grep | awk ‘{print $1}’`
FD=`ls /proc/$PID/fd -l | grep tmp | awk ‘{print $8}’`
cp /proc/$PID/fd/$FD $1

Насколько я понял, скрипт работает если открыт только один ролик.

Аноним28/05/2011 at 16:28Reply

Так, думаю, будет разумней. Заключил в цикл, таймаут 30 сек и вместо копирования отдельного файла — создание ссылок всего содержимого.
Перед использованием обратите внимание что всё содержимое папки /home/anonim/films/ УДАЛЯЕТСЯ.
#!/bin/bash
while true;
do
rm /home/anonim/films/*
for P in `pidof plugin-container`; do
for F in /proc/$P/fd/* ; do
FROM=$F
[[ $FROM ]] && ln -s $FROM /home/anonim/films/
done
done
sleep 30;
done
exit

3topora30/10/2011 at 14:41Reply

…а как сохранить вот такое видео?

http://www.youtube.com/watch?v=umVxAQ9EcQg&feature=watch-now-button&wide=1

Menu