跳至主要内容

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

介绍

本文针对 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 下的图片了。

评论

此博客中的热门博文

网盘端到端加密 Cryptomator

1. Crytomator 是什么 Cryptomator 是一款开源的文件加密工具,它支持在本地硬盘上创建多个加密仓库,这些加密仓库以文件卷(硬盘卷)的形式挂载到系统目录中,存放到文件卷中的文件都会自动加密。 如果把加密仓库的目录放到网盘的同步目录下,配合如 iCloud、Dropbox、OneDrive、坚果云 等云盘使用,就能达到端到端加密同步的效果。 2. 同类工具对比 同类的文件加密工具除 Cryptomator 之外,还有 gocryptfs、encfs 等。其中 Cryptomator 使用 Java 开发,而且提供了 macOS、Windows、Linux、iOS 和 Android 上个 GUI 版本,从易用性上来说体验最佳。 gocryptfs v1.7 encfs v1.9.5 ecryptfs v4.19.0 cryptomator v1.4.6 securefs v0.8.3 CryFS v0.10.0 First release 2015 ( ref ) 2003 ( ref ) 2006 ( ref ) 2014 ( ref ) 2015 ( ref ) 2015 ( ref ) Language Go C++ C Java C++ C++ License MIT ( ref ) LGPLv3 / GPLv3 ( ref ) GPLv2 GPLv3 ( ref ) MIT ( ref ) LGPLv3 ( ref ) Development hotspot Austria USA USA (RedHat) Germany China Germany Lifecycle Active Maintenance Active ( ref ) Active Active Active File interface FUSE FUSE In-kernel filesystem FUSE/WebDAV FUSE FUSE Platforms Linux, macOS, 3rd-party Windows port,3rd-party Android port Linux, macOS, 3rd-par...

如何拥有一个漂亮的故事线

一、背景介绍 最初发现 TimelineJS 是在 2014 年。为了制造一个惊喜,用它做了一个与爱人从相识到结婚的时间线。 转眼 2020,TimelineJS 也有了第三个版本。 对于平时有记录习惯的人来说,拥有一个关于自己的易读美观的故事线是一件非常有成就感的事,我自己便属于这类人。另一方面,TimelineJS 仍然非常小众,而且国内几乎没有对它的介绍和使用说明。本文的目的是便是能够把它的使用方法描述清晰。 TimelineJS 能做什么 官网: https://timeline.knightlab.com/ TimelineJS 是 Northwestern University Knight Lab 社区的一个产品,它可以用来制作时间线(时间轴)的故事,元素支持文本、图片、音乐、视频、地图。官网罗列出的类型包括: Twitter, Flickr, YouTube, Vimeo, Vine, Dailymotion, Google Maps, Wikipedia, SoundCloud, Document Cloud and more! 在官网上能看到几个示例,比如对美国歌手惠特妮·休斯顿的生平介绍: https://timeline.knightlab.com/examples/houston/index.html 本文适用的读者 TimelineJS 虽然适用简单,但如果你能够: 懂点前端知识; 懂点网站托管知识; 最好熟悉 JSON 语法; 最好能科学上网(不会也没关系,一样可以本地使用); 那么,TimelineJS 对你来说毫无门槛。 二、几种使用方法 要想使用 TimelineJS 制作故事线,需要从以下两个方面考虑: 故事线的数据存放到哪里 故事线的网页运行在哪里 幸运的是,这两个方面官方都考虑到了,使用 Google docs 来存放故事线的数据,Knight Lab 提供页面托管。只要按照这里的 4 个步骤 https://timeline.knightlab.com/#make 就能生成 Knight Lab 给你的一个链接。对于想尝试一下的人来说,这样就足够了,简单么! 但是,它实际上是支持以下三种组合使用的: Knight Lab + ...

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...