rtmpdump-logo

Многие сайты, такие как rutube стали отказываться от распространения видео через обычный HTTP протокол и перешли на RTMP (Real Time Messaging Protocol) – проприетарный протокол потоковой передачи данных, без использования кэша браузера. Это сделано для того, чтобы обезопасить свой контент и предоставить пользователям только онлайн просмотр без возможности сохранять видео и аудио файлы. По этой причине скачать видео с этих сайтов старыми способами теперь нет возможности. К примеру всеми любимое дополнение для Firefox’а, DownloadHelper не может скачивать RTMP ссылки. В этом посте будет рассказано как получить ссылку на поток, как и чем его можно сохранить и воспроизвести. Будут использоваться такое ПО как rtmpdump и vlc (последний для воспроизведения, см. под катом).

Для Linux и Windows имеется отличная утилита rtmpdump. С помощью нее можно как скачать видео, так и посмотреть в плеере отправив stdout в vlc (это работает как под Linux так и под Windows).

Пример использования:

Имеем rtmp-ссылку, ее можно получить через сервисы savefrom, keepvid и др., DownloadHelper, либо используя sniffer, советую “URL Snooper”;, сам пользуюсь WireShark:

rtmp://video-12-2.rutube.ru/rutube_vod_2/mp4:n6vol1/movies/b2/1/b2115760d6feb5a2925dcd6c090deebe.mp4?e= 1329397438s=85e8a456ce1268b52a5db19a344e4d13MI

Качаем sniffer URL Snooper, разархивируем, устанавливаем WinPcap из папки и запускаем sniffer URLSnooper.exe. На вкладке “General options”; запускаем авто определение сетевой карты “Auto Determine Network Adapter Now”;. Затем жмем кнопку “Shiff Network”;. Открываем в браузере страницу с видео и в сниффере находи искомую rtmp-ссылку.

URL snooper

Затем для скачивания видео в командной строке вводим:

C:\rtmpdump --rtmp "rtmp://video-12-2.rutube.ru" 
--app "rutube_vod_2" 
--swfUrl "http://rutube.ru/player.swf" 
--playpath "mp4:n6vol1/movies/b2/11/b2115760d6feb5a2925dcd6c090deebe.mp4?e=13293974
38&s=85e8a456ce1268b52a5db19a344e4d13MI" 
--flv "output_video.flv"

Запустится процесс скачки и побежит счетчик процентов, после появится сообщение “Download complete”;, сигнализирующее об успешности операции.

rtmpdump download video

По умолчанию скачанный файл будет в папке пользователя “c:\Users\Имя пользователя”;

Напрямую плеер vlc не поддерживает rtmp поток, для этого нужно воспользоваться rtmpdump. Для того чтобы не скачивать,а открыть видео в плеере, нужно параметр

--flv "output_video.flv"

заменить на —

-quiet | "C:\Program Files\VideoLAN\VLC\vlc.exe" -

Чтобы смотреть rtmp через vlc или другой плеер, вводим в командную строку:

C:\rtmpdump --rtmp "rtmp://video-12-2.rutube.ru"
--app "rutube_vod_2"
--swfUrl "http://rutube.ru/player.swf"
--playpath "mp4:n6vol1/movies/b2/11/b2115760d6feb5a2925dcd6c090deebe.mp4?e=13293974
38&s=85e8a456ce1268b52a5db19a344e4d13MI"
--quiet | "C:\Program Files\VideoLAN\VLC\vlc.exe" -

Запустится плеер с потоковым видео:

rtmpdump vlc

Использование в боевых условиях:

В моем случае данный механизм использовался для того, чтобы записать все залы (а их было 6) конференций YAC 2013 (Yet Another Conference) от Яндекса и конференцию HighLoad++, как раз в данный момент её записываю.

С моральной точки зрения я чист, так как компания, в которой я работаю, оплатила доступ к этой трансляции, а слушать одновременно 3 зала нет возможности, хотя HighLoad и обещал выложить записи конференции, я решил подстраховаться.

Ссылки:

Скачать rtmpdump

Скачать vlc

Скачать URL Snooper

Оригинал статьи здесь

Комментарии

comments powered by Disqus