Chromium は YouTube ビデオ ファイルをどこに保存しますか?

Chromium は YouTube ビデオ ファイルをどこに保存しますか?

.flvWindows では、YouTube を視聴するときに Internet Explorer が一時ファイルを一時フォルダー ( ) に保存することがわかっています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 のキャッシュ ファイルがあるフォルダーです。ただし、YouTube にあるような大きなフラッシュ ビデオ ファイルはなく、小さなファイルだけです。

結局、この質問に答えるために、私は次のような結論に達しました。

  • まず、YouTube ビデオを開いて、インターネットからストリーミングする必要があります。
  • ターミナル ( Ctrl+ Alt+ T) で、Flash Player プラグインを使用する Chromium の PID を取得する必要があります。さまざまなコマンドを使用できますが、ps次の方法でも問題ありませんps 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

私はフラッシュビデオファイルをダウンロードするための新しいbashスクリプトを書きましたウブントゥ 16.04そしてchromium バージョン 62. 感謝この例から マクバロン

また、githubリポジトリで閲覧することもできます

#!/bin/bash
echo "フラッシュファイルをクロールしています。"
getPidNum=$(lsof | grep Flash | grep removed | tr -s " " | cut -d " " -f 2)
pid番号=""
${getPidNum}のlinePidNumに対して、
    [[ "$pidNum" != "$linePidNum" ]]; の場合
        pidNum=$linePidNum
        echo "PID番号は${pidNum}です"
        getProcNum=$(ls -l /proc/${pidNum}/fd | grep フラッシュ | tr -s " " | cut -d " " -f 9)
        プロセス番号=""
        ${getProcNum} 内の lineProcNum について;する
            [[ "$procNum" != "$lineProcNum" ]]; の場合
                procNum=$行ProcNum
                echo "ファイル番号は ${procNum} です"
                echo "/proc/${pidNum}/fd/${procNum} を '${procNum}.flv' にコピーしています"
                cp /proc/${pidNum}/fd/${procNum} "${procNum}.flv"
            フィ
        終わり
    フィ
終わり

関連情報