AI Chat Clipper ヘルプ

構造化JSONとしてエクスポート

7つのドキュメント形式に加えて、ファイルグリッドと各メッセージのインラインのファイルのエクスポートメニューには、JSONエクスポートが用意されています。他の形式とは異なり、JSONは読むための完成されたドキュメントではありません。これは、チャットをスクリプト、データベース、または別のツールに、ページを自分でスクレイピングすることなく取り込みたい開発者向けの、機械可読データとしての会話です。

ファイルは、単一の整形されたJSONオブジェクトです。会話に関するメタデータのブロックに続いて、メッセージのフラットなリストが続きます。

  • 会話メタデータschema (バージョン管理された識別子、現在は ai-chat-extractor/conversation@2 であり、コンシューマーが形式とそのバージョンを認識できるようにします)、sitetitleurlexported_at (ISOタイムスタンプ)、content_format (常に markdown)、および message_count
  • messages — メッセージごとに1つのエントリを持つ順序付けられた配列で、それぞれが indexrole (誰が話したか — user または assistant)、およびテキストの2つのビューを保持します。content はMarkdownとしての完全なメッセージであり、contents は同じメッセージが型付けされた部分に分割されたものです。

2つのビューは、2種類のコンシューマーに対応します。content は、単純なスクリプトが必要とするすべてのものとして、Markdown文字列全体です。contents は、それを型付けされたセグメントの順序付けられたリストに分割するため、パイプラインはMarkdownを再解析することなく、種類によって部分を選択または削除できます。text は散文用、thinking はモデルの推論ブロック用、code はフェンスで囲まれたコードブロック用 (オプションの language 付き)、image は画像用 (その urlalt テキスト付き — Markdownとして書かれたかHTMLタグとして書かれたかにかかわらず)、table はMarkdownテーブル用で、headersrows に分割されているため、コンシューマーはパイプ文字のブロックではなく実際の列を取得できます。AI Chat Clipper は、会話から正直に識別できるセグメントタイプのみを出力します。存在しない構造を発明することはありません。たとえば、引用は独自のブロックなしで通常のインラインリンクとして到着するため、意図的に個別の sources タイプはありません。

コードブロックを含む短いアシスタントの返信は、次のようにエクスポートされます。

{
  "schema": "ai-chat-extractor/conversation@2",
  "site": "claude",
  "title": "Reversing a string",
  "url": "https://claude.ai/chat/…",
  "exported_at": "2026-07-18T10:32:00.000Z",
  "content_format": "markdown",
  "message_count": 2,
  "messages": [
    { "index": 0, "role": "user", "content": "How do I reverse a string in Python?",
      "contents": [ { "type": "text", "text": "How do I reverse a string in Python?" } ] },
    { "index": 1, "role": "assistant", "content": "Use a slice:\n\n```python\ns[::-1]\n```",
      "contents": [
        { "type": "text", "text": "Use a slice:" },
        { "type": "code", "language": "python", "text": "s[::-1]" }
      ] }
  ]
}