導(dǎo)出微信聊天記錄:用 wechat-dump 把安卓里的對(duì)話變成可搜索 HTML)
5 步免費(fèi)導(dǎo)出微信聊天記錄用 wechat-dump 把安卓里的對(duì)話變成可搜索 HTML【免費(fèi)下載鏈接】wechat-dumpAnalyzing your wechat message history from android項(xiàng)目地址: https://gitcode.com/gh_mirrors/we/wechat-dump你的微信里躺著幾年份的聊天記錄想備份卻找不到官方出口——截屏翻頁(yè)太慢、第三方網(wǎng)盤同步怕泄露、云端恢復(fù)又只認(rèn)自家賬號(hào)。這款開源工具wechat-dumpGitHub 加速計(jì)劃 / we / wechat-dump專門解決這個(gè)痛點(diǎn)它從已 root 的安卓手機(jī)上直接解析微信數(shù)據(jù)庫(kù)把文字、圖片、語(yǔ)音、表情、視頻統(tǒng)一渲染成一個(gè)獨(dú)立的 HTML 文件離線也能打開還能順手統(tǒng)計(jì)出你和誰(shuí)聊得最勤。先看清差距翻聊天記錄 vs 一鍵導(dǎo)出一句話定調(diào)wechat-dump 干的事是把微信鎖死在自己數(shù)據(jù)庫(kù)里的消息翻譯成你能看懂、能檢索、能分析的普通文件。它不依賴微信的任何導(dǎo)出接口直接讀原始數(shù)據(jù)保證一條不漏。對(duì)比維度手動(dòng)截屏微信自帶備份wechat-dump圖片語(yǔ)音截屏丟原圖只能恢復(fù)到微信全部解出并嵌入 HTML可搜索不能不能瀏覽器 CtrlF 直接搜可統(tǒng)計(jì)不能不能自帶統(tǒng)計(jì)腳本一次導(dǎo)出耗時(shí)以天計(jì)5 分鐘實(shí)測(cè) 5 分鐘內(nèi)出結(jié)果最短路徑實(shí)操?gòu)牧愕?output.html 的 6 個(gè)動(dòng)作下面這套流程走完你就能在瀏覽器里看到自己導(dǎo)出的完整聊天記錄。前提條件先列清楚一臺(tái)已 root 的安卓手機(jī)、一臺(tái)裝了 adb 的電腦Linux / macOS / Win10Bash、Python 3.8 及以上。第一步克隆倉(cāng)庫(kù)并裝依賴。在你的工作目錄執(zhí)行g(shù)it clone https://gitcode.com/gh_mirrors/we/wechat-dump cd wechat-dump pip install -r requirements.txt第二步編譯語(yǔ)音解碼器并確認(rèn) sox 已裝。微信語(yǔ)音是 Silk 編碼倉(cāng)庫(kù)里帶了源碼./third-party/compile_silk.shsox 用系統(tǒng)包管理器裝macOS 是brew install soxUbuntu 是apt install sox。第三步拉取數(shù)據(jù)庫(kù)文件。手機(jī)連上電腦并開啟 USB 調(diào)試后運(yùn)行./android-interact.sh db腳本會(huì)自動(dòng)在/data/data/com.tencent.mm/MicroMsg下找一個(gè) 32 位十六進(jìn)制的用戶目錄把EnMicroMsg.db和舊版的avatar.index拉到當(dāng)前目錄。第四步解密數(shù)據(jù)庫(kù)。微信的數(shù)據(jù)庫(kù)是加密的wechat-dump 明確不提供解密方法你需要用 SQLCipher 等工具自行解密得到EnMicroMsg.db.decoded。解密密鑰通常和設(shè)備 IMEI、微信 UIN 相關(guān)這一步以你所用解密工具的官方說(shuō)明為準(zhǔn)。第五步拉取資源目錄。頭像、表情、圖片這些原始文件同樣需要./android-interact.sh res結(jié)束后確認(rèn)當(dāng)前目錄下有一個(gè)resource文件夾里面包含avatar、emoji、image2、sfs、video、voice2六個(gè)子目錄。第六步導(dǎo)出并打開。先查一下該用哪個(gè)名字./list-chats.py EnMicroMsg.db.decoded然后把你看到的聯(lián)系人顯示名填進(jìn)命令./dump-html.py 郭家賓幾秒鐘后當(dāng)前目錄出現(xiàn)output.html瀏覽器打開就是完整的聊天頁(yè)面。想換輸出文件名或指定數(shù)據(jù)庫(kù)路徑用./dump-html.py -h查看全部參數(shù)。亮點(diǎn)一專有 WXGF 圖片格式的兩種解碼方案微信把聊天圖片和表情存成自有的 WXGF/WXAM 格式普通看圖軟件認(rèn)不出來(lái)。wechat-dump 給了兩條路方案 A推薦電腦上裝好 ffmpeg解析時(shí)自動(dòng)在本地解碼全程無(wú)感。方案 B沒(méi)有 ffmpeg 時(shí)裝一個(gè)項(xiàng)目自帶的 WXGF Decoder 安卓應(yīng)用當(dāng)解碼服務(wù)器然后在導(dǎo)出命令里追加--wxgf-server ws://設(shè)備IP:8080指向它。WXGF Decoder 是個(gè)圖形界面小應(yīng)用點(diǎn)一下START SERVER就開跑注意它依賴原生庫(kù)需要 ARMv8arm64-v8a架構(gòu)的設(shè)備并且要和電腦連在同一個(gè) WiFi 下。日志里那兩行size174061和After decoding: size348182就是在告訴你原始 WXGF 字節(jié)流已經(jīng)被還原成標(biāo)準(zhǔn)圖片了。亮點(diǎn)二20 多種消息類型的完整還原解析器對(duì)消息類型做了精細(xì)區(qū)分光是常量就有 20 多個(gè)。文字、圖片、語(yǔ)音、視頻這些基礎(chǔ)類型自不必說(shuō)紅包會(huì)解析出發(fā)送者標(biāo)題轉(zhuǎn)賬會(huì)解析出金額描述位置消息會(huì)還原成名稱 經(jīng)緯度連 QQ 音樂(lè)分享都能拆出歌名、歌手和鏈接。語(yǔ)音消息走 Silk 解碼器轉(zhuǎn)成可播放格式嵌入 HTML 后點(diǎn)一下就能聽時(shí)長(zhǎng)顯示也一并保留。亮點(diǎn)三三條命令把聊天記錄變成數(shù)據(jù)導(dǎo)出之外項(xiàng)目還送你幾個(gè)統(tǒng)計(jì)小工具。想拿到所有聊天對(duì)象的純文本消息一條命令搞定./dump-msg.py EnMicroMsg.db.decoded output_dir想統(tǒng)計(jì)每個(gè)對(duì)話的消息數(shù)量再跑./count-message.sh output_dir想看清自己的活躍時(shí)段./plot-num-msg-by-time.py會(huì)按時(shí)間畫出消息分布圖。這三步走完你的聊天記錄就從封閉數(shù)據(jù)變成了可分析數(shù)據(jù)。避坑錦囊新手最容易栽的 4 個(gè)跟頭? 數(shù)據(jù)庫(kù)沒(méi)解密就開跑 → ? 先確認(rèn)文件頭。dump-html.py默認(rèn)找EnMicroMsg.db.decoded如果直接拿加密庫(kù)喂進(jìn)去解析器會(huì)報(bào)錯(cuò)甚至卡死。動(dòng)手前先確認(rèn)這個(gè)文件是解密產(chǎn)物。? 手動(dòng)去翻用戶目錄拼路徑 → ? 讓腳本自己找。android-interact.sh會(huì)掃描 32 位十六進(jìn)制的目錄名并自動(dòng)選中省去你在 root 文件系統(tǒng)里摸索的功夫。萬(wàn)一它選錯(cuò)了README 里也提示過(guò)可能選中錯(cuò)誤 userid再手動(dòng)指定。? 在 Android 系統(tǒng)自帶 tar 上硬拉大目錄 → ? 優(yōu)先 busybox。微信資源目錄動(dòng)輒幾個(gè) G系統(tǒng)自帶 tar 遇到長(zhǎng)路徑容易斷。腳本默認(rèn)優(yōu)先嘗試busybox tar失敗才退回adb pull所以別在中途手動(dòng)中斷它。? 首次導(dǎo)出等表情下載等到懷疑人生 → ? 提前解壓表情緩存。表情包數(shù)量龐大官方發(fā)布頁(yè)提供了emoji.cache.tar.bz2緩存包下載后解壓到項(xiàng)目根目錄渲染時(shí)就能跳過(guò)大量網(wǎng)絡(luò)下載。? WXGF 圖片顯示為空白 → ? 檢查解碼鏈路。先確認(rèn) ffmpeg 是否真的在 PATH 里沒(méi)有就走方案 B 并核對(duì)ws://地址能否從電腦訪問(wèn)ping一下手機(jī) IP 最直接。真實(shí)效果演示一張截圖看懂導(dǎo)出的成品下面是項(xiàng)目倉(cāng)庫(kù)里一份真實(shí)導(dǎo)出的 HTML 截圖聊天對(duì)象是郭家賓逐條解讀這張圖你能看到幾個(gè)關(guān)鍵設(shè)計(jì)時(shí)間分片截圖里 7:44、2:52、17:48:50 這些灰色時(shí)間戳不是隨手打的。渲染器把兩條消息間隔超過(guò) 5 分鐘的對(duì)話切成分段換天則強(qiáng)制開啟新分段——這也是為什么長(zhǎng)篇聊天記錄能被組織得井井有條。氣泡方向左側(cè)綠色氣泡是對(duì)方消息帶頭像右側(cè)綠色氣泡是本人消息方向邏輯和微信一致看一眼就懂。內(nèi)嵌圖片圖片消息以原圖質(zhì)量嵌進(jìn)氣泡內(nèi)不需要外部加載這正是獨(dú)立 HTML 文件離線可看的底氣。自動(dòng)分卷消息量特別大的對(duì)話單文件會(huì)按每 1500 條左右拆分成output00.html、output01.html依次命名避免一個(gè) HTML 大得讓瀏覽器卡死。收尾下一步你可以做什么到這里你已經(jīng)完整跑通了導(dǎo)出流程。想往深了走這三個(gè)方向最值得嘗試批量導(dǎo)出所有聯(lián)系人寫個(gè) shell 循環(huán)把list-chats.py的輸出喂給dump-html.py一個(gè)腳本搞定全家桶。定制頁(yè)面樣式消息模板在 wechat/static/ 目錄里改TP_MSG.html和wx.css就能換掉默認(rèn)的綠白配色做成你自己的風(fēng)格。按時(shí)間段切片導(dǎo)出dump-html.py支持--start 2024-01-01 00:00:00參數(shù)想只導(dǎo)出某一年的記錄一條命令即可。繼續(xù)深入了解可以直接翻倉(cāng)庫(kù)根目錄的 README.md 和 WXGFDecoder/ 的說(shuō)明。工具在 2025/01/01 驗(yàn)證過(guò)最新版微信但微信每次更新都可能調(diào)整數(shù)據(jù)庫(kù)結(jié)構(gòu)如果遇到解析異常去項(xiàng)目的 wiki 或 Issues 里看看有沒(méi)有人報(bào)告相同情況——那里通常藏著最快的解法?!久赓M(fèi)下載鏈接】wechat-dumpAnalyzing your wechat message history from android項(xiàng)目地址: https://gitcode.com/gh_mirrors/we/wechat-dump創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考