Comments 53
Большое спасибо, работает (Ubuntu 10.04 amd64)
Во-во. Давно уже не страдаю такими извращениями. Мой выбор — Video DownloadHelper.
Вот посмотрели вы ролик на ютубе, понравился, решили сохранить его к себе на жесткий диск. Video DownloadHelper будет скачивать его заново, а автор предлагает решение без повторного скачивания.
И… ну это же unix, здесь важен сам процесс.
И… ну это же unix, здесь важен сам процесс.
DownloadHelper может так поступить, если качать начали видео с другим качеством, ведь ютуб их дает несколько. Возможно по-умолчанию настроено скачивание другого качества.
Я сам в Убунте сейчас сижу и мне процесс не важен, важен результат. Если видео просмотрено до конца, то DownloadHelper вытаскивает его из кэша без повторной закачки.
читайте внимательно — из файловой системы стандартными средствами не достать — потому как не видно его в кеше, если использовать новый флешплеер.
возможно он даже и файл удаляет не при завершении закачки, а при самом ее начале.
возможно он даже и файл удаляет не при завершении закачки, а при самом ее начале.
Это все прекрасно, но согласитесь, что данный метод можно применить не только для решения этой задачи. Мне показалось, что это больше совокупный обзор базовых команд и особенностей linux.
Расследования, конечно, дело хорошее и нужное. Но почему бы просто не пользовать FlashGot?
Шерлок Холмс однако
Простенько и со вкусом.
Можно написать sh-скрипт для такого дела.
Типа такого
Можно написать sh-скрипт для такого дела.
Типа такого
$ cat > saveflash.sh
#!/bin/sh
PID=`ps x|grep libflashplayer.so|grep -v grep|awk '{print $1}'`
FD=`lsof -p $PID|grep Flash|awk '{print $4}'|sed 's/u^//'`
cp /proc/$PID/fd/$FD ~/video.flv
# EOF
^D
в статью бы добавить, весьма полезное решение.
Уберем 2 команды :)
PID=`ps x | awk '/libflashplayer.so\ /{print $1}'`
PID=`ps x | awk '/libflashplayer.so\ /{print $1}'`
скрипт не будет работать когда открыто несколько флеш-роликов одновременно или запущено несколько инстансов плагинов.
Примерно так можно получить список всех дескрипторов:
После чего можно копировать все или смотреть mplayer`ом с vdpau акселерацией 8)
Примерно так можно получить список всех дескрипторов:
pgrep libflashplayer.so | xargs -I PID find /proc/PID/fd -lname '/tmp/Flash*'
После чего можно копировать все или смотреть mplayer`ом с vdpau акселерацией 8)
к своему стыду, не знал о lsof.
Все же не перестаю удивляться красоте *nix систем — для решения простых задач (смонтировать образ диска, скопировать раздел, посмотреть список открытых процессом файлов, и т.п.) есть простые решения, не требующие установки какого либо доп. софта.
Все же не перестаю удивляться красоте *nix систем — для решения простых задач (смонтировать образ диска, скопировать раздел, посмотреть список открытых процессом файлов, и т.п.) есть простые решения, не требующие установки какого либо доп. софта.
Ха, а в Windows у них так не получится, фиг они удалят открытый файл :)
Давно хотел узнать способ достать удаленный, но ещё не закрытый файл (безотносительно флеша), только до самостоятельных поисков руки не доходили. Как то так себе это и представлял. Спасибо за готовое решение.
есть еще в репозиториях хорошая утилита clive
а ещё YouTube-DL
Жаль и та, и другая написаны на скриптовых языках и требуют соответствующего интерпретатора, а в случае с clive ещё и нескольких недефолтных модулей.
Currently supported sites are video.google.com, youtube, photobucket, dailymotion, and metacafe.
Жаль и та, и другая написаны на скриптовых языках и требуют соответствующего интерпретатора, а в случае с clive ещё и нескольких недефолтных модулей.
Пользуюсь Firebug — показывает что и откуда качается.
А в чём суть такого трюка? Файл остаётся на диске после удаления жёстких ссылок, если он ещё занят процессом?
Спасибо, хороший способ. Я же, в свою очередь, использую отличный питоновский скрипт youtube-dl
А что будет в этом файле если я взял и вовремя просмотра перепрыгнул из начала в конец клипа? Ведь клип при этом скачивается не полностью.
замечательная статья, спасибо. По отдельности об этих инструментах знал, а вот до такого необычного применения недодумался.
> awk '$4 ~ /^[0-9]+/ && $5 == «REG»'
Не ищете в жизни легких путей? ;) Чем уже в данном случае grep не угодил?
Не ищете в жизни легких путей? ;) Чем уже в данном случае grep не угодил?
как знакомство с возможностями линукса — статья замечательная, а вот как решение конкретной задачи(сохранить видео из флешплеера) намного проще и удобнее использовать плагины для браузеров(типа downloadhelper).
еще есть замечательный сервис ru.savefrom.net/ — скармливаете ему ссылку на страницу с видео и получаете прямые линки на видео. правда для варианта достать из кеша видео этот способ не подойдет.
еще есть замечательный сервис ru.savefrom.net/ — скармливаете ему ссылку на страницу с видео и получаете прямые линки на видео. правда для варианта достать из кеша видео этот способ не подойдет.
плагины и сервисы не всегда помогают, например видео отсюда presidium.arbitr.ru/ никакими плагинами не скачешь, или в кеше рыться или надо знать прямую ссылку на .mp4 файл, которой в коде страницы нет (я как то нашел такую ссылку окольными путями, но авторам ничего не мешает её засекретить).
Пользовался юзер-скриптами, но после обновления ютуба всё поломалось, сейчас пользуюсь www.dirpy.com/ кстати недавно тут топик был про него
Теперь, кажется, надо так (по крайней мере у меня только так работает)
#!/bin/bash
PID=`ps x | grep libflashplayer.so | grep -v grep | awk '{print $1}'`
FD=`ls /proc/$PID/fd -l | grep tmp | awk '{print $8}'`
cp /proc/$PID/fd/$FD $1
сейчас и это не работает
ps x | grep libflashplayer.so | grep -v grep | awk '{print $1}' — получаю pid процесса
FD=`ls /proc/$PID/fd — получаю вывод в виде 1 10 2 3 4 5…
после grep tmp — пусто :(
опять изменили что то рутюбовцы :(
ps x | grep libflashplayer.so | grep -v grep | awk '{print $1}' — получаю pid процесса
FD=`ls /proc/$PID/fd — получаю вывод в виде 1 10 2 3 4 5…
после grep tmp — пусто :(
опять изменили что то рутюбовцы :(
Sign up to leave a comment.
Сохраняем видео из Flash Player 10.2 или unlink нам не помеха