AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 37267
Accepted
avi
avi
Asked: 2011-04-28 01:08:48 +0800 CST2011-04-28 01:08:48 +0800 CST 2011-04-28 01:08:48 +0800 CST

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

  • 772

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

firefox
  • 21 21 个回答
  • 113628 Views

21 个回答

  • Voted
  1. user4124
    2011-09-17T01:35:54+08:002011-09-17T01:35:54+08:00

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

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

    1. 访问 YouTube 视频并等待其完全下载。
    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. 从上面的行我们注意到 number 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 视频!

    • 28
  2. Best Answer
    Woozy
    2011-04-28T09:30:31+08:002011-04-28T09:30:31+08:00

    Flash 插件的更新将位置从/tmpFirefox 缓存目录(例如~/.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
    
    • 26
  3. squallbayu
    2011-05-31T11:26:58+08:002011-05-31T11:26:58+08:00

    如果您导航到您的 /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/

    • 7
  4. dumb906
    2011-09-14T04:09:21+08:002011-09-14T04:09:21+08:00

    这个小脚本会将您下载的 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

    • 5
  5. LassePoulsen
    2011-04-28T01:58:52+08:002011-04-28T01:58:52+08:00

    据我所知,这不是由于 Firefox 也不是 natty,而是 Flash 更新...

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

    但请记住,这可能不合法,因此请查看您当地的立法...

    • 4
  6. RolandiXor
    2011-09-14T07:25:45+08:002011-09-14T07:25:45+08:00

    您应该使用flashgot下载视频。

    • 3
  7. Sepero
    2012-04-15T03:31:30+08:002012-04-15T03:31:30+08:00

    Ubuntu 12.04 (Precise) - Firefox 11 Instructions 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 编程风格的循环;)

    • 3
  8. janos
    2011-08-28T01:21:25+08:002011-08-28T01:21:25+08:00

    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
    

    否则文件描述符不是很方便(记住,它是一个被删除的文件!)

    无论您的浏览器如何,该方法都应该有效。

    • 2
  9. jayfro
    2011-07-23T15:41:23+08:002011-07-23T15:41:23+08:00

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

    除非我真的很困惑(不要这么想),否则“ewzggcll”不会出现在您的机器中。您会发现随机的字母(可能还有数字?)集合,这很可能是您的 Linux 和 Firefox 安装所独有的。尽管如此,这个看起来很奇怪的随机集合很重要,因为它对于获取缓存至关重要。

    希望这可以帮助!(HTH)

    • 1
  10. Cas
    2011-06-17T05:25:07+08:002011-06-17T05:25:07+08:00

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

    • 1

相关问题

  • Flash 在 Firefox 中无法正常工作。不会响应某些点击[关闭]

  • Firefox 鼠标中键滚动

  • 如何解决 Firefox 中的字体问题?

  • 使用突触或通过 Firefox 的插件菜单安装 adblock?

  • Firefox 的 Ubuntu Firefox 修改扩展有什么作用?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    我需要什么命令来解压缩/提取 .tar.gz 文件?

    • 8 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Martin Hope
    EmmyS 我需要什么命令来解压缩/提取 .tar.gz 文件? 2011-02-09 14:50:41 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve