如何从流媒体网站访问Flash文件?

在Maverick中,可以选择从YouTube,Vimeo等网站下载Flashvideo,方法是在关闭窗口之前将/tmp目录中的flashxx**文件复制到另一个位置。 但是在Natty的Firefox 4中,这不再适用了。 为什么?

对flash插件的更新将位置从/tmp更改为Firefox缓存目录(例如~/.mozilla/firefox/bq95m4w1.default/Cache )。 不幸的是,缓存的Flash文件不像以前那么容易找到,但它是可能的。

以下命令列出了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 

您可以使用多个Firefox插件从许多网站(如Youtube)中提取FLV文件。

我将在下面展示如何使用最新版本的Flash插件手动完成此操作。

  1. 访问YouTubevideo,等待其完整下载。
  2. 然后,从命令行运行该命令

    $ lsof -n | grep Flash

    它显示文件(甚至是内存文件!),并过滤到名称中包含Flash的文件。

  3. 你会得到类似的东西

    plugin-co 2461 user 17u REG 8,5 1693301 524370 /tmp/FlashXXVkHEM6 (deleted)

    现在,有一个/tmp/FlashXXVkHEM6但它已被删除。

  4. 在Linux中,如果删除了一个文件,那么只有当先前打开它的所有程序都关闭时,它才会被删除。 也就是说,Flash插件正在使用技巧来隐藏/ tmp / FlashXXVkHEM6文件。 它创建它并立即deletes它。 但是由于Flash插件一直在运行,它显然仍然可以使用它。

  5. 从上面的行我们注意到数字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

    并恢复Youtubevideo!

而已! 你手动恢复了Youtubevideo!

如果您导航到/ proc文件夹,您将看到一堆文件夹全部以数字命名,包括与第二个字段中的数字匹配的文件夹。

现在导航到此文件夹,然后导航到其子文件夹“fd”。 在此文件夹中,您将看到一整个数字选择。 这些与文件描述符本身有关。

在此文件夹中运行ls -l ,您将看到每个数字都链接到管道,套接字或文件。

在此范围内,第四个字段中的数字将符号链接到我们之前找到的/ tmp / Flash *文件。

要测试这是正确的文件,您可以通过mplayer或vlc( mplayer filedescriptornumber / vlc filedescriptornumber )运行它。 如果您在查找文件名时遇到问题,请尝试使用ls -l | grep Flash 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个Flashvideo。 如果要复制它,只需使用以下命令:

 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文件保存到自定义目录中。

  1. 制作你想要保存文件的目录,例如〜/ Videos / flvs

     mkdir ~/Videos/flvs 
  2. 打开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"& 
  3. 将文件另存为saveflashall.sh,然后向该文件添加可执行权限

     chmod +x saveflashall.sh 
  4. 然后运行它。

     ./saveflashall.sh 

然后它将打开上面创建的第一个文件夹中的文件。 自定义包括所有文件(适用于mpeg和mp4)而不是仅包含flvs。

积分转到http://desdecode.blogspot.com/2011/04/saving-watched-online-videos-linux.html

据我所知这不是因为firefox也不是natty,而是闪存更新…

您可以使用wireshark捕获http流或使用youtube-dl类的工具来获取电影文件。

但请记住,这可能不合法,所以请查看当地法规……

您应该使用flashgot下载video。

Ubuntu 12.04(精确) – Firefox 11说明 chlumma1的bash脚本的修改版本。

使用文本编辑器,将下面的代码保存到名为“getvids.sh”的文件中。 将其移动到要保存video的位置。 右键单击该文件,转到“属性”,将“权限”更改为“允许作为程序执行”。

您所要做的就是单击脚本,选择“在终端中运行”,它会将所有video文件保存到该目录。 要保存整个video,必须在浏览器中完成加载。 它将保存几乎任何网站的video,包括youtube,vimeo,dailymotion,metacafe,liveleak,facebook 。 只需删除您不想要的任何video文件。

