Code Monkey home page Code Monkey logo

wechatexporter's Introduction

微信PC版获更新:聊天记录迁移功能终于来了

微信在 Windows PC 版的 3.7.6 内测版、macOS 版的3.5.5 Beta版中,上线了聊天记录迁移这一“史诗级更新”。在此次更新后,用户能够将微信Mac端的聊天记录迁移至手机端,或是将微信手机端的聊天记录迁移到Mac端,迁移完成后可以在手机或 Mac 的微信上浏览合并后的聊天记录。除了用于同步信息,该功能也能够将手机端的聊天记录备份至 PC 端,从而缩减微信体积。

WechatExporter

最新版本下载:

Windows x64版本
MacOS x64版本


BUG!!! 1.8.0.7以前的版本异步加载方式存在一个比较严重的小白bug:当设置为滚动到页面底部异步加载时,越靠后面的页码,加载的消息数量越少;设置为页面打开全部消息异步加载时,消息只能加载到一半。如果iTunes备份还存在,请使用版本1.8.0.8重新导出一遍。如果过往的备份已经清除了,可以下载补丁程序[Win64版本] (https://github.com/BlueMatthew/WechatExporter/releases/download/v1.8.0.8/patch_x64_win.zip)/[MacOS 64版本](https://github.com/BlueMatthew/WechatExporter/releases/download/v1.8.0.8/patch_x64_macos.zip)并解压,把wxexpatch.exe/wxexppatch拷贝到导出目录,并执行,来修复已经导出的页面(补丁修复的文件清单可查看日志文件 patch.log)。

本程序参考 https://github.com/stomakun/WechatExport-iOS 修改成C++来实现,便于在各个平台以更少依赖运行。同时增加了聊天群名称的解析支持和更多消息类型的导出支持。导出支持Text、HTML、PDF三种格式。
  • 导出的聊天记录页面可以设置为打开时一次性加载完成(默认方式)、打开时异步加载、页面滑动到底部时加载更多三种方式,可以在菜单“选项”中修改加载方式。

  • 可以在导出的页面增加过滤功能,功能也需要在菜单“选项”中设置。

  • PDF格式,实质是导出打开时一次性加载完成的HTML页面,然后通过Google Chrome或者Microsoft Edge浏览器的功能转成PDF文件,转PDF文件耗时较长,请不要关闭自动弹出的命令行窗口。

  • 增量导出:菜单“选项”中,如果设置了增量导出,则会仅仅导出上一次导出的最后一条消息之后的部分,通过此功能,再一次备份之后,微信中的聊天记录可以删除,下一次导出,可以把同一个聊天群的消息合并在一起。

操作步骤:

  1. 通过iTunes将手机备份到电脑上(备份时不要选择设置口令),Windows操作系统一般位于目录:C:\用户[用户名]\AppData\Roaming\Apple Computer\MobileSync\Backup\。Android手机可以找一个iPad/iPhone设备,把聊天记录迁移到iPad/iPhone设备上,然后通过iTunes备份到电脑上。 iTunesBackup-960

  2. 下载执行文件(最新版本下载链接见上)。

  3. 执行解压出来的WechatExport.exe/WechatExporter.app (Windows下如果运行报缺少必须的dll文件,请安装Visual C++ 2017 redist后再尝试运行)

  4. 按界面提示进行操作。
    Windows界面截屏 MacOS界面截屏

  5. 导出后的页面示例:
    导出后的页面示例截屏

点击链接可打开网页:https://src.wakin.org/github/wxexp/demo/

模版修改

解压目录下的res\templates(MacOS版本位于Contents\Resources\res)子目录里存放了输出聊天记录的html页面模版,其中通过两个%包含起来的字符串,譬如,%%NAME%%,不要修改之外,其它页面内容和格式都可以自行调整。

特别感谢Chao.M帮忙优化当前的模版。

系统依赖:

Windows版本:Windows 7+(XP不支持), Visual C++ 2017 redist at The latest supported Visual C++ downloads
MacOS版本:MacOS 10.10(Yosemite)+

程序编译

程序依赖如下第三方库:

MacOS下,libxml2,libcurl,libsqlite3直接使用了Xcode自带的库,其它第三方库需自行编译。
libmp3lame需手动删除文件include/libmp3lame.sym中的行:lame_init_old

Windows环境下,silk自带Visual Studio工程文件,可以直接利用Visual Studio编译,其余除了libplist之外,都通过vcpkg可以编译。libplist在vcpkg中也存在,但是在编译x64-windows-static target的时候报了错,于是直接通过Visual Studio建了工程进行编译。

已测试iTunes和微信版本
iTunes 12.3.3.17 + 微信6.5.9
iTunes 12.5.1.21 + 微信6.3.30
iTunes 12.10.10.2 + 微信7.0.2
iTunes 12.10.9.3 + 微信 7.0.15
iTunes 12.9.5.5 + 微信 7.0.2
Windows 10 + iTunes 12.11.0.26(Microsoft Store) + 微信 7.0.2
Windows 10 + iTunes 12.11.0.26(Microsoft Store) + 微信 8.0.1
Mac Catalina (Embedded iTunes) + 微信 8.0.1/8.0.2
Windows 7 + iTunes 12.10.9.3 + 微信版本 8.0.2
Windows 10 + iTunes 12.11.3.17 + 微信 8.0.7
Windows 7 + iTunes 12.10.9.3/Mac Catalina (Embedded iTunes) + 微信 7.0.2 + iOS 9.3.5
Windows + iTunes 12.10.3.1+ 微信 7.0.10 + iOS 13.3 (@lazybug163)
MacOS 11.6(Embedded iTunes)+ iOS Version: 15.0 + 微信 8.0.9
MacOS 11.6(Embedded iTunes)+ iOS Version: 15.4 + 微信 8.0.18

wechatexporter's People

Contributors

bluematthew avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wechatexporter's Issues

提示“解析itunes backup"失败

Windows10 21H1下,用itunes 12.11.3.17从ipad导出备份,但是选择备份目录的时候提示“解析itunes backup"失败,请问是什么原因呢?
捕获

windows下如何debug源码

请问windows下如何debug源码,使用vs2019打开工程文件有问题.
通过打开vsproject目录下的sln文件,发现编译不通过,很多Include文件找不到
can't open include file "atlres.h"

多个Bug及优化反馈

我安装的是Microsoft store版本iTunes,因此提示“iTunes 未安装”,这应该不是问题所在;由于系统盘容量不足以备份,我使用软链接实现了跨盘备份。
mklink /j C:\Users\*****\Apple\MobileSync\Backup D:\Backup
备份文件未加密、无异常,因为其可以WechatExport-iOS读取,但无法被WechatExporter读取。
下列是备份文件的(实际)位置,以及我已经尝试但均提示“解析 iTunes Backup失败”的路径。

  • D:\Backup\0*******-***************E\Info.plist

  • D:\Backup\0*******-***************E\
  • D:\Backup\
  • C:\Users\*****\Apple\MobileSync\
  • C:\Users\*****\Apple\MobileSync\Backup
  • C:\Users\*****\Apple\MobileSync\Backup\0*******-***************E\

请问如何获得解密后的原始数据文件

您好,我从安卓的一些教程中看到,可以把db文件通过sqlcipher解密后查询。但是我在该项目中没有找到“解密后的数据文件”,似乎程序直接将其转换成了html文件。

我的需求是要查看之前的一些视频号和小程序分享链接,但是我发现现在解析出来的链接都不能用了,所以我想直接去检查原始的数据,当然作者大大要是有时间修分享链接的问题,那更好了,万分感谢!

没有增量导出选项

【选项】中没有找到【增量导出】选项,请教大佬是什么原因
系统:win10
版本:1.8.0.10

如何直接读取sqlite数据库

你好,非常感谢开源这个很有用的project,
我想对聊天记录做一些统计和处理,但是现在只能通过导出text然后再自己写入数据库的方式来进行,免不了有一些格式的问题。
(现在导出txt文件,不是完全的一行一条纪录,偶尔出现下一条纪录和这一条连在一起的情况)

所以有没有可能能给出一个直接导出sqlite数据库的选项?
谢谢~

HTTP Status: 400和failed DL

你好,软件很好用,但是log有时会报错,如图:
image

这是短时间内出错的,是网络波动的缘故吗?会导致某些记录的图片不可用吗?

另外能问一下emoji.qpic.cn和vweixinf.tc.qq.com是哪里找到的接口吗,纯属好奇。

html模板

太好用了,感谢大佬,html模板可以弄成像wxbackup那种的吗,小白不会修改= =

如何进行增量备份。这是我见过的最好的备份了。

首先点赞。这个程序虽然繁琐需要连接电脑备份iPhone。但是生成的文件非常好。有语音还有图片。
对于空间小的iPhone用户就是福利。强烈推荐。有空写个博客做个视频推荐一下。

但是如果我删除了我的微信再次下载(这个可以彻底清除数据,减少容量)。过几个月再次备份 是不是就只能新生产一个文件夹。

如果能增加增量备份就好了。

这个系统可以进行 检索。文字检索也好。建议增加这2个功能。或者我不知道在哪?希望有人告知

出现导出一半假死的状况

您好,我使用昨天刚发布的程序进行导出,出现导出一般就假死的情况。

我所使用的平台是Microsoft Windows [Version 10.0.19042.906]。不知道还有什么信息可以提供给您参考诊断这个问题?

image
image

再次谢谢您的付出

感谢作者的mmkv解析实现

我也开了个备份im的,目标是让多种im备份到一个数据库里
新版的mmsetting我找了半天没找着,还好搜到了作者的代码,十分感谢 👍

请问能找到发言的人的微信号吗

十分感谢,这是我见过最简易的导出工具了,我最近在统计群友的发言数量,但是因为群昵称会经常改,所以统计起来会比较麻烦,如果有微信号的话会快些(虽然也能改,但是频率很低)

Failed to parse iTunes Backup file

非常感谢您提供的工具!但是我在试图加载 iTunes Backup 时,程序报错“Failed to parse iTunes Backup file”。

我的平台是 MacOS 11.3,尝试了WechatExporter 1.7.20.3 和 1.7.20.2,但都在报这个相同的错误。我导入的路径是 /Users/yifan/Library/Application\ Support/MobileSync/Backup/00008101-000438810A90001E

希望能支持将Ituns原文件,提取出微信部分的内容,这样原文件就变小了,而且也方便后期再导html

背景:
因为我每隔一段时间,就要备份一次微信聊天记录,但是每次备份的ituns,都太大了,不方便存云盘,其实我们只需要提取保留微信部分的数据上传云盘备份,后续可以继续将以前的备份数据,用最新版软件到html格式

期望:
希望能支持将Ituns原文件,单独提取出微信部分的数据,保存在本地,这样原文件就变小了,而且也方便后期再导html。
另外,要是能够再同时加载几个ituns原文件,合并导出html就更好了

打开HTML后是一片空白

您好,为什么导出的HTML格式文件,打开后是一片空白呢?我也尝试了用PDF导出,依旧是空白的,也尝试了导出不同的微信记录,打开HTML还是空白

[feature] 数据和 前端 html 分离

现在通过 数据+模板 的形式生成的静态 html 巨大无比,打开就卡死。。。

能否参照 http://wxbackup.imxfd.com/ 的实现。(Demo http://wxbackup.imxfd.com/demo/index.html)
导出 JSON 数据和资源

完全前端分离,前端通过读取 JSON 数据的形式客户端渲染。

  • 懒加载、分页加载等形式更好实现。
  • 可以间接提供 JSON 原始数据的导出 更方便别人使用
  • 消息类型 type=10000 里面还可以细分 挪到前端处理更方便 不用每次编译导出端

如果可以的话,我可以提供完全的前端 PR 支持。

// 资源(图片、视频等)建议还是使用源文件名,文件名可能带有部分 “可用” 信息

希望作者出一个针对已经解开iOS备份的版本

当前版本设计是针对iTunes的备份,但是iTunes备份往往是整机的数据,非常大
我之前做过几次用其他工具把iTunes备份解开,只保留备份wechat的目录
所以希望作者出一个针对已经解开iOS备份的版本
个人理解代码上实现应该并不复杂吧,做一个编译开关是不是就可以了吧,麻烦作者考虑一下哈,谢谢

导出后,“我”的微信头像暂时无法查看,其他人正常

电脑:
Windows 10 19042.928
iTunes 12.11.3.17
Wechat Exporter 1.7.20.3

手机:
iPhone SE
iOS 14.4.2
微信 8.0.5

导出过程:
iTunes正常备份至 ~/Apple/MobileSync/Backup
Wechat Exporter直接识别到备份文件
未修改任何配置,直接点击导出
导出过程正常未报错

HTML:

<img src="聊天对象_files/Portrait/wxid_一些随机码.jpg" class="avatar">

指向的图片是这个:

image

虽然已经通过正则批量替换搞定了,希望大神有时间有精力的话顺带手看看。

请问是否支持windows 原生微信聊天记录查看

作者 您好,请问 我在 win 10 下把 C:/Users/用户名/Documents/WeChat Files/微信id/ 文件夹下的内容复制了出来,请问该软件是否支持直接浏览查看?如果 我只能有这种方式 请问我该如何使用该软件查看,谢谢
wechat

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.