Як я можу отримати доступ до флеш-файлів із потокових веб-сайтів?


30

У Маверику була можливість завантажувати флеш-відео з таких сайтів, як YouTube, Vimeo тощо, скопіювавши flashxx**файл у /tmpкаталозі в інше місце, перш ніж закрити вікно. Але у Firefox 4 у Natty це більше не працює. Чому?


Якщо ви просто хочете завантажити відео, рекомендую Clipgrab: clipgrab.de/en . У них є PPA: launchpad.net/~clipgrab-team
Мартін Тома

Відповіді:


26

Оновлення флеш-плагіну змінило місце розташування з /tmpкеш-файлу Firefox (наприклад ~/.mozilla/firefox/bq95m4w1.default/Cache). На жаль, кешований флеш-файл знайти не так просто, як раніше, але це можливо.

Наступна команда перераховує всі флеш-файли у вашому кеші Firefox.

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

На новіших версіях ubuntu спробуйте

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

1
Чому ні file ~/.mozilla/firefox/*.default/Cache/* | grep Flash? Схоже, в каталозі кешу немає підкаталогів, які могли б виправдати використання find.
enzotib

не працює. ймовірно, працював раніше.
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

Це список усіх завантажених флеш-потоків. Для цього прикладу є два флеш-відео з мого браузера 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


Я спробував це. Деякі відео, які я довго дивився, зараз знаходяться в цій папці, але ті, які я дивився зараз, - ні. Чому?
аві

4

Наскільки я знаю, це не завдяки firefox, ні natty, а спалаху оновлення ...

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

Але пам’ятайте, що це може бути не законно, тому перевірте місцеве законодавство ...


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


3

Ubuntu 12.04 (точно) - Інструкції для Firefox 11 Змінена версія баш-сценарію chlumma1.

За допомогою текстового редактора збережіть код нижче у файлі під назвою "getvids.sh". Перемістіть його до місця, куди потрібно зберегти відео. Клацніть правою кнопкою миші на файл, перейдіть до Властивості, Змініть дозволи на "Дозволити виконання як програма".

Все, що вам потрібно зробити, це натиснути скрипт, вибрати "Запустити в терміналі", і це збереже всі відеофайли в цей каталог. Щоб зберегти ціле відео, його потрібно закінчити завантажувати у вашому браузері. Це збереже відео майже з будь-якого веб-сайту, включаючи youtube, vimeo, dailymotion, metacafe, liveleak, 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, але трохи відкладіть петлі стилю програмування;)


2

Останні версії флеш-плагіна приховують тимчасовий файл, позначаючи його видаленим. Практично відеопотік завантажується у "видалений файл". Однак, навіть коли файл видалений, якщо файл відкривається процесом, ви можете знайти його дескриптор файлів, а отже, і вміст файлу.

Цей простий скрипт виводить дескриптори файлів відкритих 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 Переглянути допис ]

Я сподіваюся, що це вам допоможе. Повідомте мене, якщо це спрацює.


Я думаю, ви неправильно зрозуміли питання. В оригінальному плакаті вже встановлено і працює Flash Player. Йому просто цікаво, де Flash зберігає свої тимчасові файли.
Джеремі Біча

Я. Правильно. Але я думаю, що йому цікаво, куди пішли флеш-файли. З новою версією флеш-плеєра Adobe, вони зберігаються як @Woozy вже згадані. @Woozy також зазначив, що "кешований флеш-файл знайти не так просто, як раніше". Отже, якщо ви хочете, щоб флеш-файл знову знаходився "легко", ви можете зменшити його програвач. Отже, флеш-файли знову будуть зберігатися в / tmp ... Сподіваюся, ви зараз зрозуміли мою думку !? Або я помиляюся?
Віто

1

Для загальноприйнятого методу, який працює з хромом або 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. Тим не менш, ця дивна випадкова збірка є важливою, оскільки вона важлива для отримання кешу [s].

Сподіваюся, це допомагає! (HTH)


1

Я використовую SMplayer YouTube. Поставляється з Smplayer, який ви встановлюєте в центрі програмного забезпечення ubuntu. Він записує відео на YouTube. дуже простий і простий у використанні.


Я можу підтвердити, що це РОБОТИ. Ubuntu 14.04. Я не можу повірити, що я витратив свій час, пробуючи всі відповіді тут і скрізь в Інтернеті без НЕУСПІХНОСТІ, поки я не дійшов до цього ... Просто шукав SMPlayer у центрі програмного забезпечення, встановлював його, вставляв yt адресу та зберігав відео, у форматі та розмірах на мій вибір ...: D
PFROLIM


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

Здається, Mozilla занадто часто міняє місцеположення. Крім того, назва буфера не є такою ж, як у відео, тому знайти правильний з кучі також важко. Тому збереження кешованого файлу не є послідовним рішенням. Якщо встановлення настільної програми нормально, 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, щоб відкрити, а потім натисніть показати всі, там після того, як u може шукати певний кеш, наприклад jpeg, flv що завгодно ...... клацання лівою кнопкою миші на елементі дасть можливість зберегти, зберегти він дає необхідне розширення, наприклад .flv для флеш-відео та .jpeg для jpeg і навпаки введіть тут опис зображення

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


0

Це все ще можливо.

Ви можете використовувати сценарій оболонки з цієї публікації про те, як відкрити / відтворити всі Flash-відео з VLC .

Щоб скопіювати всі відео, які потрібно замінити в останньому рядку сценарію vlc, cpта ввести каталог призначення в кінці того самого рядка.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.