·4分で読めます

MacでWhatsAppバックアップのSQLiteを開く方法

WhatsAppはチャット履歴をSQLiteデータベースに保存しています。アーカイブ、法的、あるいは個人的な理由でアプリの外からそれらのメッセージを閲覧するには、Mac上でデータベースファイルを取り出して開く必要があります。

WhatsAppは、チャットメッセージ、メディアの参照情報、連絡先データをSQLiteデータベースに保存しています。iMazingのようなツールでiPhoneからバックアップを取り出した場合でも、iTunesバックアップからChatStorage.sqliteファイルを取得した場合でも、あるいはAndroidバックアップからmsgstore.dbを取り出した場合でも、いずれにせよMac上にデータベースファイルがある状態になります。ダブルクリックしても何も起こりません。それを開いて中の会話を読む方法が必要です。

なぜこれが想定以上に難しいのか

WhatsAppのSQLiteデータベースは独自のスキーマを使用しています。メッセージはZWAMESSAGE(iOS)やmessages(Android)といったテーブルに格納され、送信者、タイムスタンプ、テキスト内容、メディアの種類、ステータスといった列があります。タイムスタンプは標準的でない形式で保存されています——iOSはCore Dataのエポック(2001年1月1日からの秒数)を使い、Androidはミリ秒単位のUnixタイムスタンプを使います。連絡先は、読みやすい名前ではなくJID文字列で参照されます。

ターミナルでsqlite3を使ってファイルを開けば生のアクセスは得られますが、エンコードされたタイムスタンプとJID識別子を伴う書式のないテキストの行としてチャットメッセージを読むのは、ほとんどの人にとって実質的に役に立ちません。データを理解可能にするには、ビジュアルなインターフェースが必要です。

Androidのバックアップには、もう一つ複雑な事情があります。msgstore.db.crypt15ファイルは暗号化されているのです。どのSQLiteブラウザで開く前にも、まずキーファイルを使って復号する必要があります。しかし一度復号してしまえば、標準的なSQLiteデータベースになります。

TomeでWhatsAppのデータを閲覧

Tomeは、WhatsAppのSQLiteデータベースファイルを他のデータベースと同じように開きます。取り出したChatStorage.sqliteや復号済みのmsgstore.dbをTomeにドラッグすれば、サイドバーにすべてのテーブルが表示されます。メッセージのテーブルをクリックすれば、スクロール可能なグリッドでチャット履歴を閲覧できます。

Tome opening a WhatsApp backup SQLite database on Mac

文脈の中でメッセージを読む

メッセージのテーブルを閲覧すれば、テキスト内容、送信者の識別子、タイムスタンプ、メディアの参照情報を確認できます。日付で並べ替えれば、会話を時系列で読むことができます。TomeのSQLエディタを使って、連絡先や日付範囲でメッセージを絞り込むこともできます。

複数の会話を横断して検索

特定のメッセージを見つける必要がありますか?オートコンプリート付きのTomeのSQLエディタで簡単なクエリを書いてみましょう。SELECT * FROM ZWAMESSAGE WHERE ZTEXT LIKE '%keyword%';結果はスクロールと並べ替えが可能なネイティブグリッドに表示されます——ターミナルでgrepするよりもはるかに実用的です。

データはMac内にとどまる

データベースのアップロードを必要とするウェブベースのSQLiteビューアとは異なり、Tomeは完全にローカルで動作します。WhatsAppのメッセージがあなたのマシンから外に出ることはありません。開く、閲覧する、クエリする、閉じる——すべてMac上で完結します。

Mac App StoreでTomeを入手する

次の記事

Tome

Browse, query, and edit SQLite databases in a native Mac app.

Get Tome on the Mac App Store