13 puntos por GN⁺ 2025-10-08 | 1 comentarios | Compartir por WhatsApp
  • Reúne todos los datos personales —como fotos, videos, mensajes, historial de ubicación, contenido de redes sociales y contactos— y los organiza cronológicamente en una herramienta local de archivo en línea de tiempo
  • Importa datos de distintos servicios como Google Takeout, iCloud, Facebook, Twitter/X, Strava e Instagram, y los ordena automáticamente en una base de datos basada en SQLite
  • Ofrece funciones de exploración visual como mapa, vista 3D, vista unificada de conversaciones y reconocimiento de entidades, y muestra las relaciones entre distintos tipos de datos como mensajes, fotos y ubicaciones
  • Todos los datos se guardan en la PC personal en lugar de la nube, por lo que no hay riesgo de filtración externa y se pueden explorar los archivos originales tal cual
  • Es un proyecto de autobiografía digital que reconstruye visualmente la vida de una persona y puede ampliarse a casos como compartir datos entre familiares o preservar un legado digital

Resumen

  • Timelinize es una herramienta local de integración de datos que reúne distintas huellas digitales personales en una sola línea de tiempo unificada
  • Recopila fotos, videos, conversaciones, redes sociales, historial de ubicación y contactos, y los reorganiza alrededor del tiempo, el espacio y las personas
  • Permite registrar con detalle la vida cotidiana propia y de la familia, y explorar historias de forma más completa y profunda que una biblioteca de fotos o una app de diario tradicionales
  • Funciona en el navegador y sigue siendo accesible incluso sin conexión
  • No reemplaza las distintas apps y servicios que ya usas, sino que crea una copia de respaldo permanente y personal de todos los datos con los que trabajas
  • Timelinize opera “detrás” del entorno que ya usas y cumple el papel de un archivo en segundo plano que no interfiere con tu vida

Funciones principales

  • Compatibilidad con múltiples fuentes de datos
    • Importa directamente formatos de exportación de datos GDPR de Google Takeout, Apple iCloud, Facebook, Instagram, Twitter/X y Strava, entre otros
    • Reconoce y organiza automáticamente archivos .zip o .tar sin necesidad de descomprimirlos
  • Interfaz de exploración visual
    • Vista de línea de tiempo: muestra de forma unificada todos los elementos de datos por fecha
    • Vista de mapa 3D: visualiza rutas de movimiento a lo largo del tiempo con base en datos de ubicación
    • Gráfico de burbujas: analiza qué tipo de datos se registraron más según la hora del día
  • Estructura de datos basada en entidades
    • Organiza las relaciones de datos alrededor de entidades como personas, animales e instituciones
    • Reconoce automáticamente a la misma persona u organización y permite fusionarlas manualmente cuando sea necesario
  • Integración de conversaciones
    • Vincula mensajes de distintas plataformas en una sola vista de Conversations
    • Agrupa Facebook Messenger y SMS en un mismo hilo para reconstruir el contexto de la conversación
  • Integración de galería
    • Además de la biblioteca de fotos, muestra también imágenes subidas en mensajes o redes sociales, así como memes
    • Permite explorar por tipo de medio o tema mediante varios filtros

Estructura y funcionamiento

  • Los datos se organizan en el disco local en carpetas por fecha, y los metadatos se guardan en una base de datos SQLite
  • Ofrece HTTP API y CLI de forma simétrica, por lo que los mismos comandos pueden ejecutarse tanto en la web como en la línea de comandos
  • Convierte automáticamente argumentos de comandos y campos de formularios HTTP mediante un esquema basado en JSON
  • Incluye un entorno Dev Container para configurar un entorno de desarrollo basado en Docker

Filosofía y visión del proyecto

  • El objetivo central del proyecto es la preservación autónoma y liberación de los datos personales
    • Está diseñado para que cada persona gestione directamente sus datos, anticipando el riesgo de que desaparezcan servicios centralizados en la nube
    • Visualiza la vida personal de forma cuantificada, con potencial para evolucionar hacia una autobiografía digital o un registro de historia familiar
  • A largo plazo, propone el ideal de fusionar líneas de tiempo individuales para construir una “línea de tiempo de toda la humanidad”

Desarrollo e instalación

  • Se puede descargar la última versión para Linux, macOS y Windows
  • Se puede desarrollar con Dev Container en un entorno de VSCode + Docker
  • El proyecto se distribuye bajo licencia AGPL, lo que restringe su reprocesamiento comercial

