Chromium 将 YouTube 视频文件保存在哪里?

Chromium 将 YouTube 视频文件保存在哪里?

我知道在 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 怎么样?它会存储浏览临时数据吗?存储在哪里?

答案1

我做了一些研究,现在我得出的答案并不像乍一看那么简单。

我在 Google 上搜索了很多,几乎所有内容都指向该~/.cache/chromium/Default文件夹。该文件夹应该是 Google Chrome 缓存文件所在的文件夹。但是没有大型 Flash 视频文件(如 YouTube 有),只有小型文件。

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

  • 首先,您必须打开 YouTube 视频并让其从互联网上流式传输。
  • 在终端 ( ++ Ctrl)中,您应该获取使用 Flash Player 插件的 Chromium 的 PID。您可以使用各种命令,但效果很好:。AltTpsps ax | grep flash
  • 获得此 PID 后,您可以找到刚刚在 Youtube 上播放的视频文件的名称: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 上播放的最后一个视频文件,并且缓存在系统中:

    /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
    

    现在,您的个人视频收藏中已经有了您在 Youtube 上观看的最后一段视频。

在此处输入图片描述

答案2

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

#!/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"

答案3

我像这样手动执行:在 /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 查看我想要的文件。然后手动复制。

答案4

我编写了新的 b 脚本,用于下载 flash 视频文件Ubuntu 16.04chromium 版本 62。 谢谢这个例子麦克巴伦

你也可以在 github 仓库中查看

/bin/bash #!/bin/bash
echo "正在抓取 flash 文件。"
getPidNum = $(lsof | grep Flash | grep 已删除 | tr -s“ ”| cut -d“ ” -f 2)
pid编号=""
对于 ${getPidNum} 中的 linePidNum;执行
    如果 [[ "$pidNum" != "$linePidNum" ]]; 然后
        pidNum=$linePidNum
        echo "PID 编号为 ${pidNum}"
        getProcNum = $(ls -l /proc/${pidNum}/fd | grep Flash | tr -s“ ”| cut -d“ ”-f 9)
        进程号=""
        对于 ${getProcNum} 中的 lineProcNum;做
            如果 [[ "$procNum" != "$lineProcNum" ]]; 然后
                procNum=$lineProcNum
                echo "文件编号为 ${procNum}"
                echo "将 /proc/${pidNum}/fd/${procNum} 复制到 '${procNum}.flv'"
                cp /proc/${pidNum}/fd/${procNum} "${procNum}.flv"
        完毕
完毕

相关内容