📃 Export WeChat chat histories to HTML files.

Overview

wechat-export

Export WeChat chat histories to HTML files.

Preview

This script generates a HTML file for each contact's chat history.

Currently it supports:

  • Text
  • Voice
  • Picture
  • Video
  • System message

TODO:

  • Emoji
  • Link

How to Use

Tested on macOS 11.5.2 and iOS 14.8, but should work on any recent versions.

  1. Back up iPhone with your Mac.

  2. Use iExplore to export "Documents" to the local system.

  3. Clone the code.

  4. Compile the audio decoder: cd silk/silk && make && cd ../../

  5. npm install

  6. node index.js path_to/Documents/{uid} output_dir (path_to/Documents is what we got from the second step, and uid looks like g3c3814a370neh4dr69uf9f889f6ea7a).

Articles

Related Projects

Credits

Silk decoder is developed by Karl Chen.

You might also like...
This is new projec based in apps to chat or messages people to people

Stranger This is new projec based in apps to chat or messages people to people Esta aplicacion tendra las siguientes caracteristicas: 1* Es 100% segur

(bad) decentralized chat app

ircreborn what is this well. ircreborn was created because i felt that all the good platforms had too many paywalled features. (also because discord h

An app to enable fluent, cross-language video chat.

project_vouvos A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started i

A Flutter Web Plugin to display Text Widget as Html for SEO purpose
A Flutter Web Plugin to display Text Widget as Html for SEO purpose

SEO Renderer A flutter plugin (under development) to render text widgets as html elements for SEO purpose. Created specifically for issue https://gith

Convert LLVM coverage information into HTML reports

llvm-coverage-to-html converter The clang compiler supports source based coverage tracking, but the default reporting options are very basic. This too

Golang bindings of Sciter: the Embeddable HTML/CSS/script engine for modern UI development
Golang bindings of Sciter: the Embeddable HTML/CSS/script engine for modern UI development

Go bindings for Sciter Check this page for other language bindings (Delphi / D / Go / .NET / Python / Rust). Attention The ownership of project is tra

This program converts ASCII STL files to RT files for miniRT.

STL to RT This program converts ASCII STL files to RT files for miniRT. Input the ASCII STL file to the standard input and output the RT file from the

Use DOS object files (OMF) as patch files

omfpatch - Use Intel/Microsoft .OBJ files as binary diffs Overview This tool makes it possible to use MASM / TASM / JWasm / nasm as tool to write patc

Creates 3D lithophanes from image files, exports them to stl files, ready for slicing and 3D printing.

LithoMaker Creates 3D lithophanes from PNG image files and exports them to STL files, ready for slicing and 3D printing. Download the latest release h

Comments
  • Cannot find module 'output/{uid}/message.json'

    Cannot find module 'output/{uid}/message.json'

    I followed the instruction in README and got the following message:

    > node index.js bkup/Documents/{uid} output/
    ✅ Got 4 message files from bkup/Documents/{uid}/DB
    node:internal/modules/cjs/loader:939
      const err = new Error(message);
                  ^
    
    Error: Cannot find module 'output/246axxxxxxxxxxxxxxxxxxxxf11947/message.json'
    Require stack:
    - /Users/admin/Downloads/wechat-export-main/utils/generateHTMLFromJSON.js
    - /Users/admin/Downloads/wechat-export-main/utils/parseMessages.js
    - /Users/admin/Downloads/wechat-export-main/utils/parseDatabase.js
    - /Users/admin/Downloads/wechat-export-main/index.js
        at Module._resolveFilename (node:internal/modules/cjs/loader:939:15)
        at Module._load (node:internal/modules/cjs/loader:780:27)
        at Module.require (node:internal/modules/cjs/loader:1005:19)
        at require (node:internal/modules/cjs/helpers:102:18)
        at generateHTMLFromJSON (/Users/admin/Downloads/wechat-export-main/utils/generateHTMLFromJSON.js:12:16)
        at parseMessages (/Users/admin/Downloads/wechat-export-main/utils/parseMessages.js:157:9)
        at async map.concurrency (/Users/admin/Downloads/wechat-export-main/utils/parseDatabase.js:25:7)
        at async /Users/admin/Downloads/wechat-export-main/node_modules/p-map/index.js:57:22 {
      code: 'MODULE_NOT_FOUND',
      requireStack: [
        '/Users/admin/Downloads/wechat-export-main/utils/generateHTMLFromJSON.js',
        '/Users/admin/Downloads/wechat-export-main/utils/parseMessages.js',
        '/Users/admin/Downloads/wechat-export-main/utils/parseDatabase.js',
        '/Users/admin/Downloads/wechat-export-main/index.js'
      ]
    }
    
    Node.js v18.2.0
    

    Any idea?

    opened by fr0der1c 0
  • User/group names are missed

    User/group names are missed

    Great job!

    I ran into a problem here. Data exported successfully, but most chatting folders (90%) are named with a hash-strinig rather than the nickname or noted name or chatting group name. I tried twice, it came out the same like:

    outdir/[nickname]
    outdir/[noted name]
    outdir/69f90c8e57097c8bc6bc6f19789ca7c0
    outdir/71f90c8e57097c8bc6bc6f19789ca7c0
    outdir/98f90c8e57097c8bc6bc6f19789ca7c0
    

    I don't know whether it's a bug/issue or feature.

    MacOS 11.6, exported with iExplorer 4.5.0 Nodejs 16.14.0, npm 8.3.1

    Again, thanks to your great job!

    enhancement 
    opened by buyiyihu 2
Owner
Zihua Li
Web developer and designer, technical book author. I build tools that help people do things better.
Zihua Li
Keepy is a pseudo-language / HTML preprocessor that translates special syntax into HTML

Keepy is a pseudo-language / HTML preprocessor that translates special syntax into HTML with the peculiarity of being a "compiled pseudo-language". So after using Keepy you can edit the final output HTML file.

Alex 1 Jan 1, 2022
An efficient, small mobile key-value storage framework developed by WeChat. Works on Android, iOS, macOS, Windows, and POSIX.

中文į‰ˆæœŦč¯ˇå‚įœ‹čŋ™é‡Œ MMKV is an efficient, small, easy-to-use mobile key-value storage framework used in the WeChat application. It's currently available on Andr

Tencent 15.4k Jan 8, 2023
A tool to convert Call of Duty XBIN/EXPORT files to and from each other.

exportxbin exportxbin is an enhanced version of export2bin included in the Call of Duty: Black Ops III Mod Tools. Its main goal is to provide users wi

Philip 3 Jan 22, 2022
A gdnative plugin for Godot's UWP export to add xbox live integration

GodotXbox Current instructions for setting up DLL, steps to setup project for contributing/modifying are coming soon. It should be noted that Godot's

Cregg Hancock 37 Oct 31, 2022
Unix pager (with very rich functionality) designed for work with tables. Designed for PostgreSQL, but MySQL is supported too. Works well with pgcli too. Can be used as CSV or TSV viewer too. It supports searching, selecting rows, columns, or block and export selected area to clipboard.

Unix pager (with very rich functionality) designed for work with tables. Designed for PostgreSQL, but MySQL is supported too. Works well with pgcli too. Can be used as CSV or TSV viewer too. It supports searching, selecting rows, columns, or block and export selected area to clipboard.

Pavel Stehule 1.9k Jan 4, 2023
Pure Data patch export to lv2 plugin using heavy compiler + dpf example

Pure Data patch export to lv2 plugin using heavy compiler + dpf example Work in progress - Takes an audio input and writes to a 0.5 seconds buffers. 4

Qwrtst 3 Dec 27, 2022
Get air quality & CO2 data from SM300D2 & Senseair S8 with ESP32, and export as OpenMetrics (Prometheus exporter) via WiFi.

ESP Air Sensor Get air quality & CO2 data from SM300D2 & Senseair S8 with ESP32, and export as OpenMetrics (Prometheus exporter) via WiFi. I used to h

Shell Chen 4 Feb 6, 2022
A blender import/export system for Defold

defold-blender-export A blender import/export system for Defold Setup Notes There are no exhaustive documents for this tool yet. Its just not complete

David Lannan 27 Dec 30, 2022
(C++) Integrity dynamic link library made in C++ that you can export to C#

C-Integrity-Library ✔ (C++) Integrity dynamic link library made in C++ that can export to C# C# Exports [DllImport("Exports.dll")] public static exter

null 1 Jan 20, 2022
a convergence of ideas. read-only fossil export

MNOLTH A convergence of ideas. Mnolth is the core environment I use for composing computer music, as well as the multimedia that occasionally accomp

Paul Batchelor 4 Apr 18, 2022