В своей предыдущей статье Как скачать видео с сайта я рассказал о 4-х способах сохранения видеофайлов с сайтов, и самый популярный из них – достать файл из кэша браузера. Однако сейчас ситуация изменилась, после обновления Flash Player стал себя вести по-другому. Он по-прежнему кэширует видеофайлы на диске в директории /tmp, однако невооруженным взглядом такие файлы не видны; команда ls ничего не покажет.
Однако, если начать загрузку интересующего нас видео ролика:
Интересное кино получается. Файл открыт, используется, и при этом удален! Ну и хрен с ним, все равно его можно будет «оживить» простой командой копирования из поддиректории /proc/
Дано: несколько фоток и подходящая музыка. Требуется: сделать из них простенький клип. Софт: mencoder (freeware)
Чтобы нормально все выглядело, нам надо знать продолжительность музыкального трека в секундах и количество фотографий. В моем случае трек был на 132 секунды, и у меня было 14 фоток. Получается, чтобы равномерно их показать, смена кадров должна происходить один раз в 9,43 секунды (132 / 14). Соответственно, FPS (Frames Per Second) для ролика составит (14 / 132) = 0,106
Мне, как и любому программисту, лениво руками считать количество файлов и продолжительность музыкального трека. Поэтому я cваял простенький скрипт на Perl, который и делает за меня эту грязную работу:
#!/usr/bin/perl -w use MP3::Info; my $mask = "*.jpg"; my @pics = glob($mask); my @sounds = glob("*.mp3"); my $a = get_mp3info($sounds[0]); my $seconds = $a->{'SECS'}; my $pics_number = $#pics + 1; my $FPS = $pics_number / $seconds; my $cmd = "mencoder mf://".$mask." -mf fps=".$FPS." -ovc lavc -lavcopts vcodec=mpeg4 -audiofile ".$sounds[0]." -oac mp3lame -lameopts abr:br=160 -srate 44100 -ofps 25 -o output.avi"; my $res = system($cmd);
И вот что у меня получилось:
Копирайты: фотки мои, музыка The Dead Rocks, One Million Dollar Theme.
Есть как минимум 4 разных способа сграбить видео с дружественных сайтов. Итак:
1. Воспользоваться сторонним сервисом, вроде этого: keepvid.com.
Плюсы: удобно; дружественный сайт не увидит ваш IP адрес.
Минусы: Зависимость от стороннего сервиса; не все сайты с видео поддерживаются
2. Использовать плагин в браузере, для Firefox это могут быть Download Helper, Flash Video Resources Downloader или подобная приблуда.
Плюсы: легко настраивается; несложно скачивать
Минусы: Firefox от плагинов жрет больше памяти; работает с небольшим числом сайтов
3. Записать все, что происходит на экране, в видеофайл. Для линуксоидов это совсем не сложно, куча бесплатных програм позволяет это делать. Например, RecordMyDesktop.
Плюсы: Работает железобетонно всегда и везде; Можно отключить звук при записи, или наложить свой; Видео можно записывать не только целиком, но и частями, обрезая всяческие логотипы, бегущие строки и прочий мусор; Можно записывать не только видео, но и движения курсора мыши, например.
Минусы: Требуется мощный компьютер, чтобы одновременно проигрывать видео и записывать его, ресурсы кушаются совсем не кисло; Качество записанного изображения может быть хуже, если число кадров в секунду в записываемом видео не совпадает с тем же параметром в проигрываемом ролике (т.е. требуется дополнительная настройка).
И на закуску, мой любимый способ: 4. Вытащить видео из кэша браузера Работает оно примерно так. Открываем интересующее нас видео:
Ждем, когда видео полностью загрузится, и лезем в /tmp , т.к. там Firefox хранит свой кэш. Вот что я нашел у себя:
ed@notebook:/tmp> ls -l Flash* -rw------- 1 ed users 14196852 Ноя 7 14:35 FlashZlG62O
Копируем его куда-нибудь, и переименовываем в “The Unforgiven cover with solo – Metallica.flv” . Все, ролик можно смотреть оффлайн.
Update: В комментариях к этому сообщению я узнал о более элегантном способе получить видеофайл из кэша. После того, как видео полностью загрузилось, надо в адресную строку Firefox вбить: about:cache Далее смотрим дисковый кэш (Disk cache device => List Cache Entries, и ищем файл по размеру (он совпадает байт в байт с временным файлом). И за пару кликов его легко можно сохранить в любое удобное место. По трудозатратам такой способ чуть сложнее копирования временного файла, но зато он работает под Windows и позволяет сохранять файл даже в том случае, когда копирование не получается (например, если винда ругается на то, что файл открыт).
Плюсы: Не надо ничего дополнительно ставить, все работает и так. На всех сайтах, что я проверял, этот способ работает на ура.
Минусы: Надо напрягаться, копировать и переименовывать файл. Иначе рано или поздно кэш очистится и видео придется качать заново. Но этот недостаток не такой уж и страшный.
Update 2: Если в /tmp не находятся файлы по команде
$ ls -l Flash*
это означает, что у вас используется обновленная версия Flash-плеера, и чтобы вы смогли достать файл из кэша, прочитайте статью Как скачать видео с сайта: продолжение.
Если вам чуждо творчество группы Nirvana – проходите мимо, этот пост не для вас. Здесь я решил собрать самые интересные переделки легендарной песни Rape Me.