AI Chat Clipper Aide

Exporter au format JSON structuré

En plus des sept formats de document, la grille de fichiers — et le menu Exporter le fichier de chaque message — offre une exportation JSON. Contrairement aux autres, le JSON n'est pas un document fini à lire : c'est la conversation sous forme de données lisibles par machine, destinée aux développeurs qui souhaitent alimenter un script, une base de données ou un autre outil avec un chat sans avoir à extraire les données de la page eux-mêmes.

Le fichier est un objet JSON unique joliment formaté — un bloc de métadonnées sur la conversation, suivi d'une liste plate de ses messages.

  • Métadonnées de la conversationschema (un identifiant versionné, actuellement ai-chat-extractor/conversation@2, afin qu'un consommateur puisse reconnaître le format et sa version), site, title, url, exported_at (un horodatage ISO), content_format (toujours markdown), et message_count.
  • messages — un tableau ordonné, une entrée par message, chacune contenant son index, son role (qui a parlé — user ou assistant), et deux vues du texte : content, le message complet en Markdown, et contents, ce même message divisé en parties typées.

Les deux vues servent deux types de consommateurs. content est le message entier sous forme d'une chaîne Markdown — tout ce dont un script simple a besoin. contents le divise en une liste ordonnée de segments typés, afin qu'un pipeline puisse sélectionner ou supprimer des parties par type sans avoir à ré-analyser le Markdown : text pour la prose, thinking pour un bloc de raisonnement d'un modèle, code pour un bloc de code clôturé (avec une language facultative), image pour une image (avec son url et son texte alt — qu'elle ait été écrite en Markdown ou en balise HTML), et table pour un tableau Markdown, divisé en ses headers et rows afin qu'un consommateur obtienne de vraies colonnes au lieu d'un bloc de caractères de barre verticale. AI Chat Clipper n'émet un type de segment que s'il peut l'identifier honnêtement à partir de la conversation — il n'inventera pas de structure qui n'existe pas. Les citations, par exemple, arrivent comme des liens intégrés ordinaires sans bloc propre, il n'y a donc délibérément pas de type sources séparé.

Une courte réponse d'assistant qui contient un bloc de code s'exporte comme ceci :

{
  "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]" }
      ] }
  ]
}