iMessageの履歴をHTMLとして保存する方法

ここではimessage-exporterを使ってiMessageのメッセージ履歴をまるっと書き出す方法を記す。

https://github.com/ReagentX/imessage-exporter

わたしはiMessageのメッセージ保存期間を“無期限”にしていたため、iPhoneやiCloud容量を逼迫していた。そこでimessage-exporterを使ってメッセージ履歴をローカルにまるっと保存。iMessageの保存期間は“1年間”へ変更することで過去のデータを削除、iCloudの空き容量を増やすことに成功した。

環境

  • macOS 13.6 Ventura
  • iOS 17.0

目次

インストール

公式ドキュメンテーションはこちら(https://github.com/ReagentX/imessage-exporter/blob/develop/imessage-exporter/README.md)。imessage-exporterはRustで出来ているためCargoを使ってインストールする方法、Homebrewを使う方法、プリビルドされたバイナリを使う方法がある。今回わたしはHomebrewでインストールした。

brew install imessage-exporter

ちなみにCargoならこう。

cargo install imessage-exporter

macOSのデータベースから抽出する方法

念のため先にiMessage(メッセージアプリ)を立ち上げ、設定画面から“今すぐ同期”をクリックして、データベースを最新の状態へ。

macOSの場合~/Library/Messages/chat.dbにメッセージデータベースがある模様。imessage-exporterはデフォルトでここを見に行ってくれるので保存形式とアタッチメント(画像や動画といった添付メディア)を保存するか否かを教えるだけで簡単にバックアップを取ってくれた。

imessage-exporter -f html -c efficient -o ~/Desktop/imessage_backup

上のコマンドを走らせるとデスクトップにimessage_backupフォルダがつくられ、その中にHTML形式でメッセージ履歴が保存された。

出力されたHTMLの一例

ステッカーの貼り付け位置は失われていたものの、ステッカー1枚1枚は画像データとして保存されており、ほぼすべてのアタッチメントが保存できていることを確認。中には見つからないものもあったが、リンク切れのものだったり。ほか、リアクションや返信、既読時間まできちんと出力されていて、感動。

iPhoneのバックアップから抽出する方法

iPhoneでしかiMessage使ってないよ、という方はこちら。

まずはFinderをつかってMacにiPhoneのバックアップを取る(図中1)。この時バックアップを暗号化しないよう注意。バックアップが完了したら“バックアップを管理”をクリック(図中2)。

FinderのiPhone管理画面

先程取れたバックアップを右クリックして“Finderで表示”をクリック。

“バックアップを管理”画面

Finderでバックアップフォルダが表示されるのでそのパス名をコピーする。フォルダを選択して++Cか、あるいは右クリックメニューを表示してからオプションキーを押し、[“フォルダ名”のパス名をコピー]を選択。

Optionキーを押下するとコンテキストメニューが変化する

次のコマンドを使うとiPhoneのバックアップデータからiMessageのメッセージ履歴を抽出してくれる。

imessage-exporter -f html -c efficient -a iOS -p "バックアップフォルダのパス名" -o ~/Desktop/imessage_export

macOSのときと同様、きちんとHTML形式で保存される。

出力されたHTMLの一例

オプション一覧

-f フォーマット

txt、またはhtmlから選べる。

-c コピーオプション

アタッチメント(画像や動画などの添付メディア)のコピー方法を選択。efficientは元データそのまま、compatibleはHEICをすべてJPEGへ変換。省略時のデフォルトはdisabledでコピーしない。

-a プラットフォーム

抽出元がmacOSかiOSを明示するオプション。特にiOSのバックアップから抽出する場合は“iOS”と指定する。

-o 出力先

デフォルトは~/imessage_export。保存先となるフォルダ名を指定する。

-d データベース検証

データベースの検証のみを行って、その結果を表示するモード。メッセージの保存はしない。

-s YYYY-MM-DD 開始日

指定した日付を含め、それ以降のメッセージのみ抽出する。フォーマットはYYYY-MM-DD(2023年9月29日ならば2023-09-29)。

-e YYYY-MM-DD 終了日

指定した日付以前のメッセージのみ抽出する。フォーマットはYYYY-MM-DD(2023年9月29日ならば2023-09-29)。

-l タグ出力オプション

小文字のエル(L)。HTML出力時、imgタグにloading="lazy"を付与しない。ブラウザでの表示時間は遅くなるがPDFへの書き出しに最適。

-m CustomName 名前変更

メッセージ中の自分の名前を任意の文字列に置き換えて出力する。デフォルトはMe。

1735484338217849221 https://www.storange.jp/2023/09/blog-post.html https://www.storange.jp/2023/09/blog-post.html iMessageの履歴をHTMLとして保存する方法 2023-09-29T22:14:00+09:00 https://www.storange.jp/2023/09/blog-post.html Hideyuki Tabata 200 200 72 72