(如果你想要的video没有被保存,那么网站可能正在使用任何缓存检索程序无法保存的专有流格式。例如:Hulu,netflix,一些youtubevideo?)另外,VLC播放器是一个非常适合观看Flashvideo。

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

那些对终端有所了解的人可以编辑前两个变量并实现一些额外的function。 或者,要查看实时文件,您可以在终端中键入此内容, for i in $(pgrep -f libflash); do find /proc/$i/fd/ -ls | grep "/tmp/Flash" | awk '{ print $11 }'; done查找它们的位置for i in $(pgrep -f libflash); do find /proc/$i/fd/ -ls | grep "/tmp/Flash" | awk '{ print $11 }'; done for i in $(pgrep -f libflash); do find /proc/$i/fd/ -ls | grep "/tmp/Flash" | awk '{ print $11 }'; done

PS。 此外,优秀的工作chlumma1,但裁掉C编程风格循环;)

最新版本的Flash插件通过标记删除来隐藏临时文件。 实际上,video流被下载到“已删除的文件”。 但是,即使删除文件,如果文件由进程打开,那么您可以找到其文件描述符,从而找到文件内容。

这个简单的脚本打印出已打开的Flashvideo的文件描述符:

 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 View Post发布 ]

我希望这能帮到您。 让我知道这是否有效。

对于一个适用于chrome或firefox的普遍适用的方法,请尝试这个名为flashcache的小程序。 它将当前正在播放的Flashvideo复制到当前目录。

我的补丁添加了选项-p ,使脚本使用mplayer播放video,而不是复制文件。

虽然没有直接回答这个问题,但我遇到了同样的问题,经过一番搜索后发现Clipgrab更容易使用。

您可以在终端中尝试此命令

 cp \`file /proc/\*/fd/* | grep tmp/Flash | awk -F":" '{print$1}'` dirname/ 

点击此链接( ~/.mozilla/firefox/ewzggcll.default/Cache

除非我真的很困惑(不要这么认为),否则“ewzggcll”将不在您的机器中。 您会发现随机收集的字母(可能还有数字?)很可能是Linux和Firefox安装的独特之处。 然而,这个奇怪的随机集合很重要,因为它对于获取缓存是必不可少的[s]。

希望这可以帮助! (HTH)

我使用的是SMplayer YouTube。 它配备了您在ubuntu软件中心安装的Smplayer。 它会录制YouTubevideo。 非常简单易用。

我使用minitube ,一个在/tmp上存储闪存文件的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似乎过于频繁地改变了位置。 此外,缓冲区的名称与video不同,因此从堆中找出相应的缓冲区也很困难。 因此,保存缓存文件不是一致的解决方案。 如果安装桌面程序没问题,ClipGrab就是最好的工具。 您可以

  1. 搜索video。
  2. 选择要下载的YouTubevideo质量。
  3. 选择要下载的video格式。
  4. 您只需提供YouTubevideourl即可下载该文件。

ClipGrab在Ubuntu下载youtubevideo 。

您还可以将keepvid.com用于许多video流网站。 它确实需要java在你的机器上。 安装完成后,只需粘贴url链接并将其保存为各种格式,包括mp4或WebM

最简单的方法是使用firefox的“CacheViewer Continued 0.8”插件

安装后按ctrl + shift + c打开然后按show all,在那之后你可以搜索特定的缓存,比如jpeg,flv什么……左键单击​​该项将给你保存的选项,保存通过为flashvideo提供所需的扩展名,如.flv,为jpeg提供.jpeg,反之亦然 在此处输入图像描述

插件的链接https://addons.mozilla.org/en-US/firefox/addon/cacheviewer-continued/?src=api

多数民众赞成仍有可能

您可以使用此post中的shell脚本, 了解如何使用VLC打开/播放所有Flashvideo 。

要通过cp复制脚本vlc的最后一行中必须替换的所有video,并在同一行的末尾提供目标目录。

希望这能帮到你http://sahanlm.blogspot.com/2012/05/how-to-copy-google-chrome-cache-flash.html