跳至主要内容

优雅地备份微信图片和视频

介绍

本文针对 Android 平台的微信应用。
一般来说,手机闪存的路径为 storage/emulated/0/,微信文件夹位于闪存的 Tencent/MicroMsg/ 目录下。
Tencent/MicroMsg/ 目录下,有一个由字母和数字组成的长度为 32 字节的文件夹,消息里的图片和视频都会保存到这个文件夹中;
当你在微信聊天中长按图片或视频点击「保存」时,这些图片或视频又会被保存到 Tencent/MicroMsg/ 目录下的 WeiXin 文件夹中。
Tencent
├─MicroMsg
│    ├─由32个字母和数字组成的目录
│    │    ├─image2  <-- 消息中的图片保存位置
│    │    │      ...
│    │    │
│    │    ├─video   <-- 消息中的视频保存位置,包括自己录制的小视频
│    │    │      191538241116e34a53c87982.jpg  <-- 对应小视频的缩略图
│    │    │      191538241116e34a53c87982.mp4
│    │    │      202131031216e34a53c197510.jpg <-- 对应小视频的缩略图
│    │    │      202131031216e34a53c197510.mp4
│    │    │      ...
│    │    └─...
│    ├─WeiXin
│    │    │  1482227010527.mp4          <-- 手动保存的小视频
│    │    │  mmexport1482227010527.jpg  <-- 手动保存的图片
│    │    │  ...
│    │    │
│    │    └─...
│    └─...
└─...
对于想备份的视频和图片,文件名看似杂乱无章,也不好区分个时间。如果像 Dropbox 备份的规则一样,把文件名改为 2016-12-21 12:30:55.jpg 这样多好啊!

接下来,重命名

其实 WeiXinvideo 两个文件夹下的文件命名是有规则的。
  1. 重命名 WeiXin 文件夹下的文件
    WeiXin 文件夹下的视频文件其实是由 Unix 时间戳来命名的,1482227010527 转换为可读时间为 2016/12/20 17:43:30。图片文件无非就是在这个时间戳上又加了个 mmexport 前缀。
    但是,这个时间戳是你保存那一刻的时间,不是你收到这个图片或视频那一刻的时间。好吧,如果不在意这个时间的话,那就写个 Python 脚本 重命名吧。
  2. 重命名 video 文件夹下的文件
    video 文件夹下图片和视频是成对存在的,同名的图片是视频的缩略图。如果发现只有一个图片而没有对应的视频,那是因为你在微信聊天中长按删除了视频。
    这些视频和缩略图的命名也是有规则的,以 191538241116e34a53c87982.mp4 为例。
    19 15 38 24 11 16 e34a53c87982.mp4
    %H %M %S %d %m %y
    翻译过来就是:
    2016-11-24 19.15.38
    这个时间是你收到小视频那一刻的时间
    
    因为 video 中包含了微信聊天中收到的所有小视频,所以 WeiXin 文件夹下的视频是它的一个子集。而且!这里的小视频时间戳可以认为就是录制时的时间。 对于强迫症的我们,这是多么值得激动的事情!赶紧写个 Python 脚本 重命名吧!

以后备份,就可以只用备份微信 video 下的视频和 WeiXin 下的图片了。

评论

此博客中的热门博文

VMware Workstation 10安装Mac OS X Mountain Lion 10.8.5

关于原版OS X Mountain Lion 10.8.5 Mac OS X Mountain Lion 10.8.5作为Mountain Lion的最后一个稳定版本值得我们收藏。可能大家有所不知,10.8.5版本是分为两个Build的,一个是在2013年9月13日发布的 10.8.5 Build 12F37 ,另一个是2013年10月3日发布的 10.8.5 Build 12F45 。也就是说, 10.8.5 Build 12F45 才是Mountain Lion的最终版本。 OS X Mountain Lion的维基百科 不幸的是,网友们和论坛中分享的 OS X Mountain Lion 10.8.5 正式版 原版完整DMG安装镜像 大多数是Build 12F37版本(从发帖日期就可以看出来),网上搜索到的种子文件也是Build 12F37的种子。要想下载原版Build 12F45,可以搜索 OSX1085-12F45-ESD.dmg ,或者从这里下载: http://pan.baidu.com/s/1f68Vv 怎么知道下载了哪个版本? 通过文件的MD5等校验值来辨别。使用软件: Hash 或者 HashTab 。 OS X Mountain Lion 10.8.5 Build 12F37.dmg 信息如下: 大小: 4469250353 字节 MD5: 5568B4DDE00A64F765EF00858B538078 SHA1: ECF68C2119C71825839D2A58E0D619E9CCF7C026 CRC32: F4DFCE4D 从中提取出的InstallESD.dmg: MD5: 2C77151BE45C820B02A9ACE05434693D SHA1: 2919B519142E2119197BFFD678F15F603E84970F CRC32: A9DCAE18 OSX1085-12F45-ESD.dmg 信息如下: 大小: 4448808132 字节 MD5: 3FCEBFC81D00767D1ACEF1CB166F88CC SHA1: 98E52D0FC443940265780539A311833EE5814DDD CRC32: C82F14C1 从中提取出的InstallESD.dmg: 大小: 443...

