コンテンツにスキップ
Zenn Dev Minipoisson Articles Chatgpt Claude Gemini Notebooklm

ChatGPTの全チャット履歴もNotebookLMへ——仕様もコードもAI任せで主要AI全履歴統合が完成した話

  • URL: https://zenn.dev/minipoisson/articles/chatgpt-claude-gemini-notebooklm
  • 日付: 2026-06-26
  • Tier: Tier 3
  • 要旨: Gemini・Claude・ChatGPTの3大AIの全チャット履歴をNotebookLMに統合するツールシリーズの完結編として、ChatGPT版(ChatGPT_Json2md4NotebookLM)の開発体験と実装内容を記録した記事。ChatGPTのconversations.jsonはmapping構造(ノードグラフ)でcurrent_nodeから経路を復元する必要があり、GeminiやClaude版の時系列配列より複雑。仕様書(SPEC.md)の策定をChatGPT自身に任せ、実装をCodexに任せた結果、単一スクリプトではなく責務分割された5モジュール構成+テストコードの設計が生成された。Copilot・Claude Code・Codex三者によるコードレビューでそれぞれ異なる観点の指摘が集まった点も報告されている。

詳細

  • 3版の開発体験の変遷: Gemini版はGeminiと設計+Copilotで実装、Claude版はClaude Codeに移植依頼、ChatGPT版はChatGPT(仕様)+Codex(実装)でほぼ自分で書かない体験に
  • ChatGPTエクスポート形式の特徴: conversations.jsonはmapping(ノードグラフ)形式。各メッセージがノードとして親子関係で格納され、current_nodeからparentをたどって最終的な会話経路を復元する必要がある(編集・やり直しによる分岐のため)
  • 他版との比較: GeminiはMyActivity.json(時系列配列)・Claude版は配列(時系列順)でどちらも分岐復元不要。ChatGPTのみglobパターンで分割ファイルを一括入力可能
  • Codexが生成したモジュール構成: cli.py(CLIとファイルI/O)/ converter.py(mapping構造から会話経路復元)/ markdown.py(Markdown文字列生成)/ splitter.py(バイト数ベースのファイル分割)/ timeutils.py(epoch秒→UTC変換)+ tests/ + docs/SPEC.md
  • 主な機能: current_node/parent経路復元、タイトル/create_time/update_time出力、HTMLタグのエスケープ(NotebookLMが読み飛ばさないよう)、引用・画像マーカーを可読注記に変換、デフォルト1MB分割、Python標準ライブラリのみで動作
  • 使い方: python cli.py –input conversations.json –output_file ChatGPT_History.md –limit 1000000。複数ファイルはglobパターンで一括指定可能
  • Copilot対応: CopilotチャットのCSVは変換スクリプト不要でNotebookLMにそのまま登録可能
  • 三者三様のコードレビュー: Copilot・Claude Code・Codex自身でそれぞれ異なる観点の指摘を取得し全面対応
  • 開発体験の変容: 「仕様を自分で考えない」体験が印象的。仕様の言語化からコード生成まで流れていった。動くものが出来上がりコードレビュー・テストも通ったという事実を記録