oio11: (Default)
[personal profile] oio11

Скачивание с rutube.ru по rtmp-ссылкам

Rutube >

В данной статье я постарался собрать все рабочие способы, по которым возможна закачка видео с серверов рутуба:

Вступление

  1. rtmpdump / adobehds.php (GNU/Linux, Windows, Android)
    1. Mozilla Firefox: дополнение UnPlug (GNU/Linux, Windows)
    2. GUI: Raljeta (Windows)
    3. GUI: RutubeGet (Windows)
  2. Hensense Coojah 6 (Windows)
  3. Orbit Downloader: GrabPro (Windows)

Вступление

Примерно с начала 2010 года рутуб начал переводить выдачу контента своих серверов с обычного HTTP протокола на RTMP.
Подробности мне неизвестны, я лишь немного осведомлен в том, что rtmp-ссылки начали отдаваться в первую очередь иностранным
пользователям, то есть появилось разграничение по геолокации, вычисляемой через IP-адреса (определение страны:
http://rutube.ru/api/geoip/country/). Потом rtmp-ссылки постепенно начали вползать в поля браузеров/менеджеров
закачек российских пользователей; многочисленные сайты по выдаче прямых ссылок на видео начали по-быстрому сдуваться,
выдавая кривые ссылки либо выплевывая невесть что. Известное дополнение для Firefox'а, DownloadHelper, работает
только с http-ссылками, начисто игнорируя RTMP. С июля 2012 года к существующему способу отдачи видео добавилась
технология HDS (HTTP Dynamic Streaming) и отдача уже зашифрованных файлов по RTMP-протоколу.

rtmpdump / adobehds.php (GNU/Linux, Windows, Android)


Оф. сайт/репозиторий: rtmpdump, AdobeHDS.php
MS Windows: rtmpdump-2.4, AdobeHDS.php (PHP + php_curl уже в архиве)
GNU/Linux (Debian Squeeze): rtmpdump >= 2.4., AdobeHDS.php нужно взять из архива для Windows -- он модифицирован для работы с rutube.
sudo apt-get update && apt-get install rtmpdump php5-curl

Rutube отдаёт ссылки на видеоролики по трём технологиям (по состоянию на 25 августа 2012 г.):

  1. Нешифрованное видео по протоколу RTMP. Для закачки используется rtmpdump (версия не ниже 2.4).
  2. Шифрованное видео по RTMP. Хоть и скачается rtmpdump'ом, но воспроизвести его не удастся. Решение для этого типа ссылок не найдено.
  3. Нешифрованное видео по технологии HTTP Dynamic Streaming. Для закачки используется скрипт AdobeHDS.php

Сначала определяем, какой тип отдачи используется для требуемого видеоролика:
На странице ролика в блоке "Код для блога" можно увидеть код для встраивания. Нам нужен ID видео:

или

Открываем файл с информацией о видео:

http://video.rutube.ru/5bc45bc80ad9f9597a8e1de3e0cf69f6 => http://rutube.ru/trackinfo/5bc45bc80ad9f9597a8e1de3e0cf69f6.xml
http://rutube.ru/embed/5835442 => http://rutube.ru/trackinfo/5835442.xml

В этом файле нужна ссылка из тега <videoBalancer>/<default>: http://bl.rutube.ru/5bc45bc80ad9f9597a8e1de3e0cf69f6.f4m
Это файл-манифест. Открыв его, смотрим на теги <baseURL> и <media>. Определяем тип отдачи по их содержимому:

  • RTMP, если baseURL == rtmp://video-N-N.rutube.ru/bla-bla-bla, а атрибут url тега media содержит расширение .mp4 в тексте ссылки.
  • Шифрованное видео по RTMP, если тот же атрибут url содержит расширение .f4f. Скачанное видео не воспроизводится.
  • Нешифрованное видео по HDS, если baseURL == http://video-N-N.rutube.ru, тег(и) media указывает на манифест (ссылка с расширением .f4m) либо сразу на mp4-файл.
Определившись со способом отдачи, приступаем к закачке.

RTMP

Тег <baseURL> содержит имя хоста, порт и переменную "app". Атрибут url тега <media> содержит путь к потоку (playpath):
rtmp://video-N-N.rutube.ru(:1935)/<app>/mp4:volNN/movies/.*
|____________host___________|__app__|_____playpath____|

где переменная app может принимать следующие значения:

  1. vod/
  2. rutube/
  3. rutube_vod_[0-9]/
  4. rutube_vod_[0-9]/_definst_/

Из параметров, предлагаемых дампером (rtmpdump --help), нам нужны следующие:

--rtmp           URL (напр. rtmp://host[:port]/)
--app            Переменная app.
--playpath       Перезаписывает playpath, указанный в --rtmp
--swfUrl         Ссылка на swf-плеер.
--flv            Название конечного FLV-файла.
--live           Для rtmp-ссылок, переменная app которых равна "vod/".

Примеры закачки ссылок:
rtmp://video-1-12.rutube.ru:1935/rutube_vod_2/_definst_/mp4:vol12/movies/b5/e0/b5e08ad46a65d700dd0da2f7b40e2fc0.mp4?e=1288635285&s=740fa844fc6687ac03681a0eb72d003e

sh/cmd:

rtmpdump --rtmp "rtmp://video-1-12.rutube.ru:1935/"
 --app "rutube_vod_2/_definst_/"
 --swfUrl "http://rutube.ru/player.swf"
 --playpath "mp4:vol12/movies/b5/e0/b5e08ad46a65d700dd0da2f7b40e2fc0.mp4?e=1288635285&s=740fa844fc6687ac03681a0eb72d003e"
 --flv "output_video.flv"

rtmp://video-102-1.rutube.ru:1935/vod/mp4:rutube/vol41/movies/a2/05/a205ff4b2073c18522253585224f7a7c.mp4?e=1287342905&s=813f44d26fe97cd7ef670cb8d44e36e2

sh/cmd:

rtmpdump --rtmp "rtmp://video-1-12.rutube.ru:1935/"
 --app "vod/"
 --swfUrl "http://rutube.ru/player.swf"
 --playpath "mp4:rutube/vol41/movies/a2/05/a205ff4b2073c18522253585224f7a7c.mp4?e=128734&s=813f44d26fe97cd7ef670cb8d4"
 --flv "output_video.flv"
 --live

Не забудьте про параметр --live, используемый при переменной app равной "vod/". Иначе видео будет качаться в размере, в два-три раза превышающий указанный на сайте. Также --swfUrl, он должен быть равен адресу флеш-плеера: "http://rutube.ru/player.swf".

HDS

С HDS-ссылками проще, достаточно ссылки на f4m-файл:

sh/cmd:

php.exe AdobeHDS.php --manifest "http://bl.rutube.ru/5bc45bc80ad9f9597a8e1de3e0cf69f6.f4m"
--outfile "output_video.mp4"

Mozilla Firefox: UnPlug + rtmpdump


Страница дополнения

Скачиванием архив с rtmpdump по ссылке из раздела выше и распаковываем его. Устанавливаем дополнение, затем заходим в его настройки и выбираем вкладку Downloads:

Жмём "Edit" и в появившемся окне указываем путь к ранее распакованному файлу rtmpdump.exe. Открываем страницу с нужным роликом и вызываем UnPlug. Появится окно с предлагающимися для закачки ссылками. Download.


Raljeta (Windows)


Страница программы

Оболочка к утилите rtmpdump. Ссылка и справка по использованию на странице программы.

RutubeGet (Windows)


Сайт программы

Еще одна оболочка (GUI) для rtmpdump, настроенная специально для работы с сайтом rutube. // Alina

Hensense Coojah 6 (Windows)


Hensense Coojah 6 - с официального сайта
Моя сборка - патченая от показа рекламных баннеров и почти полностью русифицированная.

Для запуска требуются права администратора.

UPD Coojah перестал качать ссылки с app="vod".

В принципе, ничего сложного в работе с программой нет. Основной момент в том, что мы разрешаем Кудже внедряться в наш браузер и следить, каким содержимым он промышляет. Внедрение происходит путём инжектирования поставляемой с программой библиотеки URLSniffer.dll в процесс нашего любимого инет-серфера.

Причем есть такой момент с Авастом 5.0: при загрузке/выгрузке сниффера какой-то из модулей Аваста сразу же зависает, проявляется это в нерабочем интернете в том браузере, в который мы внедрились. После перезапуска модулей все работает, причем всё это безобразие проявляется только при первой загрузке сниффера в память – в остальное время библиотека тихо висит в памяти и никому не мешает.

Запускаем CooJah.exe, и сразу же появляется окно, предлагающее установить наблюдение (изображения кликабельны).

Видим сообщение о необходимости перезапуска программы. Готово.
Теперь идем на любую страницу с Rutube (под любой я подразумеваю как сам сайт Рутуба с роликами на нем, так и всевозможные сайты, которые используют встроенные видео на основе RuTube (а также и Myvi, Mail, Vimeo и т.д.) Жмём на плэй, ролик проинициализирует подключение к серверу, если прогресс закачки пополз/либо вы уверены, что ролик точно начался – бежим в Куджи, открываем вкладку "Видео" и видим:

Так, ссылку мы отловили. Как видите, мне попалась сначала http-ссылка, которая также успешно отловилась наравне с rtmp. Правый клик по строке с видео -> "Скачать Blader‘ом".

Запускается Blader с уже прописанными данными для закачки по RTMP. Остаётся указать желаемые путь и имя файла, и вперёд.

Загрузка началась.

Orbit Downloader: GrabPro (Windows)


Сайт

Для этого способа будет использоваться Internet Explorer. Мы установим Orbit Downloader с включением надстройки GrabPro для IE. Не путать со сниффером Grab++, который может следить за сетевой активностью в браузерах Mozilla Firefox, Opera и т.д., но тем не менее бесполезен в деле отлова rtmp-потока с rutube. Отличие этого способа от rtmpdump/Coojah в том, что видео захватывается по мере его просмотра в браузере и, самое главное, сохраняется в файл.

Устанавливая Orbit Downloader, отмечаем опцию "Enable GrabPro for Internet Explorer":

Открываем Internet Explorer, сверху должна появиться панель GrabPro:

Открываем страницу с нужным видеороликом и начинаем просмотр ролика. При этом панель проявит активность:

В списке два элемента. Первый - реклама при старте ролика, второй - нужный нам поток stream.flv. Естественно, по мере роста количества просмотренных роликов этот список будет увеличиваться (для данной вкладки браузера, т.е. для каждой вкладки создается свой список):

Download it. Начинается захват видео. Проигрывание ролика останавливать нельзя - иначе получите ровно столько видео, сколько удалось захватить до момента паузы. После полного проигрывания ролика информация о файле переместится в список завершенных:

http://tradiz.org/rutube/skachivanie-s-rutuberu-po-rtmp-ssylkam

(will be screened)
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

May 2025

S M T W T F S
    123
45678910
11121314151617
181920212223 24
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 10th, 2025 01:57 pm
Powered by Dreamwidth Studios