[Mac] iCloud容量が満杯になったので、メッセージ履歴を画像などの添付ファイルと一緒にHTML形式でバックアップした!

(14)

SMSやiMessageの履歴を見返せるように、iCloudで「メッセージの保存」を有効にしているのですが…このせいでiCloud容量が満杯になっちゃった…。
個人的にメッセージ履歴と添付ファイル類は大事なため、何もせずに削除は出来ない…。

ということで、メッセージ履歴と画像などの添付ファイルをサクッとバックアップし、iCloudからは削除しつつ…履歴等を見返せるようにしていきたいと思います。
もし同じ様な状況の方がいらっしゃれば、参考になると嬉しいな…と!

スポンサーリンク

メッセージで満杯に…

ここ最近「iCloudストレージ 残りわずかです」との警告が頻繁に出るようになり、その度にiCloudドライブのファイルを整理したり…と頑張っていたのですが、もう無理!
使用状況を見てみると、メッセージだけで3.3GB程を消費しています。
これはメッセージ履歴や画像などの添付ファイルをiCloudで保存する「メッセージの保存」を有効にしているからなのですが、これが無いと困ります…。

howto-mac-message-backup-to-html-2

メッセージを出力し、バックアップしちゃおう

私の使い方としては、メッセージ履歴をサクッと見返すことが出来れば、それがメッセージアプリからでなくても大丈夫。
ということで、メッセージ履歴と添付ファイルを出力し、それをDropboxなどで保管しちゃえばイイんじゃ!?…というのが今回のお話です!

出力には問題が色々ある

まず、Apple純正メッセージアプリからは「メッセージ履歴の出力」という事は出来ません。
印刷機能を利用してPDF出力…という事も無理やり出来なくはないのですが、全メッセージというのは厳しく、そもそも出来上がったPDFサイズが大変なことになります。

iPhoneのバックアップから抜き出す系

また、メッセージ履歴のバックアップとなると方法はいくつかあるのですが、よくオススメされているのは…iPhoneのバックアップからメッセージを摘出し、テキストなどへ出力する手法です。
これも一見良さそうに見えますが、やってみると…実は完璧ではありません…。

iPhoneのバックアップから抜き出す仕様上、どうしても読み込まれていない添付ファイルなどは保存できず、保存しようと思うと過去の全メッセージを手動で読み込ませてから…という手順が必要になってしまいます。
数年分のメッセージが複数人分あり、これは現実的ではないです…。

Macだと全ダウンロードが可能

ですが、Mac版メッセージアプリからだと…画像や添付ファイルを一括でダウンロードさせることが可能です。
方法はサポートページに書かれている通りなのですが、これであれば手動で全メッセージを読み込んで…という作業が不要になり、楽ちん!

実際に使った物

Macのメッセージから出力するとなると、Githubを見てもたくさんスクリプトなどが公開されているため、目的に合わせて選ぶことが出来ます。

テキストやCSV形式などで出力してくれる物が多いのですが、実際に使ってみると…正直ちょっと見返しにくい…。

HTML形式がすごく便利だった

私の場合は、扱いやすく、それでいてメッセージ履歴をサクッと見返すことができ、画像などの添付ファイルも一緒にバックアップしてくれる物…が条件です。
この条件で探してみると…「OSX Messages Exporter」というPHPで書かれたスクリプトを発見!

これはメッセージ履歴&添付ファイルを相手ごとにHTMLファイルで出力してくれるというスクリプトです。
実際に出来上がったファイルを見てみるとこんな感じ。メッセージアプリ風のデザインが再現されている上に、画像等の添付ファイルもきちんと表示してくれる!

howto-mac-message-backup-to-html-3

コードもシンプルで再利用しやすい

画像などの添付ファイルは相手名のフォルダにまとめられており、ファイル名も「日付-元ファイル名」と整理されており、探しやすくて便利!

更に、実際に出力されたHTMLのコードも非常にシンプルで分かりやすい!
それぞれタイムタンプも記載されていますし、「data-from」属性でどちらが送信したメッセージかが記載(selfが自分)されているため、例えばPythonなどを使用して一定期間中のメッセージ…など、摘出が簡単で再利用がしやすかったです。

