🚕 はじめに
私はコードを1行も読めないし、書けません。
AIを勉強し始めてまだ日が浅い、ただのTAXI運転士です。
そんな私が現在作っているのが、約10年分のInstagramの記録を、人間とAIが利用できる「第二の脳」へ変えるObsidianプラグインです。
名前は、Memory Synapseです。
MetaからエクスポートしたInstagramデータをObsidianへ移し、記憶をツリーとDB画面で確認する。
人物・場所・興味・出来事の関係を融合・分離・追記しながら、人間とAIが利用できる「第二の脳」へ育てていく。
これが、このプロジェクトで作ろうとしているものです。
ただし、最初からこの完成形を理解して作っていたわけではありません。
いろいろな工程を作り続けた結果、最近になってようやく、
「自分は、結局一つのObsidianプラグインを作っていたのではないか?」
と気づきました(笑)。
💡 出発点は、本当に一つのアイデアでした
AIを勉強し始めてから、私は18日間で12個のアプリを作りました。
その間、AIへ自分のことや、過去の判断、考え方を何度も説明するのが面倒だと感じるようになりました。
YouTubeでAIについて勉強している中で、Obsidianというノートアプリを知りました。
そのとき、こう考えました。
Obsidianへ自分のメモをためていけば、AIへ毎回同じ説明をしなくて済むのではないか?
しかし、自分で一からメモを書くより、すでにInstagramに約10年分の記録があります。
そこで、さらに単純に考えました。
InstagramのデータをそのままObsidianへ入れたら、第二の脳になるのではないか?
これが、すべての出発点です。
📦 Metaから届いたのは、一つのJSONではありませんでした
最初は、Instagramのデータをエクスポートすれば、一つのJSONファイルが届くようなイメージを持っていました。
しかし、実際はもっと複雑でした。
今回、Metaからエクスポートされた約10年分のデータは、4個のZIPファイルに分割されていました。
解凍後の合計容量は約8.4GBです。
中には、次のようなファイルが含まれていました。
- JSON:617ファイル
- JPG:8,148ファイル
- MP4:1,385ファイル
- 字幕ファイル
- その他の管理ファイル
JSON、写真、動画、字幕は、一つのフォルダーへきれいにまとまっているわけではありません。
投稿、リール、ストーリーなどのデータが、複数の解凍フォルダーへ分散していました。
利用期間や投稿数が違えば、ZIPファイルの個数や容量も人によって変わると思います。
つまり、単純に「JSONをMarkdownへ変換する」だけでは終わりませんでした。
🧩 気づかないまま、一つの製品を分解して作っていました
Instagramのデータには、通常投稿、リール、ストーリーなど、異なる種類があります。
私はそれらを安全に処理するため、別々の工程として作ってきました。
IGP
Instagramの通常投稿を変換する工程です。
IGR
Instagramのリールを変換する工程です。
IGS
Instagramのストーリーを変換する工程です。
IGC
IGP・IGR・IGSで変換した成果物を、一つのObsidian用パッケージへ統合する工程です。
Memory Synapse DB
変換された投稿、人物、場所、ハッシュタグ、メンションなどを、Obsidian上で閲覧・確認・融合・分離・追記するためのDB画面です。
作っている途中では、これらを別々のシステムとして考えていました。
しかし、利用者から見れば、すべて一つの流れです。
MetaからInstagramデータを取得する
↓
分割されたデータを安全に読み取る
↓
投稿・写真・動画・関係情報をMarkdownへ変換する
↓
ObsidianのVaultへ統合する
↓
ファイルエクスプローラーに記憶のツリーが現れる
↓
Memory Synapse DBで記憶を確認し、育てる
別々に作っていた工程は、別々の目的を持つシステムではありませんでした。
一つのアイデアを実現するための、内部部品だったのです。
🧠 Memory Synapseは、投稿を見るだけのプラグインではありません
Memory Synapseは、Instagramの投稿を一覧表示するだけのプラグインではありません。
バックアップを作って終わるツールでもありません。
Instagramに残された記憶を、自分で所有できるMarkdownへ移し、人間が意味を加えながら長期間育てられる知識へ変えることを目指しています。
想定している主な操作は、次のとおりです。
- 投稿と、それに関係する人物・場所・ハッシュタグ・メンションを確認する
- 個別カードと関連投稿を確認する
- 同じ人物や場所だと考えられるカードを、人間の判断で融合する
- 融合後も、元の各カードが持っていた情報を確認する
- 必要なカードだけを分離して戻す
- 人間自身の記憶、意味、判断理由を手書きで加える
- 間違えた操作の対象と影響を確認する
- 情報を失わずに元へ戻す
- 育てた状態をMarkdownへ保存する
- MarkdownとObsidianのリンクをAIにも読ませる
大切にしているのは、AIやシステムが意味を勝手に決めないことです。
例えば、表記が似ている人物や場所があっても、システムだけで同一だと確定しません。
AIやシステムは候補を提示できますが、融合、分離、意味付けの最終判断は人間が行います。
🗂️ Obsidianでは、実際のファイルとして残します
Memory Synapseの情報を、プラグインだけが理解できる専用データへ閉じ込めたくありません。
投稿、人物、場所、ハッシュタグ、メンションなどは、実際のフォルダーとMarkdownとしてVault内へ配置します。
そのため、Obsidian標準のファイルエクスプローラーに、記憶のツリー構造が表示されます。
想定している画面構成は、次のようなものです。
- 左側:Obsidian標準のファイルエクスプローラー
- 中央:投稿Markdown、本文、写真、動画
- 右側:人物・場所・タグなどの個別カード
- DB画面:一覧、詳細、融合、分離、手書き、取消
- Obsidian標準タブ:関連投稿を開く
仮に将来Memory Synapseプラグインが使えなくなったとしても、MarkdownとWikiリンクを読めば、人間とAIが主要な情報と関係を確認できます。
特定のプラグインや特定のAIへ、自分の人生の記録を閉じ込めないためです。
🔒 原本を失わないことを最優先にしています
Instagramから取得した原本は、将来もう一度解析できるように保持します。
加工済みのMarkdownと、Instagramから取得した原本は区別します。
また、Instagramから抽出された事実と、人間が後から加えた記憶や意味も区別します。
特に守りたいのは、次の点です。
- Instagramの原本を変更しない
- 元の投稿と出どころへ戻れるようにする
- 融合しても個別カードの情報を失わない
- 分離しても関連投稿を失わない
- 誤操作から復旧できるようにする
- 個人データを無断で外部へ送らない
- ローカルのMarkdownを知識の正本とする
便利さのために、人生の記録を壊してしまっては意味がありません。
🧪 現在、どこまでできているのか
これは、まだ完成したプラグインの紹介記事ではありません。
現在までに、次のものが形になっています。
- 通常投稿を変換するIGP
- リールを変換するIGR
- ストーリーを変換するIGS
- 3系統を統合するIGC
- 実データでの変換・件数・内容確認
- Memory Synapse DBの企画書
- 設計書
- 仕様書
- TypeScript元コード
- 公開用合成データ90件
- ブラウザー確認用モック
- 読み取り専用の仮Obsidianプラグイン
現在の仮プラグインは、開発上「06」と呼んでいます。
06では、実際のVaultを読み込み、画面内で融合・分離・手書き・取消などを試せます。
ただし、現在は読み取り専用です。
操作結果はMarkdownへ保存されず、Obsidianを再読み込みするとVaultから読み取った元の状態へ戻ります。
次の段階として考えている「08」は、操作結果を安全にMarkdownへ保存できる正式プラグインです。
08で次のことが成立すれば、私自身にとっては、最初の一つのアイデアが実現した状態になります。
- 融合結果が保存される
- 分離結果が保存される
- 手書きした記憶や意味が保存される
- 誤操作を安全に取り消せる
- Obsidianを閉じた後も、育てた状態が残る
📦 他の人が使うには、パッケージ化が必要です
私自身は、すでにIGP・IGR・IGS・IGCでInstagramデータを変換できます。
そのため、私自身の目的を実現するだけなら、すべての変換処理をプラグイン内部へ入れることは必須ではありません。
しかし、他の人が利用する場合は違います。
利用者へ、
まずIGPを実行してください
次にIGRを実行してください
次にIGSを実行してください
最後にIGCで統合してください
と説明しても、ほとんどの人は使えないと思います(笑)。
将来、他の利用者も使えるパッケージ版にする場合は、次のような一つの体験にする必要があります。
- MetaへInstagramデータのエクスポートを依頼する
- 分割された複数のZIPファイルをすべて取得する
- ZIPファイルを解凍する
- 複数の解凍フォルダーを、一つの入力セットとして指定する
- Memory Synapseが不足や重複を確認する
- JSON、写真、動画、字幕などを安全に変換・統合する
- Obsidianのファイルエクスプローラーに記憶のツリーが現れる
- Memory Synapse DBで記憶を育てる
利用者からは一つのプラグインに見せます。
ただし内部では、次の責任を分離します。
- Instagramの原本を失わず変換する処理
- 変換された記憶を人間が育てる処理
分かりやすい一つのプラグインであることと、安全なデータ処理を両立するためです。
なお、このパッケージ版は、まだ採用も実装も決定していない将来構想です。
🤔 なぜ、今まで何を作っているのか分からなかったのか
GitHubでは、以前から協力者を募集しています。
しかし、今のところ手伝ってくれる人は現れていません。
理由を考えてみると、参加する前に理解しなければならない範囲が大きすぎるのだと思います。
- 自分でMetaからInstagramデータをエクスポートする必要がある
- Instagramを長期間使っている人でなければ、価値を実感しにくい
- 複数のデータ変換工程がある
- 企画書、設計書、仕様書がある
- ObsidianとMarkdownの知識も必要になる
- Memory Synapse DBの融合・分離という考え方を理解する必要がある
何より、作っている本人が、今になってようやく何を作っていたのか理解できました。
外から見た人は、おそらく、
何か大きなものを作っているみたいだけど、何を作っているのかは分からない。
分からないけど、頑張ってください……。
という状態だったと思います(笑)。
完成したプラグインとサンプルVaultがあれば、説明は大きく変わります。
このフォルダーをObsidianへ入れる
プラグインを有効にする
Memory Synapseの画面を開く
実際に融合・分離を試す
これなら、数分で何を作っているのか理解してもらえます。
パッケージ化は、単なる配布作業ではありません。
言葉だけでは説明しきれなかった一つのアイデアを、他の人が触って理解できる形へ変えることだと考えています。
🌱 将来はInstagramだけで終わらないかもしれません
現在の対象はInstagramです。
しかし将来は、次のような情報源も同じ知識基盤へ接続できるかもしれません。
- GPS履歴
- YouTube
- 資格学習
- 各種メモ
- 写真
- 行動履歴
- その他のライフログ
人物、場所、興味、出来事、学習、行動などを、自分で所有できるMarkdownとして残す。
それを人間とAIが読み、人生の文脈を理解する。
Instagram移行とMemory Synapseは、その最初の一歩です。
👀 実際の成果物
プロジェクトはGitHubで公開しています。
ブラウザー確認用モックには、実データや個人情報ではなく、大阪の公開観光地、架空人物、スポーツ用品、居酒屋メニューなどを使った公開用合成データ90件を収録しています。
コードをダウンロードしなくても、融合・分離・取消・表示変更などを試せます。
🙏 意見を聞かせてください
現在、特に次の点について意見を求めています。
- この全体像は、一つのObsidianプラグインとして筋が通っているか
- 利用者には一つのプラグインとして見せ、内部ではデータ変換と記憶管理を分離する構成が適切か
- 最初の公開版では、どこまでを完成範囲にするべきか
- プライバシーと原本保持のために、追加すべき観点があるか
- 融合・分離・手書きの画面や操作は分かりやすいか
GitHubのDiscussionで意見をいただけるとうれしいです。
✨ おわりに
最初は、
InstagramのデータをObsidianへ入れたら、第二の脳になるのではないか?
という、本当に一つの素朴なアイデアでした。
そこから、JSON解析、原本保持、Markdown変換、写真と動画、Wikiリンク、Synapse、統合、融合、分離、手書き、取消、Obsidianプラグインへ広がっていきました。
正直なところ、作っている途中では、自分が何を作っているのか十分に理解できていませんでした。
しかし現在になって、ようやく分かってきました。
これまで作っていたものは、バラバラなシステムではありません。
Instagramに残された約10年分の記憶を、自分で所有できるMarkdownへ移し、人間とAIが利用できる第二の脳へ育てるObsidianプラグイン「Memory Synapse」
この一つのアイデアを実現するための部品でした。
まだ完成していません。
でも、ようやく自分が何を作っているのかを、自分の言葉で説明できるところまで来ました。
ここから、本当に動く一つのプラグインへ仕上げていきます。🚕🧠