Convertidor de exportaciones de ChatGPT a Markdown — gratis

Convierte el conversations.json de una exportación de ChatGPT en Markdown legible. Sigue la rama que realmente se mostró y deja fuera el prompt de sistema oculto.

Leer una exportación de datos de ChatGPT: la conversación es un árbol, no una lista

Pide tus datos a ChatGPT y recibes un .zip cuyo contenido útil es un único conversations.json. Ábrelo esperando una lista de mensajes y encuentras otra cosa: un objeto llamado mapping, lleno de entradas indexadas por identificador, cada una apuntando a un padre y a un conjunto de hijos. Los mensajes están ahí. La conversación que recuerdas es un camino por un grafo.

Esta página reconstruye ese camino y lo escribe como Markdown. Suelta el archivo comprimido o el JSON extraído: el análisis ocurre en esta pestaña.

Por qué se guarda como grafo

Porque la interfaz te deja reescribir la historia. Edita una pregunta anterior y el hilo se bifurca a partir de ese punto. Regenera una respuesta y obtienes una alternativa entre las que puedes pasar con las flechitas. Las dos versiones siguen existiendo; la interfaz solo muestra una.

Un array plano no puede representar eso. Así que la exportación guarda cada rama, y la transcripción que realmente viste se recupera empezando por el nodo sin padre y bajando, eligiendo en cada paso entre los hijos. La convención que coincide con la interfaz es seguir al último hijo, ya que una regeneración se añade detrás de la respuesta a la que sustituye. Eso es lo que hace esta herramienta, y por eso la salida se lee como la conversación que tuviste y no como un entrelazado de todos los intentos.

Durante el recorrido hay una protección contra ciclos. No debería dispararse nunca con una exportación bien formada, pero un bucle infinito en un analizador es peor resultado que una transcripción truncada.

Contenido que nunca viste

La exportación incluye material que la interfaz oculta, y reproducirlo literalmente da una transcripción que no coincide con tu recuerdo de la conversación:

  • El mensaje de sistema. Cada conversación se abre con instrucciones que no escribiste y que no se te mostraron. Figuran en el archivo como un mensaje de pleno derecho.
  • El tráfico de herramientas. Las búsquedas web, la ejecución de código y la generación de imágenes dejan cada una sus propios nodos de petición y resultado, dirigidos a un destinatario distinto del usuario. Eso es la maquinaria detrás de una respuesta, no el diálogo.
  • Los nodos explícitamente ocultos. Algunos mensajes llevan una marca que los señala como no mostrados en la conversación. La exportación es honesta al respecto, y la marca se respeta.

Los tres se filtran, dejando los turnos del usuario y del asistente.

El contenido de un mensaje no siempre es una cadena

El campo de contenido ha crecido con el tiempo. Un turno de texto simple lleva un array parts de cadenas. Algunos tipos de mensaje usan en su lugar un campo text. Los turnos multimodales meten objetos en el array parts, uno por elemento, donde una imagen subida y la pregunta que la acompaña son entradas distintas. Los resultados del intérprete de código llegan en otra forma más.

El analizador lee la forma de cadena, la de array de cadenas y la de array de objetos, extrayendo el texto de cada una. Las partes no textuales no aportan nada en lugar de producir una marca o un error, lo que significa que una conversación con imágenes sale como las palabras que las rodean.

Por qué Markdown es el destino correcto

El asistente ya escribe Markdown. Sus respuestas contienen bloques de código delimitados, títulos, listas y tablas, y esas marcas están en la exportación como caracteres. Convertir a texto plano las dejaría ahí, como acentos graves y almohadillas literales: el formato ni representado ni retirado, simplemente varado.

Conservar Markdown significa que los bloques de código siguen siendo bloques de código. Pega el resultado en cualquier aplicación de notas, generador de sitios estáticos, herramienta de documentación o wiki y se representa. Los nombres de los interlocutores van en negrita y cada conversación recibe un título a partir de su nombre, de modo que una exportación de varios años se convierte en un documento navegable y no en un flujo de texto indiferenciado.

Las exportaciones son grandes

Un par de años de uso habitual produce un conversations.json de decenas o cientos de megabytes, con miles de conversaciones. Eso es un problema para un editor de texto, que intentará colorear la sintaxis de todo el archivo, y para cualquier herramienta que formatee antes de enseñarte nada.

Aquí el análisis ocurre una sola vez, en memoria, y solo se representa la salida legible. Cada conversación se convierte en una sección bajo su propio título con un separador entre secciones, así que puedes buscar en el resultado una frase que recuerdas a medias en lugar de ir bajando.

Solicitar tu exportación

En ChatGPT: Ajustes, luego Controles de datos, luego Exportar datos. El paquete te llega por correo, normalmente en minutos, como un enlace de descarga que caduca. El zip contiene además un visor HTML y varios archivos multimedia; aquí solo hace falta el JSON, y soltar el paquete entero funciona perfectamente.

No se sube nada

Tu historial de ChatGPT es un registro detallado de en qué has estado trabajando, qué te ha preocupado y para qué has pedido ayuda. Es uno de los archivos más reveladores que posee la mayoría de la gente. El análisis corre en JavaScript en esta pestaña y no hay paso de subida: ningún servidor lo recibe y no hay nada que eliminar después.

Las exportaciones de Claude tienen su propia página: exportación de Claude a Markdown. La página general de exportaciones de chat admite cualquier plataforma soportada.