Я знаю, что в Windows Internet Explorer сохраняет временные файлы .flv
во временной папке (C:\Users\%username%\AppData\Local\Microsoft\Windows\Temporary Internet Files
) при просмотре YouTube. И так же делают и Google Chrome в Windows (C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\Cache
). Так что легко найти копию этого .flv
файла.
Как насчет хрома в Ubuntu? Хранит ли он временные данные просмотра и где?
Я написал небольшой скрипт на 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"
Я провел небольшое исследование, и теперь я могу прийти с ответом, который не так прост, как кажется на первый взгляд.
Я много искал в Google, и почти все указывает на папку ~/.cache/chromium/Default
. Это папка, в которой вы должны найти файлы кэша Google Chrome. Но здесь нет больших флэш-видеофайлов (как у YouTube), только маленькие.
В конце концов, чтобы ответить на вопрос, я пришел к следующим выводам:
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 в вашей личной коллекции видео.
[ 1111]
Я делаю это вручную так: определите этот псевдоним в /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, чтобы посмотреть, какой из них я хочу. затем скопируйте вручную.
Хром выбрасывает файлы в .cache/chromium/Default
в папки Cache
и Media Cache
.
Я написал новый bash-скрипт для загрузки флеш-видеофайлов, используя ubuntu 16.04 и Chromium Version 62 . благодаря этому примеру из mcbarron
Также вы можете просмотреть репозиторий github
#!/bin/bash echo "Crawling for flash files." getPidNum=$(lsof | grep Flash | grep deleted | tr -s " " | cut -d " " -f 2) pidNum="" for linePidNum in ${getPidNum}; do if [[ "$pidNum" != "$linePidNum" ]]; then pidNum=$linePidNum echo "PID Number Is ${pidNum}" getProcNum=$(ls -l /proc/${pidNum}/fd | grep Flash | tr -s " " | cut -d " " -f 9) procNum="" for lineProcNum in ${getProcNum}; do if [[ "$procNum" != "$lineProcNum" ]]; then procNum=$lineProcNum echo "File Number Is ${procNum}" echo "Copying /proc/${pidNum}/fd/${procNum} to '${procNum}.flv'" cp /proc/${pidNum}/fd/${procNum} "${procNum}.flv" fi done fi done
Chromium хранит свои файлы кеша в различных папках, которые могут меняться со временем (в зависимости от версии?). Так что, возможно, вам следует просмотреть их все, чтобы найти то, что вы ищете.
И это:
Файлы youtube , которые вас интересуют, скорее всего, находятся в одной из папок Media Cache , но без каких-либо расширение файла. К счастью, в отличие от Windows, Linux часто определяет типы файлов независимо от расширения. Таким образом, вы можете узнать их с помощью значков видеофайлов или даже миниатюр .