Как скачать видео с сайта: продолжение.

В своей предыдущей статье Как скачать видео с сайта я рассказал о 4-х способах сохранения видеофайлов с сайтов, и самый популярный из них – достать файл из кэша браузера. Однако сейчас ситуация изменилась, после обновления Flash Player стал себя вести по-другому. Он по-прежнему кэширует видеофайлы на диске в директории /tmp, однако невооруженным взглядом такие файлы не видны; команда ls ничего не покажет.

Однако, если начать загрузку интересующего нас видео ролика:

и в командной строке запустить:

$ lsof | grep Flash
plugin-co 12081 ed 16u REG 8,4 32839768 473170 /tmp/FlashXXqNVerC (deleted)

Интересное кино получается. Файл открыт, используется, и при этом удален! Ну и хрен с ним, все равно его можно будет «оживить» простой командой копирования из поддиректории /proc/

Не буду томить, вот оживляющий скрипт:

#!/bin/bash
pid=`pgrep -f flashplayer | tail -1`
file=`lsof -p $pid | grep '/tmp/Flash' | awk 'END{print "/proc/" $2 "/fd/" $4}' | sed 's/[rwu]$//'`
/bin/cp $file "/tmp/movie.flv"

после запуска скрипта интересующее нас видео будет лежать в /tmp/movie.flv

Как скачать видео с сайта: продолжение.: 21 комментарий

  1. Безумный Программист, пишешь на Perl? Уважаю :)
    Скрипт хорош, спору нет. Но он узко заточен на ютьюб; а достать видео из кэша браузера можно на вообще любом сайте, хоть вконтакте, хоть my-hit.ru

  2. Уважаемый! хочу заиметь видео с сайта на котором закрыт доступ скачивания, например вот этот ролик сайта канала
    http://www.tv100.ru/video/view/press-kontrol-17-noyabrya-62070/

    ничего не получается :( (
    напиши инструкцию, если выйдет, как и что делал

  3. Анонимный, я попробовал с твоим видео – у меня все получилось.
    Инструкция расписана в посте, ничего нового: открыл видео, дождался, когда оно полностью загрузится в браузер (белый скролбар на видео дойдет до конца), и запустил оживляющий скрипт (см. текст поста).
    Все, в директории /tmp у меня лежит сам ролик – movie.flv

  4. ай, я ж не Линукс :) ) чорт
    винда, файерфокс – есть варианты?

  5. аеее! получилось с этим проклятым сайтом этого проклятого канала =) действовал по предыдущему твоему посту + заюзал unlocker, файл не хотел копироваться ;) спасибо! пиши еще что-нибудь полезное!

  6. Hamajum, это не видеоролик. Это Flash-приложение, которое показывает набор картинок с определенной задержкой. Поэтому указанный в статье метод не подойдет, но тут можно просто снять скриншоты интересующих картинок, и склеить их потом в один ролик, как описано в статье Как сделать видеоклип из фотографий – получится не совсем то, но будет очень похоже.

  7. Подскажите, пожалуйста, есть вариант скачать видео с сайта http://prav.tv ? Дело в том, что у меня медленный интернет и онлайн смотреть – большой геморрой :)

  8. ded-sm, вряд ли смогу помочь. Там регистрироваться надо, а мне лень :)

  9. Olig, тут картина несколько сложнее, но нет ничего невозможного.

    Похоже это на прохождение квеста, и выглядит так.

    1. Открываем твою страницу, чтобы видео заиграло.

    В коде указанной тобой страницы есть такая строчка:

    so.addVariable(“riptide_video_id”, “eb4483ffb9df96403f63213d577e564f”);

    2. Лезем в кеш браузера (в Firefox достаточно вбить about:cache в командную строку) и переходим в дисковый кэш.

    Начинаем искать по строке-идентификатору (eb4483ffb9df96403f63213d577e564f) и находим ключ:

    http://riptide.mtvnn.com/mediagen/eb4483ffb9df96403f63213d577e564f

    3. Если перейти по этой ссылке, увидим файл XML с сылками на потоковое видео в трех разных разрешениях, т.е.

    rtmp://cp8619.edgefcs.net/ondemand/riptide/r2/production/2011/12/06/eb4483ffb9df96403f63213d577e564f/mp4_416px_160k_b30_seg0_416x312_90832.mp4
    rtmp://cp8619.edgefcs.net/ondemand/riptide/r2/production/2011/12/06/eb4483ffb9df96403f63213d577e564f/mp4_416px_576k_b30_seg0_416x312_470872.mp4
    rtmp://cp8619.edgefcs.net/ondemand/riptide/r2/production/2011/12/06/eb4483ffb9df96403f63213d577e564f/mp4_640px_1296k_m31_seg0_640x480_1115672.mp4

    Как видим, это не файлы flv, а настоящее потоковое видео (которое не очень-то и кешируется)

    4. Но ничто не запрещает открыть эти URLы в нормальном видеоплеере и сохранить видео на диск. Например, так:

    mplayer -dumpstream “rtmp://cp8619.edgefcs.net/ondemand/riptide/r2/production/2011/12/06/eb4483ffb9df96403f63213d577e564f/mp4_416px_160k_b30_seg0_416x312_90832.mp4″

    или так:

    rtmpdump -r rtmp://cp8619.edgefcs.net/ondemand/riptide/r2/production/2011/12/06/eb4483ffb9df96403f63213d577e564f/mp4_416px_160k_b30_seg0_416x312_90832.mp4 > stream.dump

    (второй способ надежнее и быстрее)

    Получившийся файл stream.dump можно сконвертировать в менее экзотические форматы с помощью mencoder или ffmpeg. Да и без перекодирования он нормально смотрится в mplayer или vlc.

  10. vadim_shubin, на этой странице у меня ни один ролик не заиграл.

  11. ссылки вытянул без проблем а вот скачнуть не получается, может у них защита какая то стоит, пробовал уже кучу способов rtmpdump через него тоже не идет почему то? через кмпплеер тоже пробовал

  12. oljg, только что проверил – все скачивается без проблем. Скорее всего, ты что-то делаешь не так.

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

  14. oljg, вот тебе скрин. Честное слово, все делал точно так же, как и в своем посте описал.

  15. за скрин огромное спасибо но сколько я скачивал rtmpdump, у меня либо они не открывались, либо интерфейс был совершенно другой , файл , правка вид – отсутствовали

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

Обсуждение закрыто.