为Github的Hexo博客启用SSL/TLS

CloudFlare的免费套餐提供了SSL,可以用它为我们独立域名的博客启用HTTPS。本文以 http://g2ex.me 为例。 主要步骤 注册CloudFlare,添加个人网站,获取CLoudFlare提供的 Nameservers ; 修改自己的域名提供商,把 站点的Nameservers 修改为 CloudFlare提供的Nameservers ; 等待CloudFlare添加的网站为激活状态,使用 https 打开个人网站; 修改网站模版,使 http 跳转到 https 。 详细步骤 一、注册CloudFlare 首先注册CloudFlare,注册后按照提示 Add Websites ,输入域名后点击 Begin Scan : 到达最后一步,会提示把自己网站的域名 Name Server 更换为: charles.ns.cloudflare.com ivy.ns.cloudflare.com 二、修改域名提供商的Nameservers 本站使用了Godaddy域名提供商,登录Godaddy,在域名的 SETTINGS 中,点击 Nameservers 下的 Manage : 勾选 Custom 并点击 ADD NAMESERVER ,添加上边CloudFlare给的两个Name Servers。 三、等待CloudFlare确认 稍等片刻(几分钟到十几分钟),在CloudFlare中点击 Recheck Nameservers ,可以看到网站已经处于激活状态了。 之后,便可以用 https://g2ex.me 访问站点了。 四、强制跳转 至此,必须手动输入 https 前缀才能访问加密的站点,要想在任何情况下都以加密方式访问网站,可以在网站模版的头中加入 http 到 https 的强制跳转。 以当前Hexo的 NexT主题 为例,打开 layout 目录下的 _layout.swig ,在 <head> 标签中加入以下代码,注意把 yoursite.com 替换为你的域名,这里为 g2ex.me 。 < script type = "text/javascri...

Android 电视折腾记

要从 BBC 放出的几段《 Planet Earth II 》说起,突发奇想地打算在小米电视上看 YouTube 视频,电视的系统基于 Android 5.1,最终通过 Kodi + Youtube 插件成功实现目的。 0x00 介绍 Kodi 原名 XBMC,是一个开源跨平台的多媒体播放平台,支持视频、音乐、图片、直播、本地和在线媒体、网络服务等等。Kodi 最让人称奇的是它众多的插件,通过对应的插件,网络上的各种资源就可以完美地在 Kodi 中播放。 不过,在国内,要想观看 YouTube,还要考虑的一个问题是让电视自动翻墙。 这里以小米电视为例,当然也可以是其他 Android 电视,也可以是各种盒子。 0x01 让电视科学上网 有以下选择(前提是你有一台海外 VPS,搭建了 Shadowsocks 服务端,或者是配置了 VPN): 家用路由器翻墙。目前用的是小米路由器,需要刷开发版 ROM 获取 root 权限,才能安装 Shadowsocks 客户端实现自动翻墙,比较麻烦;现在小米 WiFi App 可以设置 智能 VPN ,支持 选择地址限流 和 选择设备限流 ,如果选择电视限流的话,电视相当于是全局 VPN 了。 不想折腾路由器的,可以用一台局域网电脑作为家庭代理,安装上 Shadowsocks 和 Privoxy(支持局域网的 SOCKS/http/https 代理)。按照这种思路最好弄个树莓派做家庭代理。 电视上安装翻墙 App,可选 Shadowsocks 和 Postern。 这里选择在电视安装 Postern App 。最主要原因是 Postern 的自动翻墙配置利用了 GEOIP 库可以精准地实现「国内流量直连,国外流量走代理」。Shadowsocks 设置里因为用 8.8.8.8 DNS(或其他) 去解析域名,国内的某些提供了海外加速的服务就会被解析到国外 IP 上,反而更慢了。另外,Postern 还能在配置里过滤广告。 具体的过程: 下载 Postern App https://github.com/postern-overwal/postern-stuff 下载自动翻墙配置文件 https://github.com/postern-overwal/postern-stuff/b...