Chromium在哪里保留YouTubevideo文件?

我知道在Windows中,Internet Explorer在查看YouTube时将.flv临时文件存储在临时文件夹( C:\Users\%username%\AppData\Local\Microsoft\Windows\Temporary Internet Files )中。 和Windows中的Google Chrome一样( C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\Cache )。 所以很容易找到.flv文件的副本。

如何在Ubuntu中使用Chromium? 它存储浏览临时数据吗?

我写了一个小的bash脚本,可以自动完成Radu的优秀解决方案 :

 #!/bin/bash pidNum=$(ps ax | grep flash | grep chromium | grep -v "grep" | sed -e 's/^ *//g' -e 's/ *$//g' | tr -s " " | cut -d " " -f 1) procNum=$(ls -l /proc/${pidNum}/fd | grep Flash | tr -s " " | cut -d " " -f 9) filename=$1 if [[ "$filename" == "" ]]; then filename=$procNum fi echo "Copying /proc/${pidNum}/fd/${procNum} to '${filename}.flv'" cp /proc/${pidNum}/fd/${procNum} "${filename}.flv" ls -lah "${filename}.flv" 

我做了一些研究,现在我可以得到一个看起来不那么简单的答案。

我在Google上搜索了很多,几乎所有东西都指向~/.cache/chromium/Default文件夹。 这是你应该找到谷歌浏览器的缓存文件的文件夹。 但是没有大的Flashvideo文件(比如YouTube),只有小的。

最后,为了回答这个问题,我得出了以下结论:

  • 首先,您必须打开YouTubevideo,然后从互联网流式传输。
  • 在终端( Ctrl + Alt + T )中,您应该获得使用Flash Player插件的Chromium的PID。 你可以使用各种命令,但ps会做得很好: ps ax | grep flash ps ax | grep flash
  • 获得此PID后,您可以找到刚刚在Youtube上流式传输的video文件的名称: ls -l /proc/[*PID*]/fd | grep Flash ls -l /proc/[*PID*]/fd | grep Flash 。 你会看到这样的结果:

     lrwx------ 1 [*user*] [*user*] 64 mai 2 09:48 [*video file name - is a number*] -> /tmp/FlashXX4PeKRY (deleted)` 

    以下是问题的答案:在YouTube上流式传输并在系统上缓存的最后一个video文件是:

     /proc/[*PID*]/fd/[*video file name - is a number*] 
  • 现在,如果需要,您应该将它们复制到系统的任何位置:

     cp /proc/[*PID*]/fd/[*video file name - is a number*] ~/Videos/[*new video file name*].flv 

    现在,您在个人video集中的Youtube上观看了最后一个video。

在此处输入图像描述

我是这样手动完成的:在/etc/bash.bashrc中定义这个别名

 alias findflash='find /proc/ -maxdepth 1 -type d -exec lsfd.sh {} \;' 

并在/usr/local/bin/lsfd.sh中创建此脚本

 #!/bin/bash ls -l $1/fd/ 2>/dev/null 3>/dev/null| grep -i 'flash' 1>/dev/null 2>/dev/null 3>/dev/null; if [ $? -eq "0" ]; then echo $1/fd/; ls -l $1/fd/ | grep -i 'flash'; fi 

结果:

 root@juanmf-V570:/tmp# findflash /proc/31591/fd/ lrwx------ 1 root root 64 Aug 19 23:59 37 -> /home/juanmf/.config/google-chrome/Default/Pepper Data/Shockwave Flash/.com.google.Chrome.9Oc0fE (deleted) lrwx------ 1 root root 64 Aug 19 23:59 38 -> /home/juanmf/.config/google-chrome/Default/Pepper Data/Shockwave Flash/.com.google.Chrome.hcEvxv (deleted) 

然后我知道文件的位置,并使用mplayer来查看我想要的文件。 然后手动复制。

Chromium将其缓存文件保存在各种文件夹中,这些文件夹可能会随时间而变化(取决于版本?)。 因此,您应该浏览所有这些内容以找到您要查找的内容。

它们是:

  • / home / $ USER / Media Cache
  • /home/$USER/.cache/chromium/Default/Cache
  • /home/$USER/.cache/chromium/Default/Media Cache
  • /home/$USER/.config/chromium/Default/Cache
  • /home/$USER/.config/chromium/Default/Media Cache

您感兴趣的youtube文件很可能位于其中一个Media Cache文件夹下,但没有任何文件扩展名。 幸运的是,与Windows不同,Linux通常会检测文件类型,而不管扩展名如何。 因此,您可能会使用video文件图标甚至缩略图识别它们。

我使用ubuntu 16.04chrome Version 62编写了用于下载flashvideo文件的新bash脚本。 感谢mcbarron的 这个例子

您还可以在github存储库上查看

 #!/斌/庆典
 echo“抓取flash文件”。
 getPidNum = $(lsof | grep Flash | grep deleted | tr -s“”| cut -d“” -  f 2)
 PIDNUM = “”
对于$ {getPidNum}中的linePidNum; 做
     if [[“$ pidNum”!=“$ linePidNum”]]; 然后
         PIDNUM = $ linePidNum
         echo“PID Number is $ {pidNum}”
         getProcNum = $(ls -l / proc / $ {pidNum} / fd | grep Flash | tr -s“”| cut -d“” -  f 9)
         procNum = “”
        对于$ {getProcNum}中的lineProcNum; 做
             if [[“$ procNum”!=“$ lineProcNum”]]; 然后
                 procNum = $ lineProcNum
                 echo“文件号是$ {procNum}”
                 echo“Copying / proc / $ {pidNum} / fd / $ {procNum} to'$ {procNum} .flv'”
                 cp / proc / $ {pidNum} / fd / $ {procNum}“$ {procNum} .flv”
            科幻
         DONE
    科幻
 DONE

Chromium将文件放入CacheMedia Cache文件夹下的.cache/chromium/Default