自动保存微信的小视频

需求:

朋友经常会在微信上分享小视频, 我突发奇想,能不能通过编写程序的方式自动保存用户发送的视频/图片/语音, 保存一份到七牛云存储上面

有了这个想法之后, 我就开始马不停蹄的探索了。 花了周六,周天两天的时间,废寝忘食的研究。 连续两天在电脑前学习到凌晨, 把黑眼圈也熬出来了。 


实现:

[思路一]

研究七牛云存储的上传文件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软件, 选择微信管理, 打开对应的聊天窗口, 然后选中对应的小视频, 然后就可以导出到本地目录了。 

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