Как я могу получить доступ к файлам Flash с потоковых сайтов?


30

В Maverick была возможность загружать Flash-видео с таких сайтов, как YouTube, Vimeo и т. Д., Копируя flashxx**файл из /tmpкаталога в другое место перед закрытием окна. Но в Firefox 4 в Natty это больше не работает. Зачем?


Если вы просто хотите скачать видео, я бы порекомендовал Clipgrab: clipgrab.de/en . У них есть PPA: launchpad.net/~clipgrab-team
Мартин Тома,

Ответы:


26

Обновление для плагина flash изменило местоположение /tmpна каталог кеша Firefox (например ~/.mozilla/firefox/bq95m4w1.default/Cache). К сожалению, кэшированный флэш-файл не так легко найти, как раньше, но это возможно.

Следующая команда выводит список всех флэш-файлов в вашем кеше Firefox.

find ~/.mozilla/firefox/*.default/Cache -type f -exec file {} \;  | grep Flash

На более новых версиях убунту попробуй

find ~/.cache/mozilla/firefox/*.default/Cache -type f -exec file {} \;  | grep Flash

1
Почему нет file ~/.mozilla/firefox/*.default/Cache/* | grep Flash? Каталог кэша, похоже, не имеет подкаталогов, которые могут оправдать использование find.
энзотиб

не работает наверное раньше работал
dumb906

FLV-файл все еще находится в / tmp, однако вам нужен специальный трюк для доступа к нему.
user4124

Смотрите мой ответ ниже, в котором говорится о восстановлении FLV-файла с использованием файловой системы / proc. Тем не менее, вы можете использовать одно из дополнений Firefox для выполнения той же задачи.
user4124

28

Вы можете использовать несколько аддонов Firefox для извлечения файлов FLV со многих веб-сайтов, таких как Youtube.

Ниже я покажу, как это сделать ВРУЧНУЮ с последней версией плагина Flash.

  1. Посетите видео YouTube и дождитесь его полной загрузки.
  2. Затем запустите из командной строки команду

    $ lsof -n | grep Flash

    который показывает файлы (даже файлы памяти !), и фильтры к тем, которые имеют Flashв их имени.

  3. Вы получаете что-то вроде

    plugin-co 2461 user 17u REG 8,5 1693301 524370 /tmp/FlashXXVkHEM6 (deleted),

    Сейчас есть, /tmp/FlashXXVkHEM6но он был удален.

  4. В Linux, если файл удален, он фактически исчезает только тогда, когда все программы, открывшие его ранее, закрываются. То есть плагин Flash использует хитрость, чтобы скрыть файл / tmp / FlashXXVkHEM6. Это создает это и немедленно deletesэто. Но поскольку плагин Flash продолжает работать, он все еще может его использовать.

  5. Из приведенной выше строки мы отмечаем номер 2461, который является идентификатором процесса. В вашем случае это будет, вероятно, иначе. Затем запустите

    $ cd /proc/2461/fd

    и, наконец, выполнить

    $ ls -l

    Это покажет вам файлы памяти, и конкретно

    lrwx------ 1 user user 64 2011-09-16 10:23 17 -> /tmp/FlashXXVkHEM6 (deleted)

    Число «17» (в моем случае) - это имя файла, которое вы можете использовать для доступа к удаленному /tmp/FlashXXVkHEM6 . Поэтому просто беги

    $ cp 17 /tmp/myyoutubevideo.flv

    и вы восстанавливаете Youtube видео!

Это оно! Вы вручную восстановили видео с Youtube!


7

Если вы перейдете к своей папке / proc, вы увидите группу папок с числовыми именами, включая папку, которая соответствует номеру во втором поле.

Теперь перейдите к этой папке, а затем к ее подпапке «fd». В этой папке вы увидите целую подборку чисел. Они относятся к самим дескрипторам файлов.

Запустите ls -lв этой папке, и вы увидите, что каждое из этих чисел связано либо с каналами, сокетами или файлами.

В этом числе число из четвертого поля будет символически связано с файлом / tmp / Flash *, который мы нашли ранее.

Чтобы проверить, что это правильный файл, вы можете запустить его через mplayer или vlc ( mplayer filedescriptornumber/ vlc filedescriptornumber). Если у вас возникли проблемы с поиском имени файла, попробуйте ls -l | grep Flash.

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

stat -c %N /proc/*/fd/* 2>&1|awk -F[\`\'] '/Flash/{print$2}'

Вывод будет примерно таким:

/proc/4691/fd/17
/proc/4691/fd/18

Это будет список всех ваших загруженных флэш-потоков. Для этого примера есть 2 флеш-видео из моего браузера Firefox 4. Если вы хотите скопировать его, просто используйте эту команду:

cp /proc/4691/fd/17 ~/Videos/Flash/sample.flv

Источник: http://n00bsys0p.wordpress.com/2011/02/10/how-to-download-flash-10-2-video-streams-in-linux/


5

Этот маленький скрипт сохранит ваши загруженные флеш-файлы в пользовательский каталог.

  1. создайте каталог, в котором вы хотите сохранить файлы, например ~ / Videos / flvs

    mkdir ~/Videos/flvs
    
  2. откройте gedit, скопируйте и вставьте этот скрипт.

    #!/bin/bash
    # flvcache script
    
    CACHE=~/.mozilla/firefox/*.default/Cache
    OUTPUTDIR=~/Videos/flvs
    MINFILESIZE=2M
    
    for f in `find $CACHE -size +$MINFILESIZE`
    do
        cp "$f" "$OUTPUTDIR/$o"
    done
    
    nautilus  "$OUTPUTDIR"&
    
  3. сохраните файл как saveflashall.sh, затем добавьте права доступа к исполняемому файлу

    chmod +x saveflashall.sh
    
  4. затем запустите его.

    ./saveflashall.sh
    

Затем он откроет файлы в первой папке, созданной выше. Настроен на включение всех файлов (работает для mpeg и mp4) вместо только flvs.

Кредиты идут на http://desdecode.blogspot.com/2011/04/saving-watched-online-videos-linux.html


Я попробовал это ... некоторые видео, которые я смотрел давно, теперь находятся в этой папке, но те, которые я смотрел прямо сейчас, нет. Зачем?
avi

4

Насколько я знаю, это не из-за firefox или natty, а из-за обновления прошивки ...

Вы можете поймать поток http с помощью wiresharkили использовать инструмент, такой какyoutube-dl получить файл фильма.

Но помните, что это не может быть законным, поэтому проверьте ваше местное законодательство ...


Опрятный трюк с проволочной акулой, но я думаю, что это может быть утомительно, так как видео довольно большого размера (более 10 МБ), в то время как пакеты содержат крошечный фрагмент этих данных :)
Rafał Cieślak


3

Ubuntu 12.04 (Precise) - инструкции для Firefox 11 Модифицированная версия bash-скрипта chlumma1.

С помощью текстового редактора сохраните приведенный ниже код в файл с именем «getvids.sh». Переместите его в место, где вы хотите сохранить видео. Щелкните правой кнопкой мыши по файлу, перейдите в Свойства, измените разрешения на «Разрешить выполнение в качестве программы».

Все, что вам нужно сделать, это щелкнуть скрипт, выбрать «Запустить в терминале», и он сохранит все видеофайлы в этом каталоге. Чтобы сохранить все видео, оно должно быть загружено в ваш браузер. Он будет сохранять видео практически с любого веб-сайта, включая YouTube, Vimeo, Dailymotion, Metacafe, LiveLak, Facebook . Просто удалите все видео файлы, которые вам не нужны.

(Если видео, которое вы хотите, не сохраняется, то на веб-сайте, вероятно, используется собственный формат потока, который не может быть сохранен какой-либо программой восстановления кэша. Примеры: Hulu, netflix, некоторые видео на YouTube?) Кроме того, проигрыватель VLC является отлично подходит для просмотра флэш-видео.

#!/usr/bin/env bash
# getvids.sh [save_folder]

SAVE_FOLDER="$HOME" # User editable

# If the below option is used, then this script should be run in a terminal.
#CPMOD="-i" # Uncomment to prevent file overwrites

PATERN="libflashplayer"
ALL_PID=`pgrep -f $PATERN`

if [ $? -eq 1 ]; then
  echo ERROR: Flashplayer not running
  exit 1
fi

if [ ! -z $1 ]; then
  echo "Setting save location: $1"
  SAVE_FOLDER="$1"
fi

if [ ! -d "$SAVE_FOLDER" ]; then
  echo "Save location doesn't exist: $SAVE_FOLDER"
  exit 1
fi

for PID in $ALL_PID; do
  declare -a OUTFILES=($(ls -lt1 /proc/$PID/fd | grep '/tmp/Flash' | sed 's/^.*\/tmp\///' | sed 's/\ .*$//'))
  declare -a FDS=($(ls -lt1 /proc/$PID/fd | grep '/tmp/Flash' | awk '{ print $9 }' ))
  for ((i=0; i<${#FDS[@]}; i++)); do
    saveas="$SAVE_FOLDER/${OUTFILES[i]}.flv"
    echo "Copying video ${FDS[i]} to $saveas"
    cp $CPMOD "/proc/$PID/fd/${FDS[i]}" "$saveas"
  done
done

Те, кто немного знает о терминале, могут отредактировать первые две переменные и получить немного дополнительной функциональности. Кроме того, чтобы просмотреть файлы в реальном времени, вы можете набрать это в терминале, чтобы узнать, где они находятся.for i in $(pgrep -f libflash); do find /proc/$i/fd/ -ls | grep "/tmp/Flash" | awk '{ print $11 }'; done

PS. Также отлично работает chlumma1, но немного откладывает цикл программирования на C;)


2

Последние версии плагина flash скрывают временный файл, помечая его как удаленный. Практически видеопоток загружается в «удаленный файл». Однако даже если файл удален, если файл открыт процессом, вы можете найти его дескриптор файла и, следовательно, содержимое файла.

Этот простой скрипт распечатывает файловые дескрипторы открытых Flash-видео:

file /proc/*/fd/* 2>/dev/null | grep Flash | cut -f1 -d:

И вы, вероятно, хотите создать обычный файл из файлового дескриптора, например:

cp $(file /proc/*/fd/* 2>/dev/null | grep Flash | cut -f1 -d: | head -n 1) video.avi

В противном случае файловый дескриптор не очень удобен (помните, это удаленный файл!)

Метод должен работать независимо от вашего браузера.


1

Эй, эта проблема уже существовала в 10.10. Итак, чтобы решить это, попробуйте это:

None of the methods described by previous posters are as convenient as just copying the flash file from the tmp directory.

Therefore, what I did was downgrade my Flash to 10.1.102.64

The download link for older versions of flash is http://kb2.adobe.com/cps/142/tn_14266.html

Download the (large) file named "Flash Player 10.1.102.64 and 9.0.289.0".
After downloading, extract the file named flashplayer10_1r102_64_linux.tar.gz

From this file extract libflashplayer.so and overwrite the file at /usr/lib/flashplugin-installer (you will need root privileges, try gksudo nautilus)

Restart Firefox and your flash videos will land up in the /tmp directory as before! This won't work for Google Chrome, it will continue to use the latest version of Flash.

Note: For the above steps to work, a version of Adobe Flash should have been previously installed.

[цитируется с этого сайта: опубликовано chetancrasta View Post ]

Я надеюсь, что это поможет вам. Дайте мне знать, если это сработает.


Я думаю, вы неправильно поняли вопрос. На оригинальном постере уже установлен и работает Flash Player. Ему просто интересно, где Flash хранит свои временные файлы.
Джереми Бича

Ya. Правильно. Но я думаю, ему интересно, куда ушли флэш-файлы. С новой версией Adobe Flash Player они сохраняются, как уже упоминалось @Woozy. @ Woozy также упомянул, что «кэшированный флэш-файл не так легко найти, как раньше». Поэтому, если вы хотите, чтобы файл флэш-памяти снова находился «легко», вы можете понизить версию своего флэш-плеера. Следовательно, файлы флэш-памяти будут снова сохранены в / tmp ... Я надеюсь, вы понимаете мою точку зрения сейчас !? Или я не прав?
Вито

1

Для общепринятого метода, который работает с Chrome или Firefox, попробуйте эту маленькую программу под названием flashcache . Копирует флэш-видео, которые в данный момент воспроизводятся, в текущий каталог.

Мой патч добавляет опцию, -pкоторая заставляет скрипт воспроизводить видео, mplayerа не делать копии файлов.


1

Хотя я и не ответил прямо на вопрос, я столкнулся с той же проблемой и после некоторого поиска нашел Clipgrab, который намного проще в использовании.


1

Вы можете попробовать эту команду в терминале

cp \`file /proc/\*/fd/* | grep tmp/Flash | awk -F":" '{print$1}'` dirname/

1

перейдите по этой ссылке ( ~/.mozilla/firefox/ewzggcll.default/Cache)

Если я действительно не запутался (не думаю), что «ewzggcll» не будет в вашей машине. Вы обнаружите случайную коллекцию букв (и, возможно, цифр?), Которая, скорее всего, будет уникальной для вашей установки Linux и Firefox. Тем не менее, эта странно выглядящая случайная коллекция важна, потому что она важна для получения кеша.

Надеюсь это поможет! (НТН)


1

Я использую SMplayer YouTube. Он поставляется с Smplayer, который вы устанавливаете в программном центре Ubuntu. Это запись видео на YouTube. очень простой и удобный в использовании.


Я могу подтвердить, что это работает. Убунту 14.04. Я не могу поверить, что я потратил впустую свое время, пытаясь найти ответы на все вопросы здесь и везде в Интернете безуспешно, пока не пришел к этому ... Просто искал SMPlayer в центре программного обеспечения, установил его, вставил адрес yt и сохранил видео, в формате и размере на мой выбор ...: D
PFROLIM

1

Я использую minitube, клиент YouTube, который хранит флэш-файлы на/tmp


1

Этот скрипт сделает это:

#!/bin/bash
PATERN="libflashplayer"
ALL_PID=`pgrep -f $PATERN`

if [ $? -eq 1 ]
then
echo ERROR: Flashplayer not runnig
exit 1
 fi


 for PID in $ALL_PID
 do

OUTFILES=`ls -lt1 /proc/$PID/fd | grep '/tmp' | sed 's/^.*\/tmp\///' | sed 's/\ .*$//'`
INFD=`ls -lt1 /proc/$PID/fd | grep '/tmp' | cut -f 9 -d \ `


# nazev souboru do pole
i=0;
for out in $OUTFILES
do
    i=`expr $i + 1`
    NAMEFILE[$i]=$out

done

# nazev file desktiptoru do pole
i=0;
for out in $INFD
do
    i=`expr $i + 1`
    NAMEFD[$i]=$out
done



# ulozeni video dat
i=0;
for outfd in $OUTFILES
do
    i=`expr $i + 1`
    #echo ${NAMEFILE[$i]} ${NAMEFD[$i]}

    cat /proc/$PID/fd/${NAMEFD[$i]} > ${NAMEFILE[$i]}.flv
done

done

0

Мозилла, похоже, слишком часто меняет местоположение. Кроме того, имя буфера не совпадает с именем видео, поэтому поиск нужного буфера из кучи также затруднен. Поэтому сохранение кэшированного файла не является последовательным решением. Если установка настольной программы в порядке, ClipGrab - лучший инструмент. Вы можете

  1. Поиск видео.
  2. Выберите качество YouTube видео для загрузки.
  3. Выберите формат видео для загрузки.
  4. Вы можете просто дать URL видео на YouTube, и он загрузит файл.

ClipGrab для загрузки видео с YouTube в Ubuntu .


0

Вы также можете использовать keepvid.com для многих сайтов потокового видео. Это требует, чтобы Java был на ваших машинах, хотя. После установки просто вставьте URL-ссылку и сохраните ее в различных форматах, включая mp4 или WebM.


0

Самый простой способ - использовать аддон CacheViewer Continued 0.8 для Firefox.

после установки нажмите Ctrl + Shift + C, чтобы открыть, а затем нажмите Показать все, и после того, как вы сможете искать определенный кэш, такой как JPEG, FLV что-нибудь ...... щелчок левой кнопкой мыши на элемент даст вам возможность сохранить, сохранить это путем предоставления необходимого расширения, например .flv для флэш-видео и .jpeg для jpeg и наоборот введите описание изображения здесь

ссылка для дополнения https://addons.mozilla.org/en-US/firefox/addon/cacheviewer-continued/?src=api


0

Это все еще возможно.

Вы можете использовать сценарий оболочки из этого поста о том, как открыть / воспроизвести все Flash-видео с VLC .

Чтобы скопировать все видео, которые необходимо заменить в последней строке сценария vlc, cpи укажите конечный каталог в конце той же строки.


-1

Надеюсь, что это поможет вам http://sahanlm.blogspot.com/2012/05/how-to-copy-google-chrome-cache-flash.html


1
Добро пожаловать в Спросите Ubuntu! Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить здесь основные части ответа и предоставить ссылку для справки.
Марко Чеппи
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.