воскресенье, 10 февраля 2013 г.

Как загрузить видео с OnlineTV.ru - 2 (попроще)

Способ распотрошить обмен браузера и RTMP-сервера при помощи wireshark рабочий, но это, так сказать, тяжелая артиллерия. В принципе в комплекте RTMPDump есть утилита-прокси сервер rtmpsuck.exe, которая, если на нее перенаправить запросы браузера "наружу", на порт 1935, выдаст все параметры, с которыми браузер запрашивает данные по RTMP. В описании есть и пример команды, как это перенаправление сделать средствами linux. Под windows средствами OS это сделать затруднительно, но зато есть RTMPDumpHelper от NirSoft. RTMPDumpHelper пытается внедрить свою dll во все процессы, использующие интернет, отлавливает обращения на порт 1935, перенаправляет их на rtmpsuck.exe, а ответ, который возвращает rtmpsuck.exe передает обратно в процесс браузера.

Итак, качаем RTMPDumpHelper и RTMPDump и распаковываем все в один каталог.

Запускаем браузер, открываем страницу с видео, например http://www.onlinetv.ru/video/643/.
Запускаем RTMPDumpHelper.exe, RTMPDumpHelper автоматически ставит на прослушку все обращения браузера на порт 1935 и запускает rtmpsuck.exe из комплекта RTMPDump, которому будет их переадресовывать.
Запускаем на просмотр видео. В браузере смотрим видео, а в окне rtmpsuck.exe видим параметры первоначального обращения и второго, после переадресовки:



В это же время проигрываемое видео автоматически сохраняется в файл, но можно и скопировать параметры из окошка rtmpsuck.exe в команду для FFmpeg, чтобы например, создать файл только со звуком:
ffmpeg -i "rtmp://88.212.207.11:1935/onlinetv/mp4:onlinetv/32/643/petrovic_hq.mp4 \
playpath=mp4:onlinetv/32/643/petrovic_hq.mp4 \
swfUrl=http://www.onlinetv.ru/static/flash/player.swf?v=1.0.5.5" \
-vn petrovic.mp3

или видео полностью:
ffmpeg -i "rtmp://88.212.207.11:1935/onlinetv/mp4:onlinetv/32/643/petrovic_hq.mp4 \
playpath=mp4:onlinetv/32/643/petrovic_hq.mp4 \
swfUrl=http://www.onlinetv.ru/static/flash/player.swf?v=1.0.5.5" \
-c copy petrovic.mp4

з.ы. К сожалению RTMPDumpHelper иногда падает и при этом его dll остается загруженной в кучу процессов :(, но что еще хуже, после одного падения RTMPDumpHelper уже невозможно нормально запустить, он начинает падать сразу после запуска, и так до перезагрузки компьютера.

1 комментарий:

  1. Спасибо, все работает, как описано. Отличная инструкция.

    ОтветитьУдалить