Linux의 Chrome에서 / tmp가 아닌 경우 flv는 어디에 있습니까?


37

비디오를 유지하고 싶습니다

  1. 버퍼링 한 다음 미디어 플레이어에서 연속 재생하는 것을 좋아합니다.
  2. 버퍼링 된 비디오를 모두 잃지 않고 브라우저를 중지 / 다시 시작할 수 있기를 원합니다.
  3. 플래시가 자주 충돌하고 회색 상자가 나타납니다 .

Flash 비디오 (Youtube 포함)가있는 많은 사이트의 경우 flv 파일 ( /tmp일반적으로)을 찾을 수 있습니다 FlashXX.... 그러나 일부 사이트는이 파일이 표시되지 않도록 관리합니다 (예 : http://blip.tv/file/3627639) . 이것이 디스크에 전혀 스풀링되지 않을 수도 있지만, 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)

플래시 프로세스를 위해 열려있는 파일을 보려고 시도했지만 삭제 된 플래시 파일을 보지 못했습니다. 아래 답변이 있어야합니다.

$ 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

strace파일을 작성하는 것처럼 보이는 모든 크롬 프로세스를 시도 했습니다.

strace -p (pgrep chrome|xargs -I_ echo -p _)

그러나 write/ writev/ select호출을 살펴보면 /proc/_/fd/파이프 / 소켓 (프로세스가 서로 대화하는 것으로 나타남) 인 것으로 보이는 몇 가지 FD 만 지적했습니다 . 또한 npviewer.bin프로세스 에서 같은 것을 시도했습니다 .

또한 최근 수정 된 프로세스 /proc/*/fd/( 모든 프로세스) 에서 모든 파일을 검사하려고했지만 flv가 포함 된 것처럼 보이는 것을 찾지 못했습니다. 또한 최근에 수정 된 파일에서 동일한 검사를 시도했습니다 ~/.cache/google-chrome/.

차이가 있다면 Chrome의 개발자 채널 릴리스를 사용하고 있으며, 항상 자체 플래시 보안 구현을 사용한다고 생각합니다. 이 업데이트 시점에서 Chrome 10.0.648.45 dev를 사용하고 있습니다. http://www.adobe.com/software/flash/about/ 에 따르면 10.2.152.27을 실행 중입니다. 나는 지금 여러 우분투 상자를 사용해 보았습니다. 나는 또한 동일한 결과로 여러 우분투 상자를 사용해 보았습니다.

다른 사람들이 이것에 찌르기를 원합니까?


문제가있는 페이지에 대한 링크를 제공하면 도움이 될 수 있습니다.
Sophie Alpert

@Ben : 죄송합니다. 추가되었습니다!
Yang

답변:


31

최근 Flash 플러그인은 / tmp에 파일을 저장하지만 파일을 제거하고 파일 핸들을 열어 두어 살아있게 유지하는 트릭을 사용합니다. 이는 파일 핸들이 플래시 플러그인으로 열려있는 한 여전히 드라이브에 유지되지만 파일이 삭제 되었기 때문에 디렉토리 목록에 표시되지 않음을 의미합니다.

나는이 시대에 대해 썼다 : 거의 삭제 된 파일에서 플래시 비디오 가져 오기

그러나 그것은 모두 플래시 플러그인의 버전에 달려 있습니다. 영화는 / tmp 또는 브라우저의 캐시에도 저장했습니다.


매우 흥미로운 블로그 게시물은 Firefox 에서이 작업을 수행하는 방법을 설명하지만 Chrome을 사용 하여이 작업을 수행하는 방법이 궁금합니다. lsof와 / proc을 살펴 보았지만 연결되지 않은 파일의 흔적을 찾지 못했습니다. 예제 비디오로 성공 했습니까?
Yang

1
@ 양 : 적어도 정확히 내 노트북에서 크롬과 동일한 방식으로 작동합니다. 웹 브라우저보다 플래시 플레이어에 더 의존한다고 생각합니다. 어떤 버전의 Flash 플러그인이 있습니까?
liori

adobe.com/software/flash/about 에 따르면 10.2.152.27을 실행 중이며 Chrome에 내장 된 플래시라고 생각합니다 (Chrome 10.0.648.45 dev 사용). 나는 지금 여러 우분투 상자를 사용해 보았습니다.
Yang

2
참고로, 모든 플래시 무비 플레이어와 함께 사용되었지만 더 이상 그렇지 않습니다. 알려지지 않은 일부 사이트에서는 작동하지만 YouTube에서는 작동하지 않는 것 같습니다. 유튜브가 파일 시스템에서 파일을 보호 할 수있는 방법을 찾은 것 같아요…
liori

1
여전히 (에 따라 크롬 버전 33.0.1750.152-1 (데비안 제시) 및 flashplayer 버전 11,2,202,346와 나를 위해 작동 adobe.com/software/flash/about )
jopasserat

24

/ 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 파일을 재현합니다.


위의 절차에서 채택한 매우 편리한 명령 줄이 있습니다. 배포 / 설치 및 일반적으로 실행중인 프로세스를 약간 조정해야 할 수도 있습니다.

당신은 대체 할 수 flashnpviewer교체 vlcmplayer:

FLASHPID=\`pgrep -f flash\`; vlc /proc/$FLASHPID/fd/\`ls -l /proc/$FLASHPID/fd | grep tmp | cut -d" " -f9\`

이것은 나를 위해 작동하지 않습니다-나는 내가 본 것에 대한 세부 사항으로 답변을 업데이트했습니다. 왜 그것이 나를 위해 작동하지 않을 수 있는지 아십니까? 나는 지금 여러 기계에서 시도했다.
Yang

BTW, 다음을 사용하여 flv를 저장할 수 있습니다.mplayer 11 -dumpstream -dumpfile outputname
liewl

8
당신은 그것을 복사 할 수 있습니다 cp 11 / ... / ...
omab

10

대부분의 플래시 스트림은 http 요청에 의한 간단한 파일입니다.

의 동영상 http://blip.tv/file/3627639

Chrome에서 네트워크 요청을 검사 할 수 있습니다 ( ctrl + shift + i).

Fosslc-..
/file/get

그것을 클릭하고 URL을 '요청 URL'필드에서 새 탭으로 복사 / 붙여 넣기

http://blip.tv/file/get/Fosslc-2...to823.flv?showplayer=20110401114509&source=1


환상적인! 귀하의 답변이 실제로 효과가 있었기 때문에 귀하의 답변을 받아 들이고 싶지만 다른 답변이 실제로 다운로드 된 flv의 위치를 ​​알아 내는지 조금 더 기다릴 것입니다.
Yang

귀하의 경우에는 속임수이므로 받아들이지 마십시오. 도대체 플래시가 임시 비디오 파일을 어디에 저장하는지 알고 싶습니다.
Doud

응, 알았어 나도 알고 싶어 필자의 직감은 data_ * 파일의 어딘가에 저장되는 것인데, 아마도 브라우저 관련 힙일 것입니다. 그러나 Chrome 코드베이스로 뛰어 들지 못하는 도구를 찾지 못했습니다.
Yang

9

양,

예, ~ / .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

그런 다음 파일 명령을 실행하면 어떤 명령이 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

확인을 위해 Chrome을 설치했습니다.

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

그것은 나를 위해 작동하지 않기 때문에 흥미 롭습니다. 나는 내가 본 것을 붙여서 대답을 업데이트했습니다. 내가 준 예제 blip.tv URL로 작동합니까? 다른 버전의 Chrome 때문일 수 있습니다. 어떤 버전을 사용하고 있습니까?

네 정확한 URL을 사용했습니다. 명령을 실행하는 동안 파일을 재생 했습니까? 캐시를 지우고 파일을 재생 한 다음 명령을 실행하십시오. 그것은 나를 위해 일했고 Mplayer에서 파일을 재생할 수 있으므로 나를 위해 일했습니다!
jyap

아아, 캐시를 지우는 것이 도움이되지 않았습니다. 예,이 명령을 실행하는 동안 파일이 재생되었습니다. 자세한 내용으로 답변을 업데이트했습니다. 일부 응답자는 플래시 프로세스를보고 있어야한다고 말하고 다른 응답자는 브라우저 프로세스 중 하나를보아야한다고 말하지만 두 프로세스를 모두 시도했지만 모든 프로세스를 보았습니다. 왜 나에게 깨진 지에 대한 아이디어가 있습니까? 나는 지금 여러 기계에서 시도했다.
Yang

위의 답변을 수정하여 Chrome의 프로세스 ID를 지정하고 lsof 명령을 실행했습니다. 사용해보십시오.
jyap

5

크롬 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

그런 다음 위와 같이 진행할 수 있습니다 ...


이것은 나를 위해 작동하지 않습니다-나는 내가 본 것에 대한 세부 사항으로 답변을 업데이트했습니다. 왜 그것이 나를 위해 작동하지 않을 수 있는지 아십니까? 나는 지금 여러 기계에서 시도했다.
Yang

3

열린 파일을 나열하십시오.

lsof | grep Flash

이것이 당신을 위해 일했습니까? 나를 위해 아무것도 켜지지 않습니다-일반적인 Flash * 파일이 일반적인 위치에 표시되지 않는다고 가정 할 수도 있습니다.
Yang

3

새로운 플레이어 중 일부는 사람들이 이러한 트릭을 사용할 수 없도록 메모리에 버퍼링합니다. 이 경우 아무 것도 얻을 수 없습니다.


이 정보가 도움이되며 RAM을 조사하는 방법을 모릅니다 (가능한 것임)는 모르지만 "아무것도 얻을 수 없습니다"라는 데 동의하지 않습니다. 의지가있는 곳에 방법이 있습니다.
user66001

3

이 문제를 해결했습니다. 여기 단계는

  1. Chrome / Mozilla의 플러그인에 대해 설치된 플러그인
  2. 자세한 내용을 보려면 자세히를 클릭하십시오. 플래시 플러그인을 비활성화하십시오. 플러그인의 위치는“/usr/lib/adobe-flashplugin/libflashplayer.so”입니다.
  3. http://get.adobe.com/flashplayer/ 에서 tar.gz 버전의 플래시 플레이어를 다운로드하십시오.
  4. 해당 파일을 추출하고 libflashplayer.so를 / usr / lib / chromium-browser / plugins에 복사하십시오. 그런 다음 플러그인 페이지에서 이것을 활성화하십시오.
  5. 비디오를 보면 /home//.cache/chromium/Default/Cache에서이 폴더를 다운로드합니다.

http://www.arulraj.net/2011/03/google-chrome-download-video.html 살펴보기


2

Linux의 최신 Chrome :

  1. Chrome에서 사용하는 플래시 플러그인의 pid를 식별하십시오.

    ps ax | grep -i chrome | grep -i flash 
    

    현재 플러그인은이라고 libgcflashplayer합니다.

  2. 이 Flash 플러그인 프로세스에서 연 Flash 파일을 식별하십시오.

    file /proc/Flash_Plugin_PID/fd/* | grep -i deleted
    

    또는

    lsof -p Flash_plugin_pid | grep -i deleted
    

    삭제 된 파일을 찾으십시오.

  3. 에서 파일을 복사 /proc/[pid]/fd/[fileno]하는recovered_file.flv


2

우분투 10.04에서 크롬 11.06을 사용하고 있습니다. ~ / .cache / google-chrome / Default / Cache에서 flv 파일을 찾았습니다. 시도

file * | grep Flash\ Video

2

나에게서 조금 팁. 이것은 우분투 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 파일이 없도록 최적화 할 수 있습니다.


2

쿠분투에서 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

0

/ 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.