Historia del proyecto

  • Comenzó en 2013 como un proyecto personal llamado ‘Photobak’ y luego se expandió como herramienta de respaldo para Google Photos, Facebook y Twitter
  • Más tarde evolucionó con soporte multiusuario e integración de datos de ubicación hasta convertirse en el Timelinize actual
  • Su creador también es desarrollador del servidor Caddy, y lleva adelante este proyecto como un experimento de largo plazo en favor de la soberanía de los datos personales

1 comentarios

 
GN⁺ 2025-10-08
Comentarios en Hacker News
  • Me parece un gran servicio, pero me gustaría que se expandiera mucho más y que incluso pudiera reemplazar a Nextcloud y Zotero; necesito una función que registre todos los documentos y libros que agrego, abro o modifico, todas las notas que escribo, las pestañas del navegador que abrí, lo que copio/pego e incluso las pulsaciones de teclas, para poder responder al instante preguntas como: "¿Qué hice hoy hace dos semanas?". Todo esto debería poder buscarse y definitivamente tendría que ser self-hosted; no es con la intención de convertirlo en software de vigilancia. Cuando veo a gente usando sistemas de enlaces manuales en Obsidian, termino pensando que la perspectiva temporal es más importante; si hoy busco algo en Wikipedia, es muy probable que en ese mismo momento también esté encontrando información similar o haciendo algo relacionado, y eso tiene mucho sentido.

    • Recuerdo que Microsoft tenía antes un producto que ayudaba a hacer Recall de en qué estaba trabajando.

    • No logro encontrar la referencia exacta, pero recuerdo que alguien propuso la idea de un sistema de computación donde todos los objetos existen puramente en función del tiempo y todo lo demás se accede solo mediante filtros. Me gustaría volver a encontrarlo.

    • La parte de reemplazar Nextcloud y Zotero, guardar todas las notas y registrar hasta las pestañas del navegador, el portapapeles y las pulsaciones de teclas sí me parece que sería realmente útil a largo plazo. Aun así, siento que llegar al nivel de pestañas del navegador y pulsaciones de teclas ya es demasiado detalle. No creo necesitar tanto, pero sí creo que hace falta intentar registrar y comprender la propia vida mediante datos, y esta app también parte de esa misma inquietud.

  • mholt es conocido por haber creado el servidor web Caddy, así que eso hace que Timelinize me interese todavía más.

  • Llevo los últimos 10 años necesitando exactamente un producto así, así que he estado registrando datos GPS cada 2 o 3 minutos. Me parece fascinante.

    • Me da curiosidad saber cómo has estado haciendo ese registro de GPS.
  • Timelinize es un sistema entity-aware, así que incluso sin datos de coordenadas puede mostrar en el mapa información temporalmente similar por entidad. Eso me hace darme cuenta de cuántos de mis datos podría combinar Google a partir de Android/Chrome/Gmail/Maps/Timeline. Me pregunto cómo piensan aprovechar exactamente los datos meteorológicos; por ejemplo, si están considerando vincular entidades con ubicación a datos históricos del clima.

    • Sí, justo así es como pensamos usarlo. También se pueden integrar datos públicos como clima/noticias para añadir más contexto a la línea de tiempo.
  • Me parece una idea realmente genial, pero si tengo que ejecutar Google Takeout cada vez que agregue datos, sería demasiado engorroso. Si tuviera actualizaciones en tiempo real, de verdad podría convertirse en una app matadora.
    Documentación de la fuente de datos de Google Photos

    • Es un obstáculo enorme. Intenté automatizarlo con Chrome headless, pero en la práctica hay que autenticarse físicamente cada 10 minutos, así que la automatización es prácticamente imposible. En general hago un Takeout una o dos veces al año y creo que, incluso si no usas Timelinize, conviene hacerlo para tener respaldados tus datos.
  • Me interesa muchísimo este servicio, (y también gracias por Caddy).
    Tengo curiosidad por cómo manejan las actualizaciones/modificaciones de datos. Si importas datos semiestructurados y, por ejemplo, un evento "jog" luego se subdivide en "light run" e "intense walk" aplicándose retroactivamente a datos anteriores, entonces tienes que volver a importar datos duplicados. En las FAQ solo se menciona la importación aditiva, pero como la estructura de datos cambia constantemente, no quiero sufrir con actualizaciones SQL, así que por ahora llevo control de versiones con plain text y git. Eso también está bueno porque una persona puede seguir los cambios de sus datos como si viajara en el tiempo.

    • Gracias por apreciar Caddy.
      En las opciones avanzadas de importación puedes especificar la unicidad de los elementos y cómo determinar duplicados. También puedes elegir directamente cómo tratar los duplicados. Por defecto se omiten, pero también se pueden actualizar, y puedes indicar qué valores deben tener prioridad. Eso sí, las actualizaciones son consultas UPDATE, así que no se pueden revertir. También experimenté con un esquema puramente aditivo, pero en la práctica era difícil por la complejidad, el riesgo de errores y el peor rendimiento de exploración. Aun así, sigo dándole vueltas a la posibilidad, porque tiene mucho potencial poder recorrer la línea de tiempo viendo cómo va cambiando a lo largo del tiempo.
  • Este servicio sería perfecto si se combinara con registros financieros (por ejemplo, datos bancarios) y con un LLM local.
    No sé exactamente cómo se usaría, pero podría analizar consumos de tarjeta en función del historial de mensajes, ubicación, etc., clasificarlos en el presupuesto y mostrar distintas estadísticas.
    Si además tienes un vehículo conectado a la nube, como Tesla, podría clasificar automáticamente kilómetros de viaje de trabajo/personales, gastos, etc., y servir también para fines fiscales.
    También podría ser útil para recomendar experiencias locales que aún no has probado y para la gestión del tiempo.

    • ledger.txt (plaintextaccounting.org), integración con g-cal y Home Assistant ya están confluyendo en algo parecido.

    • A mí también me comentan esto muy seguido y tengo muchas expectativas con la integración de información financiera y LLM. Me parece algo realmente interesante y útil, y también viable como asistente personal desde la perspectiva de la privacidad de los datos.

  • El proyecto está genial. Si no te convence el nombre timelinize, me pregunto si has considerado algún nombre en latín; por ejemplo, una opción como Temperi.
    Y también estaría bueno que hubiera soporte para FindPenguins, que tiene datos variados como GPS, fotos y texto.

    • Ya me han propuesto nombres en latín varias veces, pero la mayoría eran difíciles de escribir y de pronunciar, así que no representaban una mejora realmente significativa. También me parece que FindPenguins es un buen servicio. Yo no lo uso, pero cualquiera puede implementar y agregar directamente una fuente de datos.
  • Últimamente me frustra que las herramientas de historial de ubicación se estén volviendo cada vez más cerradas, y creo que este proyecto es un avance importante para recuperar la verdadera propiedad sobre los datos. Definitivamente lo voy a probar.

    • Totalmente de acuerdo, yo pienso lo mismo.
  • Se ve realmente genial y parece el tipo de servicio que he querido inconscientemente.
    Tengo algunas ideas:

  • Como la sensibilidad de la información personal es alta, en lo posible debería self-hostearse en casa detrás de una VPN como Wireguard o Tailscale, y me gustaría que fuera una aplicación con cifrado E2E como Ente.io.

  • Sería bueno separar el índice del backend de almacenamiento para que cosas como las fotos puedan quedarse donde ya están (Immich, Ente.io, etc.) y evitar almacenamiento duplicado. Como Timelinize no puede reemplazar por completo todos los tipos de datos, me gustaría usarlo en paralelo con apps especializadas que manejan mejor cada tipo de dato.

  • También sería mucho mejor si soportara importación del historial de viajes de Polarsteps y respaldos de Signal.
    GitHub de la herramienta de respaldos de Signal

    • Gracias por las buenas preguntas y comentarios.
    • Sí, la idea es que funcione en una computadora personal en casa.
    • Si se hospeda afuera, el dueño del hardware real siempre puede tener acceso físico en cualquier momento, así que creo que es difícil lograr privacidad real. También pensé en algo como una base de datos cifrada en tiempo real, pero al final igual hay que descifrar durante el procesamiento, así que lógicamente parece imposible o extremadamente engorroso y frágil. Puede que me equivoque, pero no veo una alternativa realmente práctica.
    • En cuanto a la duplicación de datos, la intención es precisamente copiar esos datos dentro de esta línea de tiempo. También cumple una función de respaldo y garantiza consistencia, confiabilidad y disponibilidad. Otras apps como PhotoStructure solo indexan y no crean copias de los datos, así que sería difícil obligar a Timelinize a seguir ese enfoque.
    • Me gustaría soportar muchas fuentes de datos, incluyendo Polarsteps y Signal. Los datos de Signal cambian de formato con frecuencia y además están cifrados, así que fue difícil importarlos de forma confiable. Pero cualquiera puede agregar nuevas fuentes directamente y, a futuro, también planeo preparar una API de importación. La idea es permitir que scripts o apps externas hagan push de datos a Timelinize.
    • En última instancia, el objetivo de Timelinize es obtener y conservar realmente los datos, así que creo que cierto nivel de duplicación vale la pena. El almacenamiento además es cada vez más barato y, aunque fuera caro, seguiría valiendo la pena.