【问题标题】:Impossible to download FLV files on Android?无法在 Android 上下载 FLV 文件?
【发布时间】:2013-09-05 16:38:57
【问题描述】:

我正在考虑是否可以为 Android 编写一个应用程序,该应用程序允许用户从网站下载 Flash 视频,而无需让用户在浏览器中手动开始播放每个视频。该应用程序还应该适用于任何播放 Flash 视频的网站,而不仅仅是某些特定网站。该应用程序不需要root。

在做完功课和谷歌搜索后,我得出的结论是这样的应用程序是不可能的,但我只是希望更有经验的人确认这一点(或者如果我错了,可能会建议解决方法)。

这样的应用程序如何(理论上,理想地)工作:

  1. 应用程序启动一个在后台线程中运行的服务,甚至不需要打开的活动。

  2. 服务加载视频所在的网页(html文件)

  3. 应用解析页面以找到正常播放视频的 .swf 文件

  4. 应用以某种方式向 swf 文件中的操作脚本发送虚假点击,就好像用户按下“播放”一样

  5. 过了一会儿,应用程序检查了 webview 的缓存(但是,没有向用户显示任何活动)。如果缓存中有任何 .flv 文件,它会将它们复制到 SD 卡上的某个文件夹中

在这个方案中,很多事情可能会失败:

在 3 中:我不确定是否可以模拟单击 swf 文件的“播放”按钮,特别是如果我们不知道我们所在的确切网站(我们希望该应用程序可以在任何网站上运行)和网站使用他们自己的、自定义编写的 swf flash 播放器。此外,如果我们甚至没有正在运行的活动,我也不确定 .swf 文件是否会处于可以接收输入的状态

在 4 中:Web 缓存存储在 /data/data/app_package_name/cache/webViewCacheChromium 下,即使应用程序本身 (?) 也无法访问此文件夹,除非手机已植根。

我想就是这样,所以应该不可能做出这样的应用程序。

顺便说一句,谷歌浏览器的 FVD 扩展是否通过扫描 Chrome 浏览器缓存来获取 FLV 文件?

谢谢!

编辑:我知道 Youtube 现在使用 html5,我不想下载 Youtube 视频。

编辑:我见过一些适用于特定网站(例如 Youtube)的应用程序,但制作这样的应用程序是不可行的,因为网站改变了他们提供 flv 文件作为基本防御的方式。我的问题是关于开始假播放并获取已经在缓存中的视频文件。

【问题讨论】:

    标签: android flash video download flv


    【解决方案1】:

    我认为这是可能的:

    1:“网站”从何而来?当用户打开他的浏览器并输入网站时,你会捕捉到吗?如果是这样,这是不可能的。

    我想你会从某个地方得到“网站”。


    2 您不需要模拟播放按钮:您只需要 .flv 文件。使用任何可用的工具从网站上抓取 .swf 文件非常容易。 You can try jsoup


    3 有时,swf 以通常的参数方法获取此文件。比如<embed bla bla link="http://website/file">你只需要抓取这个文件就可以了。


    4 现在,如果该文件的链接不可用,您将不得不反编译该 swf 文件。这是具有挑战性的部分。 Check some of the available tools here。通过努力,你可能会得到结果。我这么说是因为已经有很多工具可以做你想做的事。以Keepvid is in java 为例。

    【讨论】:

    • 谢谢!第 1-3 点似乎很简单,难的是反编译 swf。由于每个 swf 可以以不同的方式工作,我仍然无法为所有网站编写通用解决方案。相反,我必须首先手动从每个网站(例如 youtube、4shared、5min ..)反编译一个 swf,看看它是如何工作的,并实施一种特定于网站的方式来获取 flv。这是一种解决方案,但代价高昂。这样的应用程序将很难支持。一旦我的目标网站之一更改其 swf 文件,我就已经看到 1 星评论与“不起作用”的 cmets 堆积如山。
    • @iseeall。我必须说我不是这类应用程序的专家。但由于我使用从许多网站获取下载链接的应用程序,我一直想知道他们是如何做到的。这就是我得到的。我确信这非常困难。在获取链接之前,我认为让 swf 反编译库在 Android 上运行并不容易。如果是这样,您可能必须想出一些可以从这些代码中获取链接的算法(可能是一些 AI)。我只能假设这将是多么乏味。如果有的话,我希望有人能提供一种更简单的方法。
    • :) 无论如何,谢谢,我为您的回复提供了赏金。是的,这似乎是在网站上放置 Flash 视频而不是通常的视频文件的目的 - 使下载变得非常困难。我可能会专注于几个 Flash 网站,看看他们如何获取他们的 FLV
    • 碰巧我只是在检查vimeo!我必须说这很难。我设法反编译。我正在尝试获取流 url,这几乎是不可能的
    • 还检查了一些网站,它只是确认为它们制作“下载器”应用程序在经济上是不可行的(我的意思是,考虑到一个人可以获得的潜在收入以及一个人必须不断的麻烦来保持配合他们不断变化的防御)。
    猜你喜欢
    • 1970-01-01
    • 2014-07-20
    • 2014-08-13
    • 2017-01-24
    • 1970-01-01
    • 2022-10-18
    • 2014-09-09
    • 2019-05-07
    • 1970-01-01
    相关资源
    最近更新 更多