geeks.fr
Outils

Garmin Health Data : reprendre ses années de sommeil et de VFC dans une base SQLite

Trois commandes Python et tout votre historique Garmin Connect atterrit dans un fichier SQLite chez vous. Licence Apache 2.0, aucune infrastructure, et un détail qui mérite d'être dit : l'outil doit se déguiser pour passer Cloudflare.

Echo 20 août 2026 3 min de lecture

TL;DR : à installer si vous portez une Garmin et que trois commandes ne vous font pas peur. À oublier si vous attendez un tableau de bord : ce que vous obtenez est un fichier de base de données, pas une application.

Ce que ça fait

Garmin Connect garde tout, et ne vous rend presque rien. L’export officiel est un archivage global qui arrive par courriel, en vrac, quand il veut bien arriver. garmin-health-data prend le problème par l’autre bout : il se connecte à votre compte, aspire l’historique, et le range dans un fichier SQLite posé chez vous.

Ce qu’il récupère va bien au-delà des séances : le sommeil, éclaté sur sept tables, la variabilité cardiaque, le stress, la body battery, la fréquence cardiaque et la respiration en continu, la VO2 max, les métriques d’entraînement, les prédictions de course, le suivi de cycle, et les fichiers d’activité bruts en FIT ou TCX.

Ce que ça coûte à installer

Rien, ou presque, et c’est là sa vraie différence avec les alternatives auto-hébergées :

pip install garmin-health-data
garmin auth
garmin extract

Python 3.10 et SQLite 3.35 au minimum. Pas de conteneur, pas de PostgreSQL, pas de fichier d’environnement à remplir. Si vous avez déjà tenté un carnet de santé auto-hébergé et reculé devant Docker Compose, la marche est nettement plus basse ici.

Vos identifiants ne partent nulle part : ils servent une fois à obtenir des jetons OAuth, conservés dans votre dossier personnel. La commande garmin auth marque une pause de trente à quarante-cinq secondes, volontaire, pour ne pas se faire fermer la porte.

Le détail que personne ne lit

Garmin n’expose aucune API publique pour ça. L’outil se connecte donc au service comme le ferait un navigateur, et va jusqu’à imiter son empreinte TLS, via curl_cffi, pour passer la protection Cloudflare. Ça marche, c’est documenté, et ça reste un contournement : le jour où Garmin change quelque chose, l’outil casse. Un projet de 226 commits et une centaine d’étoiles suivra, ou pas.

L’autre chose à savoir tient en une ligne du schéma : l’extraction du cycle menstruel embarque les notes libres, la libido et l’activité sexuelle. C’est fidèle à ce que l’application stocke, et ce n’est pas anodin quand la base finit sur un disque partagé ou dans une sauvegarde en ligne.

Notre avis

À prendre si vous voulez interroger vos propres données en SQL plutôt que de faire défiler des graphiques, ou simplement les mettre à l’abri avant de changer de marque. La licence est Apache 2.0, donc une vraie licence libre, sans clause maison qui interdit l’usage professionnel : ça mérite d’être signalé, ce n’est pas la norme dans ce coin du logiciel.

Si vous préférez un chemin plus balisé, GarminDB fait à peu près la même chose depuis bien plus longtemps, avec des carnets Jupyter fournis. Et une fois la base constituée, pensez à la sauvegarder : plusieurs années de sommeil et de séances dans un seul fichier, ça se perd d’un coup. Notre outil pour savoir combien de temps prendra la sauvegarde donne la réponse avant que vous ne lanciez la copie.

garmin-health-data sur GitHub · le paquet sur PyPI

#auto-hébergement #santé #Garmin #SQLite #vie privée #outil du jour
Ajouter geeks.fr à mes sources préférées Un réglage Google, une fois, pour nous retrouver plus souvent dans vos résultats.
Écrit par Echo Rédac IA de geeks.fr Relu et vérifié par Cyril Verglas Fondateur et directeur de la publication

Continuer la lecture