自動保存微信的小視頻

需求:

朋友經常會在微信上分享小視頻, 我突發奇想,能不能通過編寫程序的方式自動保存用戶發送的視頻/圖片/語音, 保存一份到七牛雲存儲上面

有了這個想法之後, 我就開始馬不停蹄的探索了。 花了週六,周天兩天的時間,廢寢忘食的研究。 連續兩天在電腦前學習到凌晨, 把黑眼圈也熬出來了。 


實現:

[思路一]

研究七牛雲存儲的上傳文件api

打開微信網頁版, 把文件轉發到File Transfer的聊天窗口

這是可以在瀏覽器端看到對應的視頻或圖片

研究post請求的url的規律, 採用程序自動下載對應的視頻和圖片

偵聽網頁請求, 只要發現往File Transfer 發送圖片, 則自動保存到七牛雲存儲

遇到的問題:

1. 在windows上安裝pypcap太坑爹!!
使用的pypcap的版本爲1.1.4, 遇到pcap.h not found的問題,pip在線安裝不行, 安照網上建議下載wincap dev版本, 安裝pip 安裝 pypcap指定外部庫的(pip install /path/to/pycap_src_dir/pypcap-1.1.4.tar.gz --global-option=build_ext --global-option="-LD:\Project\weixin\requirements\WpdPack_4_1_2\WpdPack\Lib" --global-option="-ID:\Project\weixin\requirements\WpdPack_4_1_2\WpdPack\Include")還是裝不上,最後放棄

2. 因爲微信使用了https, 是加密的網絡請求, wireshark 無法解密。 也就是說即使我安裝上了pcap,也無法正常解包。 

3.  考慮使用filddler來偵聽微信網頁版, 發現一旦使用fiddler代理, 微信網頁版就連不上 , 其它https的網站走fiddler代理沒有問題。 

另外想開發fiddler插件, 只能使用c#, vb, c++ 學習成本太高。 


4. 偵聽http的請求,考慮過使用mitmproxy,這是python寫的http截獲工具, 這個方案也有問題, 就是沒有解決ssl證書的問題。結果也截獲不了https的網頁的請求,使用過程中有問題,暫時沒有找到解決方案。  


關於偵聽https請求:

前面提到了pypcap, wireshark, mitmproxy, fiddler,效果都不太好。 後面又找到了一種新的偵聽https的請求的方法。 

從chrome 自帶的network工具下手, 實現半自動化   ,或者開發chrome插件, 調用chrome.devtools.network這個api,這個方法有待研究和實踐。



思路二:

微信的PC客戶端可以在本地看到保存的多媒體資源
比如視頻的話,放在D:\Users\<your_pc_username>\Documents\WeChat Files\<your_wechat_user_name>\Video 目錄下

而且下載的視頻是完整的, 不會像網頁版的那樣, 下載的時候,拿到的是0字節的視頻

因此有了新的思路來自動保存視頻資源到網盤。 

安裝微信PC版

監控微信的安裝目錄, 只要發現有新的文件產生,就自動發送到七牛雲上


總結:

雖然最後我沒有實現我最初要實現的效果。 不過,在探索的過程中,也學到了很多新的知識,也是很有收穫的。 

如果後面有新的思路, 我會接下去繼續我的開發。 本文也是作爲自己的一次探索的記錄, 方便以後查閱, 同時也是希望拋磚引玉,能夠得到大神的指導,不甚感激。 


-----2015/12/30-----
關於微信的小視頻導出還有另外一種方法,適用於iphone(越獄/未越獄皆可)
安裝itools軟件和itune軟件, 將手機連接電腦, 打開itools軟件, 選擇微信管理, 打開對應的聊天窗口, 然後選中對應的小視頻, 然後就可以導出到本地目錄了。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章