13 points par GN⁺ 2025-10-08 | 1 commentaires | Partager sur WhatsApp
  • Un outil d’archivage chronologique local qui rassemble toutes les données personnelles — photos, vidéos, messages, historique de localisation, contenus de réseaux sociaux, contacts, etc. — et les organise dans l’ordre du temps
  • Importe les données de nombreux services comme Google Takeout, iCloud, Facebook, Twitter/X, Strava ou Instagram, puis les organise automatiquement dans une base de données SQLite
  • Propose des fonctions d’exploration visuelle comme la carte, la vue 3D, la vue unifiée des conversations et la reconnaissance d’entités, en reliant entre elles les relations entre messages, photos, lieux et autres types de données
  • Toutes les données sont stockées sur le PC personnel plutôt que dans le cloud, sans risque de fuite vers l’extérieur, et les fichiers d’origine peuvent être parcourus tels quels
  • Il s’agit d’un projet de chronique numérique personnelle qui permet de reconstruire visuellement sa vie et peut s’étendre au partage de données familiales ou à la préservation d’un héritage numérique

Vue d’ensemble

  • Timelinize est un outil local d’intégration de données qui rassemble les différentes traces numériques d’une personne dans une frise chronologique unifiée
  • Il collecte photos, vidéos, conversations, réseaux sociaux, historiques de localisation et contacts pour les reconstituer autour du temps, de l’espace et des personnes
  • Il permet de documenter finement le quotidien de soi et de sa famille et d’explorer des histoires plus complètes et plus profondes qu’avec une simple photothèque ou une application de journal
  • Il fonctionne dans le navigateur et reste accessible hors ligne
  • Sans remplacer les applications et services déjà utilisés, il fournit une copie de sauvegarde permanente et personnelle de toutes les données sur lesquelles l’utilisateur travaille
  • Timelinize fonctionne en arrière-plan de l’environnement existant et joue le rôle d’une archive de fond qui n’interrompt pas la vie de l’utilisateur

Fonctionnalités principales

  • Prise en charge de nombreuses sources de données
    • Importe directement les formats d’export de données GDPR de Google Takeout, Apple iCloud, Facebook, Instagram, Twitter/X, Strava, etc.
    • Reconnaît et organise automatiquement les archives .zip ou .tar sans avoir besoin de les décompresser
  • Interface d’exploration visuelle
    • Vue chronologique : affiche tous les éléments de données regroupés par date
    • Vue carte 3D : visualise les déplacements au fil du temps à partir des données de localisation
    • Diagramme en bulles : analyse les types de données les plus fréquemment produits selon les moments de la journée
  • Structure de données fondée sur les entités
    • Organise les relations entre données autour d’entités comme des personnes, des animaux ou des organisations
    • Reconnaît automatiquement une même personne ou un même groupe, avec possibilité de fusion manuelle si nécessaire
  • Unification des conversations
    • Relie les messages issus de différentes plateformes dans une seule vue Conversations
    • Regroupe par exemple Facebook Messenger et les SMS pour reconstituer le contexte des échanges
  • Intégration de galerie
    • Affiche non seulement la photothèque, mais aussi les images partagées dans les messages, les publications sur les réseaux sociaux ou les mèmes
    • Permet l’exploration par média ou par thème à l’aide de divers filtres

Architecture et fonctionnement

  • Les données sont organisées sur le disque local dans une structure de dossiers par date, tandis que les métadonnées sont stockées dans une base SQLite
  • Fournit une API HTTP et une CLI de manière symétrique, ce qui permet d’exécuter les mêmes commandes depuis le web ou la ligne de commande
  • Utilise un schéma basé sur JSON pour convertir automatiquement les arguments de commande et les champs de formulaires HTTP
  • Propose un environnement Dev Container permettant de mettre en place un environnement de développement basé sur Docker

Philosophie et vision du projet

  • L’objectif central du projet est la préservation autonome et la libération des données personnelles
    • Il est conçu pour que les individus gèrent eux-mêmes leurs données, face au risque de disparition des services cloud centralisés
    • En visualisant la vie personnelle sous une forme quantifiée, il peut évoluer vers une autobiographie numérique ou une archive de l’histoire familiale
  • À long terme, le projet avance l’idéal de fusionner les frises chronologiques individuelles pour construire « la frise chronologique de toute l’humanité »

Développement et installation

  • Les dernières releases sont disponibles pour Linux, macOS et Windows
  • Développement possible via Dev Container dans un environnement VSCode + Docker
  • Le projet est distribué sous licence AGPL, ce qui limite les réutilisations commerciales dérivées

Historique du projet

  • Lancé en 2013 sous la forme du projet personnel « Photobak », puis étendu en outil de sauvegarde pour Google Photos, Facebook et Twitter
  • Il a ensuite évolué avec la prise en charge multi-utilisateurs et l’intégration des données de localisation pour devenir l’actuel Timelinize
  • Son créateur est aussi le développeur du serveur Caddy et poursuit ce projet comme une expérimentation de long terme autour de la souveraineté des données personnelles

