Macの「メモ」に記録した内容をiCloud不要で他の環境向けに抽出できる「Apple Notes Liberator」
とっさに思いついたアイデアや覚えておきたい情報などを、スマートフォン・タブレットのメモアプリに書き留めておく人は多いはず。Appleのメモアプリ「メモ」に記録しておいたテキストや表などのオブジェクトを、抽出して整理したり追加の作業を行ったりできる「Apple Notes Liberator」がGitHubで公開されています。
GitHub - HamburgChimps/apple-notes-liberator: Free your Apple Notes data from Notes.app
「メモ」はiPhoneやiPadでよく使われるメモアプリで、簡単なテキストメモを残すだけではなく、画像やウェブリンク、スキャンした書類や手書きの文字など、さまざまな情報を書き留めておくことが可能です。「メモ」はiCloudにサインインして使用することで、複数の端末で最新の状態が共有されるため、「外出時にiPhoneでメモした内容を、帰宅してからiMacで整理する」などを行うことができます。
しかし、iCloudを利用しない場合や、Apple製品以外を使用したい場合などで、「メモ」にメモした内容を他の端末で利用するためには、「メモ内容をコピーして、使用する端末にメールやファイル共有サービスで送る」などの手間が必要です。そのような場合にスムーズなメモの抽出を行えるようにしたのがアレックス・オルソン氏の「Apple Notes Liberator」です。
Apple Notes Liberatorを使用するためには、リリースページから最新のJARファイルをダウンロードします。Apple Notes LiberatorはJavaアプリケーションのため、「メモ」に記録をとっている端末にJavaをインストールする必要があります。端末にJava Runtime Environment(JRE)があることを確認したら、ダウンロードしたJARファイルを実行することで、端末上のメモを発見してコピーし、解析して出力します。この際、実際のメモデータベースに対して直接読み取りおよび変更操作を実行することはなく、データベースのコピーを作成してそこから読み取る形になっているため、元データを侵害してしまう恐れはないとのこと。
Apple Notes Liberatorで解析されたメモは、JSON形式で出力されます。オルソン氏によると、HTML形式とCSV形式のサポートも計画中となっているそうです。出力されたファイル「notes.json」にはオブジェクトの配列が含まれ、「text」にはプレーンテキスト、「embedddObjects」には抽出された埋め込みオブジェクトがリストで表示されます。埋め込みオブジェクトについて、例えばメモに以下の画像のような表が含まれていた場合、出力したファイルには「data」フィールドとして2次元配列で表示されます。
オルソン氏は「Apple Notes Liberator」の参考になったものとして、Three Planets Softwareというグループが2020年ごろから公開している「Apple Cloud Notes Parser」というプログラムを紹介しています。Apple Cloud Notes Parserは「メモ」をiCloudと同期させてさまざまなデータを抽出、解析するもので、オルソン氏は「Three Planets Softwareによる信じられないほど困難で驚くべき仕事がなければ、私のプロジェクトも完成しませんでした。これにより、私はメモアプリの仕組みを理解することができました」と語っています。
オルソン氏がHacker Newsに「私が取り組んできた、おそらく私だけが抱えている非常に具体的な問題が、プロジェクトの最新のバージョンで解決されました。どんなフィードバックでも歓迎します」と投稿したところ、さまざまなアプリを試した結果「メモ」にこだわって利用しているというユーザーが「私は何年もの間、カスタムCSSなどの機能を備えたNotes アプリケーションを作成できることを夢見てきました。このプロジェクトで頑張ってください!」とコメントするなど、応援する意見が集まっています。一方で、「メモを抽出するだけのコマンドにどのような価値があるのでしょうか?」という質問に対し、オルソン氏は「より多機能なライブラリもあります。このプロジェクトは主に、私がメモアプリのデータ保存に関する方法を学ぶためのものでした。これほど注目してもらえるとは思っていませんでした」とコメントしています。