ByteScope

WhatsApp Chat Viewer

把 WhatsApp「匯出聊天」產生的 .txt 或 zip 丟進來,重新像聊天一樣讀:你的訊息在右、對方在左,照片、影片、語音直接從檔案裡播放,可以搜尋、看每個人的統計,再存成 Markdown 或 CSV。全部在這個瀏覽器分頁裡跑,不上傳、不儲存。

檔案不會離開你的瀏覽器 — 全部在本機處理。

把 WhatsApp 匯出的聊天記錄(.txt,或含媒體的 zip)拖進來,像聊天畫面一樣閱讀、看圖片,也能看誰在什麼時候說了多少話。全程不上傳。

拖入 WhatsApp 匯出檔,或點一下選擇

含媒體的 .zip、單一 .txt,或已解壓縮的資料夾

給資料夾的話,放在對話旁邊的圖片和檔案也看得到。

誠實的限制

  • WhatsApp 的匯出本身就會漏東西:投票、回覆引用的對象、表情反應、編輯紀錄、限時訊息通常都不在檔案裡,沒匯出的我們也看不到。每行的格式是依公開說明推定的,手機語言比較少見時,解析可能會有點怪。
  • WhatsApp 對匯出的訊息則數和媒體大小都有上限。
  • 這裡只能看,不是備份工具,沒辦法把對話還原回 WhatsApp。
  • 語音訊息只能播放,不會轉成文字。想要文字的話,可以自己用「影片字幕」轉。

關於這個工具

WhatsApp 可以把任何一段聊天匯出成文字檔,含媒體或不含媒體都行。換手機時紀錄沒搬過去,常常只剩這份檔案;租屋糾紛、工作上的往來要留紀錄,要的也正是它。匯出檔讀得了,但很難讀:一整份長長的 .txt,每一行前面一個時間戳。這一頁把它變回聊天畫面。把 .txt、含媒體匯出的 zip 或解壓縮後的資料夾丟進來,訊息就會變成一個個對話框,有日期分隔線,系統訊息(加密說明、有人加入或離開、群組改名)淡色顯示,上方有搜尋框和「跳到某一天」。從參與者清單選一個當「你自己」——頁面會先猜訊息最多的那位,你可以改。

這些行是怎麼被讀懂的

iPhone 和 Android 寫出來的匯出檔長得不一樣——一邊是 [日期 時間] 名字: 訊息 的方括號格式、每行開頭還藏著一個看不見的從左到右標記(U+200E),另一邊是 日期, 時間 - 名字: 訊息——而日期順序、12 或 24 小時制、上下午的字樣又會跟著手機語言變。這一頁從檔案本身判斷平台和格式。這些樣式是依公開描述推定的,不是出自任何規格書,所以長得不一樣的匯出檔會被報出來,不會默默讀錯。不像訊息開頭的行會接到上一則後面,多行訊息就是這樣保住的;一行壞掉的時間只影響那一行。日和月分不出來的時候——整份檔案每個日期兩個欄位都 ≤ 12——頁面會請你選,不會亂猜,預設是你瀏覽器語系的慣例。時間照 WhatsApp 寫的原樣顯示,因為匯出檔裡沒有時區。

媒體與附件

匯出含媒體時,WhatsApp 留在文字裡的記號——iPhone 的 <attached: …>、Android 的 … (file attached)——會對應到 zip 或資料夾裡的檔案,照片、影片、語音訊息就直接在對話裡顯示、播放,從檔案裡來。對應的檔案不在,或者匯出時沒含媒體、文字裡只留下「媒體已省略」,那則訊息就會這樣寫。語音訊息只能播放,不會轉成文字;要逐字稿的話,站上的字幕工具(/video-subtitles)可以吃音訊檔。

搜尋與統計

搜尋就是對每則訊息做純粹的子字串比對,轉小寫、做 NFKC 正規化,所以中文、日文的名字和字詞不用斷詞也找得到;點一個結果就跳到那則訊息並高亮。統計頁列出每位參與者的訊息數和字數、24 小時分布圖看聊天最熱絡的時段,以及每月訊息數。到這裡就停了:沒有情緒分析,也沒有「誰比較愛誰」這種解讀。它只會數數。

