在Maverick中,可以选择从YouTube,Vimeo等网站下载Flash视频,方法是在关闭窗口之前将目录中的flashxx**
文件复制/tmp
到另一个位置。但是在Natty的Firefox 4中,此功能不再起作用。为什么?
在Maverick中,可以选择从YouTube,Vimeo等网站下载Flash视频,方法是在关闭窗口之前将目录中的flashxx**
文件复制/tmp
到另一个位置。但是在Natty的Firefox 4中,此功能不再起作用。为什么?
Answers:
Flash插件的更新将位置从/tmp
Firefox缓存目录(例如~/.mozilla/firefox/bq95m4w1.default/Cache
)更改了。不幸的是,缓存的闪存文件不像以前那样容易找到,但是有可能。
以下命令列出了Firefox缓存中的所有Flash文件。
find ~/.mozilla/firefox/*.default/Cache -type f -exec file {} \; | grep Flash
在较新版本的ubuntu上尝试
find ~/.cache/mozilla/firefox/*.default/Cache -type f -exec file {} \; | grep Flash
file ~/.mozilla/firefox/*.default/Cache/* | grep Flash
呢?缓存目录似乎没有子目录,可以证明使用合理find
。
您可以使用多个Firefox插件来从许多网站(例如Youtube)中提取FLV文件。
我将在下面显示如何使用最新版本的Flash插件手动执行此操作。
然后,从命令行运行命令
$ lsof -n | grep Flash
会显示文件(甚至是内存文件!),并过滤Flash
名称相同的文件。
你得到类似的东西
plugin-co 2461 user 17u REG 8,5 1693301 524370 /tmp/FlashXXVkHEM6 (deleted)
。
现在,有一个/tmp/FlashXXVkHEM6
但已被删除。
在Linux中,如果删除了文件,则只有在关闭了先前打开该文件的所有程序后,该文件实际上才消失。也就是说,Flash插件正在使用技巧来隐藏/ tmp / FlashXXVkHEM6文件。它会立即创建deletes
它。但是由于Flash插件可以继续运行,因此它显然仍然可以使用它。
从上面的行中,我们注意到了数字2461
,这是进程ID。您的情况可能会有所不同。然后跑
$ cd /proc/2461/fd
最后执行
$ ls -l
这将向您显示内存文件,特别是
lrwx------ 1 user user 64 2011-09-16 10:23 17 -> /tmp/FlashXXVkHEM6 (deleted)
数字“ 17”(在我的情况下)是可用于访问已删除 文件的文件名/tmp/FlashXXVkHEM6
。因此,只需运行
$ cp 17 /tmp/myyoutubevideo.flv
然后您恢复了YouTube视频!
而已!您手动恢复了YouTube视频!
如果导航到/ proc文件夹,则会看到一堆文件夹,所有文件夹均以数字命名,其中包括与第二个字段中的数字匹配的文件夹。
现在导航到该文件夹,然后浏览其子文件夹“ fd”。在此文件夹中,您将看到整个数字选择。这些与文件描述符本身有关。
ls -l
在此文件夹中运行,您将看到每个数字都链接到管道,套接字或文件。
其中,第四个字段中的数字将符号链接到我们之前找到的/ tmp / Flash *文件。
要测试这是正确的文件,可以通过mplayer或vlc(mplayer filedescriptornumber
/ vlc filedescriptornumber
)运行它。如果找不到文件名,请尝试ls -l | grep Flash
。
为方便起见,请在控制台中尝试以下命令:
stat -c %N /proc/*/fd/* 2>&1|awk -F[\`\'] '/Flash/{print$2}'
输出将是这样的:
/proc/4691/fd/17
/proc/4691/fd/18
这将列出您所有下载的Flash流。对于该示例,我的firefox 4浏览器中有2个Flash视频。如果要复制它,只需使用以下命令:
cp /proc/4691/fd/17 ~/Videos/Flash/sample.flv
来源:http : //n00bsys0p.wordpress.com/2011/02/10/how-to-download-flash-10-2-video-streams-in-linux/
这个小脚本会将您下载的Flash文件保存到自定义目录。
制作要保存文件的目录,例如〜/ Videos / flvs
mkdir ~/Videos/flvs
打开gedit并复制并粘贴此脚本。
#!/bin/bash
# flvcache script
CACHE=~/.mozilla/firefox/*.default/Cache
OUTPUTDIR=~/Videos/flvs
MINFILESIZE=2M
for f in `find $CACHE -size +$MINFILESIZE`
do
cp "$f" "$OUTPUTDIR/$o"
done
nautilus "$OUTPUTDIR"&
将文件另存为saveflashall.sh,然后向文件添加可执行权限
chmod +x saveflashall.sh
然后运行它。
./saveflashall.sh
然后它将打开上面创建的第一个文件夹中的文件。自定义为包括所有文件(适用于mpeg和mp4),而不是仅包括flvs。
点数可浏览http://desdecode.blogspot.com/2011/04/saving-watched-online-videos-linux.html
据我所知这不是由于Firefox或natty,而是由于Flash更新...
您可以使用wireshark
或使用诸如youtube-dl
获取电影文件之类的工具来捕获http流。
但是请记住,这可能不合法,因此请检查您当地的法规...
Ubuntu 12.04(Precise)-Firefox 11说明 chlumma1的bash脚本的修改版本。
使用文本编辑器,将下面的代码保存到名为“ getvids.sh”的文件中。将其移至您要保存视频的位置。右键单击该文件,转到“属性”,将“权限”更改为“允许作为程序执行”。
您所要做的就是单击脚本,选择“在终端中运行”,它将所有视频文件保存到该目录。要保存整个视频,必须先将其加载到浏览器中。它将保存几乎所有网站上的视频,包括youtube,vimeo,dailymotion,metacafe,liveleak,facebook。只需删除不需要的任何视频文件即可。
(如果您想要的视频没有被保存,那么该网站可能正在使用一种专有的流格式,任何缓存检索程序都无法保存该格式。例如:Hulu,netflix,一些youtube视频?)另外,VLC播放器是非常适合观看Flash视频。
#!/usr/bin/env bash
# getvids.sh [save_folder]
SAVE_FOLDER="$HOME" # User editable
# If the below option is used, then this script should be run in a terminal.
#CPMOD="-i" # Uncomment to prevent file overwrites
PATERN="libflashplayer"
ALL_PID=`pgrep -f $PATERN`
if [ $? -eq 1 ]; then
echo ERROR: Flashplayer not running
exit 1
fi
if [ ! -z $1 ]; then
echo "Setting save location: $1"
SAVE_FOLDER="$1"
fi
if [ ! -d "$SAVE_FOLDER" ]; then
echo "Save location doesn't exist: $SAVE_FOLDER"
exit 1
fi
for PID in $ALL_PID; do
declare -a OUTFILES=($(ls -lt1 /proc/$PID/fd | grep '/tmp/Flash' | sed 's/^.*\/tmp\///' | sed 's/\ .*$//'))
declare -a FDS=($(ls -lt1 /proc/$PID/fd | grep '/tmp/Flash' | awk '{ print $9 }' ))
for ((i=0; i<${#FDS[@]}; i++)); do
saveas="$SAVE_FOLDER/${OUTFILES[i]}.flv"
echo "Copying video ${FDS[i]} to $saveas"
cp $CPMOD "/proc/$PID/fd/${FDS[i]}" "$saveas"
done
done
那些了解终端的人可以编辑前两个变量并获得一些额外的功能。或者,要实时查看文件,可以在终端中键入此文件以找出它们的位置for i in $(pgrep -f libflash); do find /proc/$i/fd/ -ls | grep "/tmp/Flash" | awk '{ print $11 }'; done
PS。同样,出色的作品chlumma1,但是裁员了C编程风格的循环;)
Flash插件的最新版本通过将临时文件标记为已删除来隐藏该临时文件。实际上,视频流被下载到“已删除文件”。但是,即使文件被删除,如果文件被某个进程打开,则可以找到其文件描述符,并因此找到文件内容。
这个简单的脚本可以打印出打开的Flash视频的文件描述符:
file /proc/*/fd/* 2>/dev/null | grep Flash | cut -f1 -d:
并且,您可能想从文件描述符中创建一个常规文件,例如:
cp $(file /proc/*/fd/* 2>/dev/null | grep Flash | cut -f1 -d: | head -n 1) video.avi
否则文件描述符不是很方便(请记住,它是一个已删除的文件!)
无论您使用哪种浏览器,该方法均应起作用。
嘿,这个问题在10.10中已经存在。因此,为了解决它,请尝试以下操作:
None of the methods described by previous posters are as convenient as just copying the flash file from the tmp directory.
Therefore, what I did was downgrade my Flash to 10.1.102.64
The download link for older versions of flash is http://kb2.adobe.com/cps/142/tn_14266.html
Download the (large) file named "Flash Player 10.1.102.64 and 9.0.289.0".
After downloading, extract the file named flashplayer10_1r102_64_linux.tar.gz
From this file extract libflashplayer.so and overwrite the file at /usr/lib/flashplugin-installer (you will need root privileges, try gksudo nautilus)
Restart Firefox and your flash videos will land up in the /tmp directory as before! This won't work for Google Chrome, it will continue to use the latest version of Flash.
Note: For the above steps to work, a version of Adobe Flash should have been previously installed.
[引自本网站:由chetancrasta查看帖子 ]
我希望这能帮到您。让我知道这是否有效。
对于适用于chrome或firefox的通用方法,请尝试使用此名为flashcache的小程序。它将当前正在播放的Flash视频复制到当前目录。
我的补丁程序添加了-p
使脚本使用mplayer
而不是复制文件的方式播放视频的选项。
我使用SMplayer YouTube。您随ubuntu软件中心一起安装了Smplayer。它录制YouTube视频。非常简单易用。
该脚本将执行以下操作:
#!/bin/bash
PATERN="libflashplayer"
ALL_PID=`pgrep -f $PATERN`
if [ $? -eq 1 ]
then
echo ERROR: Flashplayer not runnig
exit 1
fi
for PID in $ALL_PID
do
OUTFILES=`ls -lt1 /proc/$PID/fd | grep '/tmp' | sed 's/^.*\/tmp\///' | sed 's/\ .*$//'`
INFD=`ls -lt1 /proc/$PID/fd | grep '/tmp' | cut -f 9 -d \ `
# nazev souboru do pole
i=0;
for out in $OUTFILES
do
i=`expr $i + 1`
NAMEFILE[$i]=$out
done
# nazev file desktiptoru do pole
i=0;
for out in $INFD
do
i=`expr $i + 1`
NAMEFD[$i]=$out
done
# ulozeni video dat
i=0;
for outfd in $OUTFILES
do
i=`expr $i + 1`
#echo ${NAMEFILE[$i]} ${NAMEFD[$i]}
cat /proc/$PID/fd/${NAMEFD[$i]} > ${NAMEFILE[$i]}.flv
done
done
Mozilla似乎过于频繁地更改位置。此外,缓冲区的名称与视频的名称不同,因此从堆中查找相应的缓冲区也是困难的。因此,保存缓存文件不是一个一致的解决方案。如果可以安装桌面程序,那么ClipGrab是最好的工具。您可以
最简单的方法是将“ CacheViewer Continued 0.8”插件用于Firefox
安装完成后,按ctrl + shift + c打开,然后按show all,然后在您可以搜索特定的缓存(如jpeg,flv任何内容)后……在该项目上单击鼠标左键,即可为您提供保存,保存的选项通过提供所需的扩展名(例如,用于Flash视频的.flv和用于jpeg的.jpeg)进行扩展,反之亦然
插件的链接https://addons.mozilla.org/zh-CN/firefox/addon/cacheviewer-continued/?src=api