<!doctype html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Conversation: 静香 源</title>
		<style type="text/css">

		body { font-family: "Helvetica Neue", sans-serif; font-size: 10pt; }
		p { margin: 0; clear: both; }
		.timestamp { text-align: center; color: #8e8e93; font-variant: small-caps; font-weight: bold; font-size: 9pt; }
		.byline { text-align: left; color: #8e8e93; font-size: 9pt; padding-left: 1ex; padding-top: 1ex; margin-bottom: 2px; }
		img { max-width: 100%; }
		.message { text-align: left; color: black; border-radius: 8px; background-color: #e1e1e1; padding: 6px; display: inline-block; max-width: 75%; margin-bottom: 5px; float: left; }
		.message[data-from="self"] { text-align: right; background-color: #007aff; color: white; float: right;}

		</style>
	</head>
	<body>
			<p class="timestamp" data-timestamp="2021-07-31 23:18:37">7/31/2021, 11:18 PM</p><br />
			<p class="message" data-from="+8109111111111" data-timestamp="2021-07-31 23:19:14" title="7/31/2021, 11:19 PM">iPad欲しいです</p><br />
			<p class="timestamp" data-timestamp="2021-08-01 07:28:28">8/1/2021, 7:28 AM</p><br />
			<p class="message" data-from="self" data-timestamp="2021-08-01 07:28:28" title="8/1/2021, 7:28 AM">ほぉ</p><br />
			<p class="timestamp" data-timestamp="2021-08-01 11:14:29">8/1/2021, 11:14 AM</p><br />
			<p class="message" data-from="+8109111111111" data-timestamp="2021-08-01 11:14:29" title="8/1/2021, 11:14 AM">これが欲しいです</p><br />
			<p class="message" data-from="+8109111111111" data-timestamp="2021-08-01 12:17:21" title="8/1/2021, 12:17 PM"><img src="源静香/2021-08-01 12 17 21 - IMG_6595.jpg" /></p><br />
			<p class="message" data-from="+8109111111111" data-timestamp="2021-08-01 12:17:38" title="8/1/2021, 12:17 PM">いつ買ってくれますか?</p><br />
			<p class="message" data-from="self" data-timestamp="2021-08-01 12:28:40" title="8/1/2021, 12:28 PM">HANSHAかよ</p><br />
			<p class="message" data-from="+8109111111111" data-timestamp="2021-08-01 12:37:33" title="8/1/2021, 12:37 PM">そうなのぉ~</p><br />
			<p class="message" data-from="self" data-timestamp="2021-08-01 12:37:59" title="8/1/2021, 12:37 PM">ドンゲバビー</p><br />
	</body>
</html>

使い方も簡単

OSX Messages Exporterは使い方も簡単で、スクリプトを実行するだけです。Macなので、最初からPHPが入っているため、実行するための準備も特に必要ないはずです。

先にやることはサポートページの通りに各メッセージの「画像・添付ファイル(ドキュメント)を一括ダウンロードしておく」事くらいでした。

OSX Messages Exporterを実行

OSX Messages Exporter】をダウンロード&解凍。ターミナルを起動し、「cd」コマンドにて解凍されたディレクトリへ移動しましょう。
後は簡単で、「./messages-exporter.php」と入力してエンターを押すだけです。
メッセージ量が多いと数分かかる場合もありますが、実行が完了されるとディレクトリ内に各相手ごとのHTMLファイルと、添付ファイルをまとめた各相手ごとのフォルダが作成されます。

howto-mac-message-backup-to-html-4

後はメッセージ履歴を削除して、おわり

作成されたHTMLファイル&添付ファイルフォルダは、日付フォルダ名としてまとめ、Dropboxへ保存しておきました。
iOSのアプリからHTMLを開くと画像や添付ファイルが連携されないのだけ気になりますが、添付ファイル名には日付が記載されているため、まぁ大きな問題はなし!

iCloud容量はどうなった

メッセージのバックアップが終わったので、後はメッセージアプリからチャットを削除。この際、最新のメッセージ1つだけ残して削除すると、チャット項目自体はリストに残ってくれるため便利でした。

また、削除してもすぐにはiCloud容量に反映されず、数時間経ってから容量が反映。実際に削除後は…こうなりました!これでまた2年くらいは戦えそうです…。

howto-mac-message-backup-to-html-5

私、LINEではなくiMessageを主に使っているので…iCloudの「メッセージを保存」機能は必須だったりします(特にiPhoneをよくリセットしたりするので…)。
が、3年に1回くらい容量が満杯になり、どうしようもなくなって…直近の履歴をスクショしてメッセージ履歴を削除…ってやってたんですよね…。

特に最近はiMessage経由でドキュメントファイルのやりとりなども多くなってきたので、たぶん次は2年くらいで満杯になるんじゃないかな…。他のアプリとの兼ね合いでは、1年くらいかも…。
ということで、今後は半年に1回くらいHTML出力でバックアップして…ってのをやっていこうかな!なんて思っていたり。

本当はiCloudに課金しちゃうのがイイんでしょうが、Dropboxに課金しちゃってるので…ストレージにこれ以上お金をかけたくないというケチ根性でして…。
DropboxとSpotifyをやめて、Apple Oneにする…?でも50GBじゃなぁ…とかなんとか悩みつつ…。みんなどうしてるんだろうか…。

コメント

  1. これいいですね。
    昔、MessageをバックアップしたくてデータベースファイルからMySQLでデータ抽出してエクセルにコピペしてってやってたけど面倒臭くて続かなかった

  2. 5GBプランのままなの逆に驚いた
    絶対課金して容量たっぷりで生活していると思っていたので…

    • Dropboxを使っているので、これ以上ストレージにお金を払いたくないというケチ根性が……!!!
      SpotifyをApple Musicに移行して、DropboxをiCloudドライブに移行して…Apple Oneで契約しちゃうという事も考えたのですが、どうしてもDropboxの方が使いやすくて…

  3. 同様の問題があった自分にタイムリーな記事

  4. サンタさんってプログラマー?

    • プログラムはお遊び程度しか…(´;・;ω;・)

  5. なぜか知らんけど2年前ぐらいにAppleからiCloudが4年間50GB無料になるオファーが来たのでそれとMEGAのPro liteプランでなんとかやりくりしてます…

    • 選ばれし人だ、、、

  6. なかなかおもろいな

  7. すごく便利ですね^^
    これのWindows版があればありがたいんですが、脱獄アプリも含めて今まで見たことがありません。
    もしそういうものがあれば教えて頂けるとありがたいです。
    よろしくお願いします。

    • Windowsの場合はメッセージアプリがまだ無いので、iOS側から抜き出す手法になっちゃうんですよねぇ…

      • 返信ありがとうございます。
        いつかWindows版がでることを期待しています(^^;
        1人分だけでも保存できればそれでいいんですけど、暗号化もされているしなかなか難しいです><

  8. NASがいいんじゃないかな

  9. いい方法ですね!今度試してみます!
    LINEはテキストではありますが全てエクスポートする事が出来たのでそれそれで便利でした。txtなのでそのままメモappにコピペもできますし添付ファイルとしても貼れます。iMessageはこれが出来ないんで後で見返すことができず不便でした。
    アップルさんそのあたり純正機能でなんとかならないもんなんですかねえ

タイトルとURLをコピーしました