Importar a Obsidian el archivo histórico de Twitter

Hay una cosa que me encanta de Day One, una aplicación para escribir un diario personal: cada día te muestra lo que escribiste “hoy” pero hace X años. Lo llaman “En este día” y saca no solo lo que escribiste en Day One sino que también puede conectarse con tu Instagram. Para mí, es un momento muy guay todos los días, cuando abro el ordenador a primera hora y creo mi nota diaria.

Y así ha surgido la idea:

¿Sería posible implementar algo similar en Obsidian? ¿E integrar también publicaciones de Twitter, además de las de Instagram?

Sería genial escribir cada día tu nota diaria en Obsidian y poder ver lo que publicaste este mismo día, pero en otros años, en tu diario, en Twitter o en Instagram. ¿No?

¡A por ello! 💪

Creo que un buen enfoque, que comparte principios con Obsidian, es tener todo en local. Hay que conseguir descargar las publicaciones de Instagram y de Twitter para tenerlas en la bóveda de Obsidian. Y después, usar el plugin dataview o alguno similar (no tengo mucha experiencia con estos plugins) para hacer consultas y mostrar resultados de publicaciones de otros años tanto de una fuente como de otra.

Primer paso: importar en Obsidian mi archivo histórico de tweets

He empezado con Twitter porque Elon Musk está loco y a saber en qué está pensando. De momento, todavía es posible descargarte tu archivo histórico desde la pestaña “configuración” en tu perfil.

Captura de pantalla en la que se ve Obsidian con una nota generada por el script, que contiene un tweet de hoy pero hace 16 años
Un tweet de hace 16 años en una nota de Obsidian, en local, generada con el parser. En 2007 ya me gustaba la Fórmula 1, por lo visto. 😂

Con el archivo ya descargado, entra en juego el parser que ha desarrollado Tim Hutton y que es una pasada. Se llama twitter-archive-parser y hace un montón de cosas guays de forma automática: te genera ficheros markdown o HTML de tus tweets y DMs, te genera un fichero con tu lista de seguidores y de seguidos, se descarga en el tamaño original las imágenes y videos que hayas adjuntado a tus tweets, te informa si un tweet es una respuesta… ¡Es una maravilla!

Solo tienes que descargarte el código y mover el fichero parser.py al directorio del archivo de Twitter. Desde un terminal, puedes ejecutarlo como un script de Python:

$> python parser.py

Funciona genial. Sin embargo, al usarlo me encontré con un problema: genera un fichero markdown por cada mes y, dentro de ese fichero, inserta el contenido de todos los tweets del mes ordenados por día. Necesitamos que los tweets estén agrupados por días, no por meses.

Así que me puse manos a la obra para intentar modificar el script en Python con mis escasos conocimientos de programación. 😬

El resultado es este fork en GitHub en el que puedes ver el código que he modificado y descargarte la versión actualizada. Cambios respecto al original:

  • Genera un fichero markdown de cada día con todos los tweets que publicaste ese día, ordenados por hora.
  • Los nombres de los ficheros se crean como YYYY-MM-dd.md. Perfecto para ordenaciones y para jugar en Obsidian.
Captura de pantalla que muestra el navegador de archivos y se ve la estructura de directorios y los nombres de los ficheros
Ejemplo de ficheros generados con el script y cómo tengo organizados los directorios del diario en Obsidian.

Como mi nivel de programación no es el que me gustaría, tengo algunos problemas que no consigo resolver de cara al objetivo final (la vista de “en este día”). Los tres más importantes:

  1. Insertar un contenido al principio de cada fichero. Me gustaría poder añadir una propiedad tipo “origen” que fuera “twitter” que seguro que facilita mucho las búsquedas y consultas con dataview y similares.
  2. Cambiar el formato de la fecha y hora del tweet que sale después del contenido, junto con un enlace al tweet original. Como usa la fecha para ordenar los tweets en el fichero, no consigo cambiarla por algo más “humano” y europeo.
  3. La más chunga: el plugin “calendar” no soporta varios ficheros en un mismo día, así que si tienes un fichero con una entrada del diario y ahora añades otro con el mismo nombre, solo mostrará el primero. De momento, yo en mi carpeta “diario” es donde tengo todos los ficheros markdown con las entradas del diario y he creado una subcarpeta “archivo-twitter” donde están todos los ficheros del archivo de Twitter.

Bueno, es un primer paso. Evolucione como evolucione, ya me parece muy guay tener en local y manejable todo lo publicado en Twitter.

Seguiré investigando opciones para ver cómo avanzar hacia esa vista “en este día”. Si te apetece echar un cable, de la manera que sea, por mí encantadísimo. ¡Sería maravilloso! 😊👏