存成 Markdown 或 CSV

整段對話可以存成 Markdown,或存成 CSV、一則訊息一列——時間、寄件者、內容、附件檔名——依 RFC 4180 加引號,試算表打開不會跑掉。Markdown 頁尾會註明這份檔案是從 WhatsApp 匯出檔轉換而來、未經修改,並附上原始檔的 SHA-256,之後可以核對這份副本是不是出自那個匯出檔。這一頁沒有 PDF 匯出;要列印的話,把 Markdown 用任何編輯器打開再列印。

匯出檔本身就漏掉的東西

WhatsApp 的匯出本身通常就會漏東西:投票、emoji 反應、編輯紀錄、某則回覆引用的是哪一則、閱後即焚的內容,一般都不在文字檔裡,而且 app 對一次匯出的訊息則數有上限——含媒體和不含媒體的上限不同。沒匯出的東西這一頁沒辦法變出來。它也不是備份工具:這裡看得到的,沒辦法匯回 WhatsApp。所有處理都在這個分頁的記憶體裡,關掉就沒了,不上傳、不儲存。WhatsApp 是其所有者的商標;這是一個獨立的檢視器,用來讀它匯出的檔案,不是官方工具。

常見問題

我的聊天紀錄會被上傳嗎?

不會。文字解析、媒體對應、搜尋索引都在你的瀏覽器裡做,這一頁沒有伺服器可以把東西送過去。也不會寫進任何儲存空間,分頁一關就沒了。媒體檔只在用到它的訊息出現在畫面上時才從 zip 裡讀出來。

要丟哪個檔案?.txt 還是 zip?

都可以。不含媒體的匯出是單一個 .txt;含媒體的是一個 zip,裡面有那份 .txt,照片、影片、語音放在旁邊。想看媒體就丟 zip(或解壓縮後的資料夾);只要文字就丟 .txt。平台是 iPhone 還是 Android、日期是什麼格式,都從檔案本身判斷。

為什麼我的訊息在錯的那一邊?

因為匯出檔沒有寫是誰匯出的,頁面只能猜:把訊息最多的那位放在右邊當「你自己」。猜錯了就從參與者清單選你自己,對話框會換邊。群組聊天也是用同一個選單決定誰的訊息算你的。

為什麼要我選日期是「日/月」還是「月/日」?

因為你這份檔案裡每個日期的兩個欄位都 ≤ 12,檔案裡沒有任何線索能判斷 3/4 是 4 月 3 日還是 3 月 4 日。只要匯出檔裡有任何一個日期的欄位超過 12,順序就能從它推出來;一個都沒有的時候,頁面寧可問你也不默默猜,並把你瀏覽器語系的慣例當預設。選錯了也可以再改。

為什麼有訊息寫「媒體已省略」或「附件未包含在匯出中」?

「已省略」是 WhatsApp 寫的:匯出時沒含媒體,所以文字裡只留下一個記號說這裡本來有一張照片或一段語音,檔案本身從來沒被匯出。「附件未包含在匯出中」是這一頁寫的:文字裡提到一個檔案,但你丟進來的 zip 或資料夾裡沒有它。不管哪一種,那張圖都不在你手上。有在的語音訊息可以直接播放,但這裡不會轉成文字——站上的字幕工具可以拿音訊檔去轉。

可以把聊天紀錄轉成 PDF 嗎?

這一頁不能直接轉——沒有 PDF 匯出。你可以把聊天存成 Markdown 或 CSV(時間、寄件者、內容、附件檔名),再把 Markdown 用任何編輯器打開,用它的列印功能存成 PDF。兩種匯出的結尾都會註明內容未經修改,並附上原始匯出檔的 SHA-256;檔案要拿來當紀錄的時候,這一行很重要。

可以把這段聊天還原到新手機嗎?

不行。匯出的聊天是文字檔,不是備份,WhatsApp 也不會匯入它。這一頁能做的是讓你讀、搜尋、保存這份匯出檔——這已經是文字匯出能給的全部了。