-
Подскажите. Пытаюсь решить задачу перехвата ссылок на flv файлы на сайтах наподобии youtube.
Через сокеты выполняю запрос и получаю HTML страницу с роликом.
В тексте страницы ссылка не хранится и её можно перехватить видимо только при запуске flash проигрывателя на
этой странице.
Только у меня нет никаких идей как это сделать и в правильном ли направлении я двигаюсь? Есть идеи? -
Cobalt © (21.09.10 18:37) [1]Прокси - перехватывай запросы от браузера, смотри куда он лезет, откуда начинает качать данные.
-
websvcru (21.09.10 18:52) [2]или прокси или снифер. отлавливаей все src и анализируй. тебе надо будет еще рекурсивно при захвате смотреть содержимое этих src и выдергивать из них src.. тогда будет универсально. Если при просмотре ссылочки вылазит заголовок видео - обрываем скачку на N байтах для определения и сохраняем отдельно - это видео.
-
websvcru (21.09.10 18:59) [3]вариант 2. скачать пример _rouse перехват используемых файлов, показывает используемые файлы, ищем в них *.flv
смотря под какие задачи тебе надо. -
DimensionSlider © (21.09.10 19:56) [4]Я хочу автоматизировать загрузку видео без помощи браузера как отдельного инструмента. Т.е. сам я в серфинге учавствовать не должен. Задача такого рода. Переход по ссылкам то я додумаю, опять же как приложение на Delphi должно получить доступ к флешплееру на странице и запустить его?
-
Плохиш © (21.09.10 23:35) [5]
> должно получить доступ к флешплееру на странице
На страницах нет никаких флешплейеров, все плейеры находятся на клиенте. -
DimensionSlider © (22.09.10 08:10) [6]>На страницах нет никаких флешплейеров, все плейеры находятся на клиенте.
Не понял замечания. Я где-то тут утверждал что флешплеер находится на сервере или что имелось введу? -
brother © (22.09.10 10:01) [7]http://www.downloadhelper.net/
и не парься, если знаний мало! без обид? -
Плохиш © (22.09.10 10:41) [8]
> DimensionSlider © (22.09.10 08:10) [6]
>
> >На страницах нет никаких флешплейеров, все плейеры находятся
> на клиенте.
> Не понял замечания. Я где-то тут утверждал что флешплеер
> находится на сервере или что имелось введу?
см.
> DimensionSlider © (21.09.10 19:56) [4]
> опять же как приложение на Delphi должно получить доступ
> к флешплееру на странице и запустить его?
Т.е. я правильно понимаю, что чукча - не читатель. -
DimensionSlider © (22.09.10 14:44) [9]brother,
>и не парься, если знаний мало! без обид?
Я писал
>Я хочу автоматизировать загрузку видео без помощи браузера как отдельного >инструмента. Т.е. сам я в серфинге учавствовать не должен. Задача такого >рода.
Т.е. ты тоже не парься если невнимателен.
Плохишь
>Т.е. я правильно понимаю, что чукча - не читатель.
И где там слово сервер? Страница=сервер? Или у тебя страница на сервере? -
DimensionSlider © (22.09.10 14:48) [10]Плохиш, и я не понял, ты почему себе хамить позволяешь?
-
websvcru (22.09.10 19:26) [11]спарсь. есть еще одна разновидность видео. это потоковое видео. там не спарсить. и кеша нет.
-
Плохиш © (23.09.10 01:01) [12]
> DimensionSlider © (22.09.10 14:44) [9]
Про сервер ты первый начал в [6]
> DimensionSlider © (22.09.10 14:48) [10]
>
> Плохиш, и я не понял, ты почему себе хамить позволяешь?
У тебя завышенное самомнение. Кому ты интересен, что бы тебе хамить? -
DimensionSlider © (23.09.10 10:02) [13]Плохиш
>Про сервер ты первый начал в [6]
Ты там сначала найди слово сервер. И объясни чем утверждение "должно получить доступ к флешплееру на странице" или вероятно и ряд таких утверждений как "картинки на странице", "буквы на странице" тебя смущают?
>У тебя завышенное самомнение. Кому ты интересен, что бы тебе хамить?
И тем не менее ты продолжаешь хамить.
websvcru
>спарсь. есть еще одна разновидность видео. это потоковое видео. там не >спарсить. и кеша нет.
Не совсем понял про потоковое видео. Т.е. не спарсить?
Я так посмотрел HTTP снифером, плеер на странице youtube`а качает видео по ссылке, которая формируется с учетом сессии, а на gametrailers.com она постоянна. Проблема в том как запросить эту ссылку у сервера. Они даже download менеджером качаются. -
Плохиш © (23.09.10 10:21) [14]
> DimensionSlider © (23.09.10 10:02) [13]
>
> Плохиш
> >Про сервер ты первый начал в [6]
> Ты там сначала найди слово сервер.
Хм, я ж и говорю: чукча - не читатель. -
DimensionSlider © (23.09.10 14:57) [15]Решил задачку с получением ссылки на ролик на примере www.gametrailers.com
Инструментарий:
mozilla firefox
расширения: newvideohunter и httpwatch 7
Действия:
Открываем HTTPWatch, заходим на страницу с роликом, к примеру,
http://www.gametrailers.com/video/episode-325-gametrailers-tv/704988,
жмем воспроизведение во флешплеере.
NetVideoHunter показывает искомую ссылку вида http://download.gametrailers.com/gt_vault/5927/t_gttv_325_promo_gt_hd.flv
В HTTPWatch жмем Find, смотрим чтобы стояла галочка поиска по Content, жмем поиск, HTTPWatch подсветит запрос через который вернулась ссылка.
Вкладка контент показывает ответ в виде xml файла, в нем наблюдаем прямую ссылку.
На вкладке Headers смотрим Request Line
GET /neo/?page=xml.mediaplayer.Mediagen&movieId=704988&width=960&height=572&prerollOption =&siteNameInAdTags=&ssc=&impressiontype=24&swfserver=media.mtvnservices.com&test mode=&hd=1&um=0 HTTP/1.1
Т.е. в браузере набираем
www.gametrailers.com/neo/?page=xml.mediaplayer.Mediagen&movieId=704988&width=960&height=572&prerollOption =&siteNameInAdTags=&ssc=&impressiontype=24&swfserver=media.mtvnservices.com&test mode=&hd=1&um=0
movieId=704988
Поидее все что нам нужно чтобы получить прямую ссылку на файл flv, это Movie ID.
Ид ролика(MovieID) это последняя цифра в ссылке открывающей страницу с роликом.
Пример
http://www.gametrailers.com/video/tgs-10-dead-space-2/705083
Проверяем работоспособность
шаблон
http://www.gametrailers.com/neo/?page=xml.mediaplayer.Mediagen&movieId=[ИД РОЛИКА]&width=960&height=572&prerollOption=&siteNameInAdTags=&ssc=&impressiontype=24& swfserver=media.mtvnservices.com&testmode=&hd=1&um=0
Открываем в браузере главную страницу, копируем ссылку на любой другой ролик, берем последнюю цифру, подставляем в шаблон ссылки
http://www.gametrailers.com/video/tgs-10-dead-space-2/705083
Итоговая ссылка на запрос xml файла с ссылкой на flv файл
http://www.gametrailers.com/neo/?page=xml.mediaplayer.Mediagen&movieId=705083&width=960&height=572&prerollOption =&siteNameInAdTags=&ssc=&impressiontype=24&swfserver=media.mtvnservices.com&test mode=&hd=1&um=0
Ответ сайта<package version="1.4">
−
<video>
−
<item live="false" startTime="0">
−
<rendition bitrate="778" duration="60" width="960" height="572" mediaid="705083" type="video/x-flv">
−
http://download.gametrailers.com/gt_vault/12830/t_deadspace2_tgs10_limtededition_int_gt_hd.flv
</rendition>
</item>
</video>
</package>
Задачка у меня была - автоматизированная загрузка роликов с сайта без участия пользователя.
В DELPHI используя сокеты осталось написать механизм парсинга страниц и все дела. В случае с GT, дальше главной страницы за роликами ходить не нужно. Все MovieID видны сразу, шаблон запроса прямой ссылки требует только его.
Если в теорию HTTP запросов вникать нет особого желания, эти самые запросы можно подсмотреть в том же HTTPWatch, интерфейс у него элементарный.
P.S. Жаль предпросмотра поста нет на сайте. -
DimensionSlider © (23.09.10 15:20) [16]Со словом "перехват" в заголовке темы я поторопился, тут скорее "получение".
Если перехват, то все что нужно делать наверное в большинстве случаев, это выполнять HTTP снифинг и парсить ответ сервера на наличие ссылок вида http://*.flv -
DimensionSlider © (24.09.10 08:19) [17]Поиск надо выполнять даже не по имени файла, а по content-type в заголовках ответа
video/x-flv
video/mp4 и т.д. -
websvcru (26.09.10 23:01) [18]Как скачать видео с http://www.debilizator.tv ??
-
websvcru (26.09.10 23:01) [19]потоковое.