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.