
.flv
Windows では、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. 感謝この例から マクバロン
#!/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" フィ 終わり フィ 終わり