在 Maverick 中,有一个选项可以从 YouTube、Vimeo 等网站下载 Flash 视频,方法是在关闭窗口之前将目录flashxx**
中的文件复制/tmp
到另一个位置。但在 Natty 中的 Firefox 4 中,这个选项不再起作用。为什么?
答案1
您可以使用多个 Firefox 插件从许多网站(例如 Youtube)提取 FLV 文件。
下面我将展示如何使用最新版本的 Flash 插件手动执行此操作。
- 访问 YouTube 视频并等待其完全下载。
然后,从命令行运行命令
$ 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 视频!
答案2
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
答案3
如果您导航到 /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/
答案4
据我所知,这不是由于 Firefox 或 Natty 造成的,而是由于 Flash 更新……
您可以捕获 http 流wireshark
或者使用类似的工具youtube-dl
来获取电影文件。
但请记住,这可能不合法,因此请检查当地的立法......