1 commentaires

 
GN⁺ 2025-10-08
Avis Hacker News
  • Je pense que c’est un excellent service, mais j’aimerais qu’il s’étende bien davantage, au point de remplacer aussi Nextcloud et Zotero, en enregistrant tous les documents et livres que j’ajoute, ouvre ou modifie, toutes les notes que j’écris, ainsi que les onglets de navigateur que j’ai ouverts, les copier/coller, voire même les frappes clavier, afin de pouvoir répondre immédiatement à des questions comme : « Qu’est-ce que je faisais exactement il y a deux semaines aujourd’hui ? » Tout cela devrait être consultable par recherche, et il faudrait absolument que ce soit auto-hébergeable ; l’objectif n’est pas d’en faire un logiciel de surveillance. Quand je vois des gens utiliser un système de liens manuels dans Obsidian, ça me fait penser que la dimension temporelle est plus importante : si je cherche quelque chose sur Wikipédia aujourd’hui, il y a de fortes chances qu’à ce moment-là je consulte aussi des informations similaires ou fasse des choses liées, et cela a beaucoup de sens.

    • Il me semble que Microsoft avait autrefois un produit censé aider à se rappeler sur quoi on travaillait.

    • Je n’arrive pas à retrouver l’adresse exacte, mais ça me rappelle l’idée d’un système informatique où tous les objets existent de façon purement temporelle, et où l’on n’y accède autrement que par des filtres ; j’aimerais bien le retrouver.

    • Remplacer Nextcloud et Zotero, conserver toutes les notes, ainsi que l’historique des onglets de navigateur, du presse-papiers et même des frappes clavier, cela pourrait vraiment être utile à long terme. En revanche, jusqu’aux onglets du navigateur et aux frappes clavier, ça me paraît trop détaillé. Je n’ai pas besoin d’aller jusque-là, mais je pense qu’il faut tenter de documenter et de comprendre sa propre vie à travers les données, et cette application est justement née de cette réflexion.

  • mholt est connu pour avoir créé le serveur web Caddy, ce qui rend Timelinize encore plus intéressant à mes yeux.

  • J’ai précisément besoin d’un produit comme celui-ci depuis dix ans, donc j’enregistre mes données GPS toutes les 2 à 3 minutes ; je trouve ça extrêmement intéressant.

    • Je suis curieux de savoir comment tu enregistres ton historique GPS.
  • Timelinize est un système sensible aux entités, donc même sans données de coordonnées il peut afficher sur une carte des informations proches dans le temps par entité. Cela fait prendre conscience de la quantité de mes données que Google peut relier à partir d’Android/Chrome/Gmail/Maps/Timeline. Je me demande aussi comment les données météo vont réellement être utilisées, par exemple s’il est prévu de relier des entités avec position à des données météo historiques.

    • Oui, c’est bien prévu comme ça. On peut aussi ajouter d’autres données publiques, comme la météo ou l’actualité, pour apporter davantage de contexte à la timeline.
  • Je trouve l’idée vraiment géniale, mais s’il faut lancer Google Takeout à chaque ajout de données, c’est beaucoup trop contraignant. Si les mises à jour pouvaient se faire en temps réel, ce serait un vrai killer app, donc c’est un peu dommage.
    Documentation de la source de données Google Photos

    • C’est un obstacle vraiment important. J’ai essayé d’automatiser ça avec Chrome en mode headless, mais en pratique il faut s’authentifier physiquement toutes les 10 minutes, donc l’automatisation est en réalité impossible. En général, je fais un Takeout une ou deux fois par an, et même indépendamment de Timelinize, je pense que c’est une bonne idée de le faire comme sauvegarde de ses données.
  • Ce service m’intéresse énormément, (et merci aussi pour Caddy).
    Je me demande comment sont gérées les mises à jour et modifications des données. Lorsqu’on importe des données semi-structurées et que, par exemple, un événement « jog » est ensuite subdivisé en « light run » et « intense walk », avec application rétroactive aux anciennes données, il faut réimporter des données en doublon. La FAQ ne parle que d’imports additifs ; comme la structure des données évolue constamment, je n’ai pas envie de souffrir avec des mises à jour SQL, donc pour l’instant je versionne tout en texte brut avec git. Cela permet bien à chacun de suivre l’évolution de ses données comme s’il voyageait dans le temps.

    • Merci d’aimer Caddy.
      Dans les options d’import avancées, on peut définir l’unicité des éléments et la façon de déterminer les doublons. On peut aussi choisir soi-même le traitement des doublons. Par défaut, ils sont ignorés, mais on peut aussi faire des mises à jour et indiquer quelle valeur doit être prioritaire. En revanche, les mises à jour sont des requêtes UPDATE, donc elles ne sont pas réversibles. J’ai aussi expérimenté un schéma purement additif, mais en pratique c’était difficile à cause de la complexité, du risque d’erreur et de la baisse des performances de navigation. Cela dit, comme il est possible d’envisager une timeline qu’on parcourt en suivant ses transformations dans le temps, je continue à réfléchir à cette possibilité.
  • Ce service serait parfait combiné à des historiques financiers (par exemple des données bancaires) et à un LLM local.
    Je ne sais pas exactement comment l’utiliser, mais à partir des historiques de messages, de localisation, etc., on pourrait analyser les paiements par carte, les classer dans un budget et afficher diverses statistiques.
    Avec une voiture connectée au cloud comme une Tesla, on pourrait aussi catégoriser automatiquement les déplacements professionnels et personnels, les frais, etc., ce qui serait utile à des fins fiscales.
    Cela pourrait aussi servir à recommander des expériences locales qu’on n’a pas encore essayées, ou à mieux gérer son temps.

    • ledger.txt(plaintextaccounting.org), l’intégration g-cal et Home Assistant convergent tous un peu dans cette direction.

    • J’entends aussi très souvent ce genre de choses, et j’ai beaucoup d’attentes concernant l’intégration des informations financières et des LLM. Je pense que ce serait vraiment intéressant, utile, et pertinent aussi du point de vue de la protection des données personnelles, comme assistant personnel.

  • Le projet est superbe ; si le nom timelinize ne vous plaît pas, vous êtes-vous demandé s’il fallait aussi envisager un nom latin ? Par exemple, Temperi pourrait être un candidat.
    Et ce serait bien d’avoir aussi la prise en charge de FindPenguins, qui contient divers types de données comme le GPS, des photos, du texte, etc.

    • On m’a proposé plusieurs fois des noms latins, mais ils sont souvent difficiles à orthographier et à prononcer, donc ce n’était pas vraiment une amélioration significative. Je pense aussi que FindPenguins est un bon service ; je ne l’utilise pas personnellement, mais n’importe qui peut implémenter sa propre source de données et l’ajouter.
  • J’étais frustré de voir les outils d’historique de localisation devenir de plus en plus fermés récemment, et je pense que ce projet représente une avancée importante pour reprendre une véritable propriété de ses données. Je vais absolument l’essayer.

    • Je suis d’accord, je pense pareil.
  • Ça a l’air vraiment génial, et d’un service que je désirais inconsciemment depuis longtemps.
    J’ai quelques idées :

  • étant donné la sensibilité élevée des données personnelles, il faudrait l’auto-héberger soi-même à la maison autant que possible derrière un VPN comme Wireguard ou Tailscale, et j’aimerais que ce soit une application chiffrée de bout en bout comme Ente.io

  • ce serait bien de séparer l’index et le backend de stockage, afin de pouvoir laisser les photos, etc., là où elles sont déjà (Immich, Ente.io, etc.) et éviter les doublons ; Timelinize ne pourra pas remplacer tous les types de données, donc j’aimerais l’utiliser en parallèle d’applications spécialisées qui gèrent le mieux chaque type de données

  • ce serait bien mieux s’il prenait aussi en charge l’import de l’historique de voyage Polarsteps et des sauvegardes Signal
    Outil de sauvegarde Signal sur GitHub

    • Merci pour ces bonnes questions et remarques.
    • le modèle prévu est bien celui d’un fonctionnement sur un ordinateur personnel à domicile
    • si c’est hébergé ailleurs, le propriétaire réel du matériel peut toujours y avoir physiquement accès, donc je pense qu’il est difficile d’obtenir une vraie confidentialité ; j’ai aussi envisagé des bases de données chiffrées en temps réel, mais comme il faut de toute façon déchiffrer pendant le traitement, cela me semble logiquement impossible ou extrêmement contraignant et fragile ; je peux me tromper, mais je n’ai pas l’impression qu’il y ait d’alternative concrète
    • concernant la duplication des données, le but est précisément de copier intentionnellement les données dans cette timeline ; cela sert aussi de sauvegarde et garantit cohérence, fiabilité et disponibilité. D’autres applications comme PhotoStructure ne font que de l’indexation sans créer de copie des données, mais il est difficile que Timelinize impose cette approche
    • j’aimerais prendre en charge diverses sources de données, y compris Polarsteps et Signal. Les données Signal changent souvent de format et sont chiffrées, ce qui a rendu un import fiable difficile. Mais n’importe qui peut ajouter une nouvelle source lui-même, et à l’avenir une API d’import est aussi prévue. L’idée est de permettre également à des scripts ou applications externes d’envoyer des données vers Timelinize
    • au final, puisque l’objectif de Timelinize est de réellement sécuriser la possession des données, je pense qu’un certain degré de duplication est acceptable ; le stockage devient toujours moins cher, et même s’il coûte encore, cela en vaut la peine.