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.04和chrome 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将文件放入Cache
和Media Cache
文件夹下的.cache/chromium/Default
。