Развитие личности, лайфхак, личный опыт, проекты и околоайтишные размышления - http://malkin.com.ua

Previous Entry Share Next Entry
Как скачать видео с RuTube
Я
malkinstanislav

Originally published at Развитие личности, лайфхак, личный опыт, проекты и околоайтишные размышления. Персональный блог Станислава Малкина. You can comment here or there.

RuTube Если посмотреть в интернетах, то рунет полон от криков по типу «как скачать с RuTube», не качается и т.д.

С задачей не справляются большинство известных сервисов для скачивания видео, таких как videosaver, savefrom.net и т.д.

Проблема в том, что команда RuTube решила, что они очень умные (хаха) и не разрешают пользователям запретила скачивать контент с их видеохостинга.

Это разрешают все видеохостинги известные (YouTube, Vimeo, Metacafe), а вот RuTube особенный, он решил со скачиванием бороться альтернативно-одаренным способом — переведя проигрывание видео на сайте на rtmp.

Но настоящих джедаев это конечно не остановит.

Сегодня я расскажу как легко и удобно можно скачать видео с RuTube (делал для своего видеохостинга и с вами поделюсь – с работающим примером на борту).

Update. Рабочий пример (пример удален!!!!)

Обновление от 07.05.2011 . Способ работает снова.

Поехали.

RTMPdump

Нам понадобится эта программа для скачивания наших видео. Скачать можно тут вот (винда) и тут (сорцы).

Также можно в Linux собрать из дерева пакетов (apt, yum etc), в Debian’e точно есть (apt-get install rtmpdump).

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

Как запустить программу из Linux думаю никому не нужно рассказывать, поэтому проведем ликбез для пользователей Windows.

Программа запускается через консоль (нажимаем win+r одновременно и в появившемся окне пишем «cmd» — без кавычек). Откроется системная консоль, где нужно будет перейти в директорию, где находится наша программа.

Программа не требует установки, достаточно распаковать в директорию удобную для навигации (например E:\tmp). Таким образом когда откроется консоль — делаем переход в данную директорию (в которую распаковали) через «cd E:\tmp» (опять же без кавычек). Теперь можно запускать программу.

Для начала стоит прочитать документацию к возможным ключам:

rtmpdump -h

Выведется листинг доступных ключей. Из них нас будут интересовать следующие:

–rtmp|-r url           URL (e.g. rtmp://host[:port]/path)

–flv|-o string         FLV output file name, if the file name is — print stream to stdout

–app|-a app            Name of target app on server

–swfVfy|-W url     URL to player swf file, compute hash/size automatically

Остальные можно найти в листинге (в нашем случае они не нужны).

Ключи RTMPdump

-r — задается адрес rtmp потока (путь к файлу), позже вернемся к этому.
-o — адрес и название файла, куда будет сохранен скачанный файл
-W — тут нужно указать адрес плеера RuTube для того, чтобы можно было идентифицировать себя, как обычный плеер (RuTube не разрешает доступ для видео, не проигрываемом в их плеере, поэтому нужен такой финт ушами). В нашем случае это http://rutube.ru/player.swf
-a — адрес приложения, которое занимается стриммингом на стороне сервера (станет понятнее на примере)

В целом все понятно, только читатель спросит меня — откуда же взять этот самый адрес для ключа -r ? Логично, его нужно получить сначала.

Рассмотрим как это сделать на примере.

Адрес RTMP потока

Возьмем видео с RuTube, например это:

Адрес: http://rutube.ru/tracks/3698782.html?v=c858060713937cf911caaa8cb0737598

Из данного урла нас будет интересовать часть, которая стоит после ?v=, тоесть c858060713937cf911caaa8cb0737598 — это и есть идентификатор видео в системе.

Дальше нам нужно зайти по адресу http://bl.rutube.ru/c858060713937cf911caaa8cb0737598.xml и увидеть собственно адрес rtmp потока.

Для нашего примера содержание файла:

<?xml version="1.0"?>
<response status="302">
<finalAddress><![CDATA[rtmp://video-3-13.rutube.ru:1935/rutube_vod_2/_definst_/mp4:vol21/movies/c8/58/c858060713937cf911caaa8cb0737598.mp4?e=1287779944&s=20b75eb1541beb9cad2c69c463593e79]]>
</finalAddress>
</response>

Таким образом адрес rtmp потока следующий -

rtmp://video-3-13.rutube.ru:1935/rutube_vod_2/_definst_/mp4:vol21/movies/c8/58/c858060713937cf911caaa8cb0737598.mp4?e=1287779944&s=20b75eb1541beb9cad2c69c463593e79

Скачиваем видео

Т.к. у нас теперь адрес потока — мы готовы к скачиванию видео.

Конечная команда для нашего видео из примера будет следующей:

rtmpdump -r "rtmp://video-3–13.rutube.ru:1935/" -a "rutube_vod_2/_definst_" -y "mp4:vol21/movies/c8/58/c858060713937cf911caaa8cb0737598.mp4?e=1287777283&s=b38e8476aea1d5c074c53ac4433ddca8" -o my.mp4 -W "http://rutube.ru/player.swf"

Если все выполнили правильно, результат будет приблизительно следующий:

RTMPDump v2.3
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
Connecting ...
INFO: Connected...
Starting download at: 0.000 kB
INFO: Metadata:
INFO:   duration              36.80
INFO:   moovPosition          28.00
INFO:   width                 480.00
INFO:   height                272.00
INFO:   videocodecid          avc1
INFO:   audiocodecid          mp4a
INFO:   avcprofile            66.00
INFO:   avclevel              21.00
INFO:   aacaot                2.00
INFO:   videoframerate        24.72
INFO:   audiosamplerate       44100.00
INFO:   audiochannels         2.00
INFO: trackinfo:
INFO:   length                802.00
INFO:   timescale             25.00
INFO:   language              und
INFO: sampledescription:
INFO:   sampletype            avc1
INFO:   length                1623040.00
INFO:   timescale             44100.00
INFO:   language              und
INFO: sampledescription:
INFO:   sampletype            mp4a
2859.766 kB / 36.78 sec (99.9%)
Download complete

Собственно на этом все.

Постскриптум

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

Однако возможно это помогло RuTube разгрузить свои сервера. Или перейти с псевдостримминга на стримминг по RTMP. Однако я в это не слишком верю.

Для демонстрации работы подобной вещи я сделал вот такой вот пример на скору руку:

http://malkin.com.ua/rutube.php

Пробуйте в работе – пишите отзывы :)

P.S. Данная заметка никоим образом не хочет оскорбить или задеть чувства разработчиков RuTube. Данный пример – всего-лишь демонстрация возможностей работы rtmpdump на примере RuTube.


?

Log in

No account? Create an account