私はビデオを保持したいので
Flashビデオ(Youtubeを含む)を使用する多くのサイトでは、flvファイルは/tmp
にあり、通常はFlashXX...
という名前です。ただし、一部のサイトでは、このファイルが表示されないように管理しています。 http://blip.tv/file/3627639 。これがディスクにまったくスプールされない可能性もありますが、1時間のビデオ全体がmy RAMに大きな影響を与えることなくバッファリングできるため、驚くべきことです。
Firefoxでは、キャッシュディレクトリ内でflvを見つけることができます。しかし、私はChromeでこれを行う方法に興味があります。 〜/ .cache/google-chrome /の下を調べてみましたが、正しく見えるものが見つかりませんでした。例えば:
$ ls -lt .cache/google-chrome/Cache/ | head
total 261492
-rw------- 1 yang yang 16621568 2010-12-05 03:41 data_1
-rw------- 1 yang yang 966656 2010-12-05 03:40 data_0
-rw------- 1 yang yang 23076864 2010-12-05 03:40 data_2
-rw------- 1 yang yang 262512 2010-12-05 03:40 index
-rw------- 1 yang yang 108412 2010-12-05 03:35 f_005603
-rw------- 1 yang yang 62607 2010-12-05 03:32 f_005602
-rw------- 1 yang yang 54998 2010-12-05 03:32 f_005601
-rw------- 1 yang yang 31127 2010-12-05 03:32 f_005600
-rw------- 1 yang yang 799389 2010-12-05 03:32 f_0055ff
$ ls -1t ~/.cache/google-chrome/Cache/* | head | xargs file
/home/yang/.cache/google-chrome/Cache/data_1: data
/home/yang/.cache/google-chrome/Cache/data_0: data
/home/yang/.cache/google-chrome/Cache/data_2: data
/home/yang/.cache/google-chrome/Cache/index: data
/home/yang/.cache/google-chrome/Cache/f_005603: GIF image data, version 89a, 600 x 471
/home/yang/.cache/google-chrome/Cache/f_005602: PNG image, 600 x 746, 8-bit colormap, non-interlaced
/home/yang/.cache/google-chrome/Cache/f_005601: PNG image, 140 x 342, 8-bit/color RGB, non-interlaced
/home/yang/.cache/google-chrome/Cache/f_005600: JPEG image data, JFIF standard 1.02
/home/yang/.cache/google-chrome/Cache/f_0055ff: JPEG image data, JFIF standard 1.02
/home/yang/.cache/google-chrome/Cache/f_0055fe: gzip compressed data, from FAT filesystem (MS-DOS, OS/2, NT)
Flashプロセスの開いているファイルを確認しようとしましたが、削除されたFlashファイルは表示されませんでした。以下の回答の多くが存在しているはずです。
$ ps x | grep npviewer
27148 ? Rl 0:24 /usr/lib/nspluginwrapper/i386/linux/npviewer.bin --plugin /usr/lib/flashplugin-installer/libflashplayer.so --connection /org/wrapper/NSPlugins/libflashplayer.so/27135-2
27504 pts/2 S+ 0:00 grep --color=auto npviewer
$ ls -l /proc/27148/fd/
total 0
lr-x------ 1 yang yang 64 2011-02-16 13:48 0 -> /dev/null
lrwx------ 1 yang yang 64 2011-02-16 13:48 1 -> /home/yang/.xsession-errors
l-wx------ 1 yang yang 64 2011-02-16 13:48 10 -> /home/yang/.mozilla/firefox/8wy5j0z2.default/key3.db
lrwx------ 1 yang yang 64 2011-02-16 13:48 11 -> pipe:[5500575]
lrwx------ 1 yang yang 64 2011-02-16 13:48 12 -> /home/yang/.Adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 13 -> /home/yang/.Adobe/Flash_Player/key3.db (deleted)
lr-x------ 1 yang yang 64 2011-02-16 13:48 14 -> /home/yang/.Adobe/Flash_Player/cert8.db (deleted)
l-wx------ 1 yang yang 64 2011-02-16 13:48 15 -> /home/yang/.Adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 16 -> /home/yang/.Adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 17 -> /home/yang/.Adobe/Flash_Player/key3.db (deleted)
lr-x------ 1 yang yang 64 2011-02-16 13:48 18 -> /home/yang/.Adobe/Flash_Player/cert8.db (deleted)
l-wx------ 1 yang yang 64 2011-02-16 13:48 19 -> /home/yang/.Adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 2 -> /home/yang/.xsession-errors
lrwx------ 1 yang yang 64 2011-02-16 13:48 20 -> /home/yang/.Adobe/Flash_Player/cert8.db (deleted)
lr-x------ 1 yang yang 64 2011-02-16 13:48 21 -> /home/yang/.Adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 22 -> /home/yang/.Adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 23 -> /home/yang/.Adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 24 -> /home/yang/.Adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 25 -> /home/yang/.Adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 26 -> /home/yang/.Adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 27 -> /home/yang/.Adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 28 -> /home/yang/.Adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 29 -> /home/yang/.Adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 3 -> socket:[5496032]
lrwx------ 1 yang yang 64 2011-02-16 13:51 30 -> /home/yang/.Adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 31 -> /home/yang/.Adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 32 -> /home/yang/.Adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 33 -> /home/yang/.Adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 34 -> /home/yang/.Adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 35 -> /home/yang/.Adobe/Flash_Player/key3.db (deleted)
l-wx------ 1 yang yang 64 2011-02-16 13:53 36 -> pipe:[5500575]
lr-x------ 1 yang yang 64 2011-02-16 13:53 37 -> pipe:[5500576]
l-wx------ 1 yang yang 64 2011-02-16 13:53 38 -> pipe:[5500576]
lrwx------ 1 yang yang 64 2011-02-16 13:53 39 -> socket:[5500580]
lrwx------ 1 yang yang 64 2011-02-16 13:48 4 -> socket:[5496131]
lr-x------ 1 yang yang 64 2011-02-16 13:48 5 -> pipe:[5496139]
l-wx------ 1 yang yang 64 2011-02-16 13:48 6 -> pipe:[5496139]
lr-x------ 1 yang yang 64 2011-02-16 13:48 7 -> socket:[5496140]
l-wx------ 1 yang yang 64 2011-02-16 13:48 8 -> socket:[5496141]
lr-x------ 1 yang yang 64 2011-02-16 13:48 9 -> /home/yang/.mozilla/firefox/8wy5j0z2.default/cert8.db
すべてのchromeプロセスをstrace
ingして、ファイルを書き込んでいるように見えるものに対して試してみました:
strace -p (pgrep chrome|xargs -I_ echo -p _)
しかし、write
/writev
/select
呼び出しを見ると、/proc/_/fd/
がパイプ/ソケットであることが示されているいくつかのFDのみが示されていました(おそらくプロセスが話し合う)。 npviewer.bin
プロセスでも同じことを試しました。
また、最近変更された/proc/*/fd/
(anyプロセス)でポイントされているすべてのファイルを単純に検査しようとしましたが、含まれているように見えるものは見つかりませんでしたflv。 ~/.cache/google-chrome/
で最近変更されたファイルに対しても同じチェックを試みました。
それが違いを生む場合、私はChromeの開発チャネルリリースを使用しています。これは、常に(常に?)独自のセキュアなFlash実装を使用していると思います。このアップデートの時点で、私はChrome 10.0.648.45 devを使用しています。 http://www.Adobe.com/software/flash/about/ によると= = 10.2.152.27を実行しています。いくつかのUbuntuボックスを試しましたが、いくつかのUbuntuボックスも試しましたが、結果は同じです。
他の誰かがこれを試してみたいですか?
最近のFlashプラグインはファイルを/ tmpに保存することを確認しましたが、それらはそれらを削除し、ファイルハンドルを開いたままにして、それらを存続させるというトリックを使用しています。これは、ファイルハンドルがフラッシュプラグインによって開かれている限り、ドライブ上に保持されますが、ディレクトリリストには表示されません(ファイルが削除されているため)。
私はこれについてしばらく書きました: ほとんど削除されたファイルからフラッシュビデオを取得する
しかし、それはすべてFlashプラグインのバージョンに依存します。/tmpまたはブラウザのキャッシュにも映画を保存するために使用されていました。
/ proc // fd /をチェックするのが私にとってはトリックでした:
$ ps x | grep npviewer
24657 ? Sl 12:33 /usr/lib/nspluginwrapper/i386/linux/npviewer.bin ...
$ cd /proc/24657/fd
$ ls -l
total 0
lr-x------ 1 omab omab 64 2011-02-11 02:13 0 -> /dev/null
lrwx------ 1 omab omab 64 2011-02-11 02:13 1 -> /home/omab/.xsession-errors
lr-x------ 1 omab omab 64 2011-02-11 02:13 10 -> /home/omab/.mozilla/firefox/og3emjry.default/key3.db
lrwx------ 1 omab omab 64 2011-02-11 02:13 11 -> /tmp/FlashXX0WG0J5 (deleted)
lr-x------ 1 omab omab 64 2011-02-11 02:13 12 -> pipe:[9004372]
...
「(削除済み)」とマークされているファイル11は、元々/ tmp /に作成されたファイルを指しているため、完全には削除されません。
$ file -L 11
11: Macromedia Flash Video
行う:
$ mplayer 11
fLVファイルを再生します。
上記の手順を適用した、非常に便利なコマンドラインを次に示します。それはあなたのディストリビューション/インストールとあなたが通常実行しているプロセスのためにマイナーな調整を必要とするかもしれません。
flash
をnpviewer
に置き換え、vlc
をmplayer
に置き換えることができます。
FLASHPID=\`pgrep -f flash\`; vlc /proc/$FLASHPID/fd/\`ls -l /proc/$FLASHPID/fd | grep tmp | cut -d" " -f9\`
ほとんどの場合、Flashストリームはhttpリクエストによって取得される単純なファイルです。
http://blip.tv/file/3627639
GoogleではChromeネットワークリクエストを検査できます(ctrl + shift + i
)あなたのケースで完了するのに最も長い時間を探してください:
Fosslc-..
/file/get
それをクリックして、「リクエストURL」フィールドから新しいタブにURLをコピーして貼り付けます
http://blip.tv/file/get/Fosslc-2...to823.flv?showplayer=20110401114509&source=1
ヤン、
ええ、それは〜/ .cache/google-chrome/Cacheにあります(まあ、Chromiumがインストールされているので、〜/ .cache/chromium/Cacheで見つけました)。
ビデオを見てタイムスタンプで並べ替える場合:
$ ls -rt | tail
f_00003a
f_00003b
f_00003c
f_00003d
data_2
data_3
index
data_1
f_000040
data_0
次に、fileコマンドを実行すると、どれがFlashであるかがわかります。
$ file $(ls -rt | tail)
f_00003a: Macromedia Flash data (compressed), version 9
f_00003b: Macromedia Flash data (compressed), version 9
f_00003c: Macromedia Flash data (compressed), version 10
f_00003d: PNG image data, 1024 x 768, 8-bit/color RGBA, non-interlaced
data_2: data
data_3: data
index: data
data_1: data
f_000040: Macromedia Flash Video
data_0: data
OK、GoogleをインストールChrome確認するために。
GoogleのディレクトリChrome=はChromiumとは少し異なります。
同じ手法を使用して(ここではブラウザーのプロセスIDを指定し、出力を明確にするためにいくつかの列を削除しました):
$ lsof -p 27922 | grep Cache
chrome 27922 mem ~/.cache/google-chrome/Default/Cache/index
chrome 27922 mem ~/.cache/google-chrome/Default/Cache/data_3
chrome 27922 mem ~/.cache/google-chrome/Default/Cache/data_2
chrome 27922 mem ~/.cache/google-chrome/Default/Cache/data_1
chrome 27922 mem ~/.cache/google-chrome/Default/Cache/data_0
chrome 27922 71u ~/.cache/google-chrome/Default/Cache/index
chrome 27922 72u ~/.cache/google-chrome/Default/Cache/data_0
chrome 27922 73u ~/.cache/google-chrome/Default/Cache/data_1
chrome 27922 74u ~/.cache/google-chrome/Default/Cache/data_2
chrome 27922 75u ~/.cache/google-chrome/Default/Cache/data_3
chrome 27922 111u ~/.cache/google-chrome/Default/Cache/f_00001a
クロム11.0.666.0、およびフラッシュプラグイン10.2.152の使用
npviewerのgreppingはフラッシュプロセスを生成しませんでしたが、フラッシュのgreppingは生成します。
$ ps x | grep flash
11005 ? Rl 2:30 /usr/lib/chromium-browser/chromium-browser ...
基本的に上記のjyapと同じ
lsof | grep Flash
その後、上記のように続行できます...
この問題を修正しました。ここにステップがあります
見てください http://www.arulraj.net/2011/03/google-chrome-download-video.html
開いているファイルを一覧表示してみてください。
lsof | grep Flash
新しいプレイヤーの中には、これらのトリックを使用できないようにするためにメモリにバッファリングするものがあります。その場合、何も入手できなくなります。
私からのちょっとしたアドバイス。これはUbuntu 10.04で動作します。
#!/bin/bash
viewer=`ps x|grep npviewer|grep -v grep |awk '{print $1}'`
echo $viewer
cd /proc/${viewer}/fd
jef=(`ls -l|awk '{print $8 " " $10}'|grep Flash|awk '{print $1}'`)
echo $jef
jef1=${#jef}
ext=`date +'%d_%m_%k_%M_%S'`
i=0
while [ "$i" -lt "$jef1" ]
do
cp ${jef[${i}]} /fun/${jef[${i}]}"(${ext})".flv
i=`expr $i + 1`
done
これで、crontabを使用してこのスクリプトをスケジュールできます。 FLVファイルが重複しないように最適化できます。
私はchrome 11.06を使用しています。〜/ .cache/google-chrome/Default/Cacheでflvファイルを見つけました。
file * | grep Flash\ Video
Linuxの最新のChromeの場合:
Chromeで使用されるFlashプラグインのPIDを特定します。
ps ax | grep -i chrome | grep -i flash
現在、プラグインはlibgcflashplayer
と呼ばれています。
このFlashプラグインプロセスによって開かれたFlashファイルを特定します。
file /proc/Flash_Plugin_PID/fd/* | grep -i deleted
または
lsof -p Flash_plugin_pid | grep -i deleted
削除されたファイルを探します。
ファイルを/proc/[pid]/fd/[fileno]
からrecovered_file.flv
にコピーします
KubuntuでFirefoxを使用する:
export COUNT=0
export FILENAME=$1
export FILENAME=${FILENAME:=test}
PID=`ps ax | grep -i flashplugi[n] | awk '{print $1}'`
FLASH=`ls -l /proc/$PID/fd| grep Flash | awk '{print $8}'`
for N in $FLASH ; do
COUNT=$(($COUNT+1))
cp /proc/$PID/fd/$N ${FILENAME}_${COUNT}.flv
done
/ procで作成されたファイル記述子に基づいてそれを行う別の方法があります(私は数行で最新のbashを使用しています)
#!/bin/bash
process="flash"
filename="flash"
readlink -f /proc/$$/exe | fgrep -q bash || {
echo >&2 "Hey dude ! You must call $0 with bash !"
exit 2
}
. ~/.bashrc || . /etc/profile
count=1
for pid in $(pgrep -f $process); do
fds=$(file /proc/$pid/fd/[0-9]* | fgrep Flash | cut -d: -f1)
for fd in $fds; do
cp -v $fd ${filename}_${count}.flv
((count++))
done
done
# vim:ts=4:sw=4