我正在考慮是否可以編寫Android應用程序,該應用程序允許用戶從網站下載Flash視頻,而無需用戶在瀏覽器中手動開始播放每個視頻。該應用程序應該也適用於任何網站播放Flash視頻,而不僅僅是一些特定的網站。該應用程序不應該需要root。無法在Android上下載FLV文件?
在做了我的功課和google搜尋之後,我得出了這樣一個結論:這樣的應用程序是不可能的,但我只是想讓更多有經驗的人來證實這一點(或者如果我錯了,也許會提出解決方法)。
如何這樣的應用程序可以(理論上,理想情況下)工作:
的應用程序啓動運行在後臺線程,甚至不需要打開活動相關的服務。
服務加載的網頁(HTML文件),其中視頻
應用解析頁面,找到.swf文件通常播放視頻
應用程序以某種方式發送假的點擊swf文件中的動作腳本,就好像用戶按下了「Play」一樣。
在一段時間後,應用程序檢查webview的緩存(但沒有顯示給用戶的活動)。如果有任何的FLV文件的緩存,它複製它們,比方說,到某個文件夾SD卡
上。在此方案多件事情可能會失敗:
在3:我不是當然,我們可以模仿swf文件的Play按鈕點擊,特別是如果我們不知道我們在哪個網站上(我們希望應用程序可以在任何網站上運行),並且網站使用他們自己的自定義編寫的swf flash播放器。另外我不確定.swf文件甚至會處於可以接收輸入的狀態,如果我們甚至沒有運行活動
in 4:web緩存存儲在/ data/data/app_package_name /緩存/ webViewCacheChromium和該文件夾即使對於應用程序本身(?)也是不可訪問的,除非電話是植根的。
我想就是這樣,所以它不應該是可以做出這樣的應用程序。
順便說一下,谷歌瀏覽器的FVD擴展是否通過掃描Chrome瀏覽器緩存來獲取FLV文件?
謝謝!
編輯:我知道Youtube現在使用html5,我不想下載Youtube視頻。
編輯:我見過與特定網站(例如Youtube)合作的應用程序,但製作此類應用程序並不可行,因爲網站會改變他們提供flv文件作爲基本防禦的方式。我的問題是關於開始假回放和獲取已經在緩存中的視頻文件。
謝謝!要點1-3似乎很容易,難的部分來自反編譯swf。由於每個swf都可以以不同的方式工作,所以我仍然無法爲所有網站編寫通用解決方案。相反,我必須先從每個網站(例如youtube,4shared,5min ..)反編譯swf,然後查看它是如何工作的並實現特定於網站的方式來獲取flv。這是一個解決方案,但代價很大。這樣的應用程序將很難支持。一旦我的目標網站之一更改了他們的swf文件,我已經看到1星評論與「不工作」評論堆積如山。 – iseeall
@iseeall。我必須說我不擅長這類應用程序。但是由於我使用的應用程序可以從很多網站獲取下載鏈接,我總是想知道他們是如何做到的。這就是我得到的。我相信這很難。在獲取鏈接之前,我認爲讓swf反編譯庫在Android上工作並不是直接的。如果是這樣,你可能不得不想出一些可以從這些代碼中獲取鏈接的算法(也許是一些AI)。我只能假設這將是多麼乏味。如果有的話,我希望有人來一個更簡單的方法。 –
:)無論如何,我給你的回覆獎金金額。是的,它似乎是在網站上使用Flash視頻而不是通常的視頻文件的目的 - 使下載變得非常困難。我可能只專注於幾個Flash網站,看看他們如何獲取他們的FLV的 – iseeall