Как скачать видео с сайта: продолжение.

В своей предыдущей статье Как скачать видео с сайта я рассказал о 4-х способах сохранения видеофайлов с сайтов, и самый популярный из них – достать файл из кэша браузера. Однако сейчас ситуация изменилась, после обновления Flash Player стал себя вести по-другому. Он по-прежнему кэширует видеофайлы на диске в директории /tmp, однако невооруженным взглядом такие файлы не видны; команда ls ничего не покажет.

Однако, если начать загрузку интересующего нас видео ролика:

и в командной строке запустить:

$ lsof | grep Flash
plugin-co 12081 ed 16u REG 8,4 32839768 473170 /tmp/FlashXXqNVerC (deleted)

Интересное кино получается. Файл открыт, используется, и при этом удален! Ну и хрен с ним, все равно его можно будет «оживить» простой командой копирования из поддиректории /proc/

Не буду томить, вот оживляющий скрипт:

#!/bin/bash
pid=`pgrep -f flashplayer | tail -1`
file=`lsof -p $pid | grep '/tmp/Flash' | awk 'END{print "/proc/" $2 "/fd/" $4}' | sed 's/[rwu]$//'`
/bin/cp $file "/tmp/movie.flv"

после запуска скрипта интересующее нас видео будет лежать в /tmp/movie.flv

Просмотр первого канала онлайн

Дело было вечером, отходить от компа было лень. И тут начинается какая-то передача, которую не хотел пропустить. Думаю, а не посмотреть ли мне ее онлайн? Зашел на сайт первого канала, кликнул ссылку – и вроде бы заработало все под моей OpenSuSe 11.2. Да только спустя 15 минут просмотра в полноэкранном режиме изображение свернулось в маленький квадрат, оставив остальную часть экрана в черном цвете.

«Интересно девки пляшут», подумал я, поперхнувшись пивом. А не обновить ли мне mplayer и браузерный плагин к нему? Нарушил я золотое правило админа и таки обновил его до последней версии. И получил не совсем то, что хотел, ибо онлайн трансляции первого канала перестали показываться.

Стал я разбираться в чем дело, и нашел вот что. Если взять URL online трансляции и скормить его обновленному mplayer’у, то видим примерно вот такие сообщения об ошибках:

$ mplayer "http://live3.1internet.tv/1tv-efir?key=+qs2TPeN6JUcMK7AQRfDiBKE&wmbitrate=350000"

....
Ahhhh, stream_chunck size is too small: 0
Error while parsing chunk header
Ahhhh, stream_chunck size is too small: 4
Error while parsing chunk header
Ahhhh, stream_chunck size is too small: 0
Error while parsing chunk header
Ahhhh, stream_chunck size is too small: 4
Error while parsing chunk header
Ahhhh, stream_chunck size is too small: 0
Error while parsing chunk header
Ahhhh, stream_chunck size is too small: 4
Error while parsing chunk header
...

Ну все, думаю, приплыли… Сломался mplayer.

Весь мозг себе сломал, пока пытался починить. К слову, mplayer так его и не стал показывать, зато нашлось совсем другое решение. Первый канал еще транслирует версию для Silverlight, которую стоило попробовать.

Silverlight – это поделка Microsoft, который с линуксом не шибко дружит. Однако добрые люди написали порт под Linux c открытым кодом, и назвали его Moonlight. И даже сделали плагин для Firefox, и что самое интересное, плагин работает! Только ставить надо не последнюю версию плагина, а последнюю стабильную (2.4).

После установи плагина можно зайти на страницу онлайн трансляции первого канала, и плагин предложит скачать майкрософтовские кодеки для просмотра трансляции. Скачав их и согласившись с лицензионным соглашением Microsoft, онлайн трансляции первого канала будут доступны для просмотра.

Но опять же, первый канал не позволяет смотреть свои трансляции кому попало, и может отсекать зарубежных посетителей. Тогда для просмотра первого канала вам потребуется российский IP адрес, который легко можно получить, заказав лучший хостинг в своем классе.