4.4 KiB
title: Statistics for Strava created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, fitness, strava, statistics, python, flask, dashboard] confidence: high contested: false sources: [https://selfh.st/apps/?tag=fitness, https://github.com/rc4c/Strava-statistics]
Statistics for Strava 📊
Générateur de statistiques et heatmaps à partir des activités Strava. Outil Python/Flask qui produit des visualisations riches impossibles à obtenir dans l'interface officielle Strava.
| Métadonnée | Valeur |
|---|---|
| Site web | https://statistics-for-strava.kamp.cat/ |
| GitHub | https://github.com/rc4c/Strava-statistics |
| License | MIT |
| Langage | Python (Flask) |
| Étoiles | ⭐118 (selfh.st rank) |
| Dernière MAJ | 2026-05-15 |
| Catégorie | cat-fitness |
Description
Statistics for Strava est une application web qui se connecte à votre compte Strava via l'API officielle et génère des statistiques avancées sur vos activités sportives : heatmaps géographiques, graphiques d'effort, analyses par période, comparaisons annuelles, et bien plus. C'est l'outil idéal pour les cyclistes et coureurs qui veulent aller au-delà des statistiques de base de Strava.
Fonctionnalités phares :
- Heatmaps interactives (toutes activités ou par sport)
- Statistiques annuelles : totaux,Records personnels, progression
- Visualisations effort/semaine, jour/heure préférés
- Distributions par jour de la semaine, par mois
- Graphiques d'élévation et dénivelé cumulé
- Support multi-sport : course, vélo, natation, randonnée, etc.
- Export PDF des rapports
- Mode clair/sombre
L'architecture est un backend Flask léger qui orchestre les appels à l'API Strava (avec cache), un worker de génération de heatmaps (basé sur Folium/Leaflet), et un frontend statique servi directement. Pas de base de données externe : tout repose sur des fichiers JSON cachés localement, ce qui simplifie énormément la sauvegarde.
Installation
Via Docker (recommandé)
services:
strava-stats:
build: https://github.com/rc4c/Strava-statistics.git
restart: unless-stopped
environment:
STRAVA_CLIENT_ID: ${STRAVA_CLIENT_ID}
STRAVA_CLIENT_SECRET: ${STRAVA_CLIENT_SECRET}
STRAVA_REFRESH_TOKEN: ${STRAVA_REFRESH_TOKEN}
FLASK_SECRET_KEY: ${FLASK_SECRET_KEY:-changez-moi}
TZ: Europe/Paris
volumes:
- strava_cache:/app/cache
ports:
- "8080:8080"
volumes:
strava_cache:
Étape préliminaire obligatoire
- Créer une app Strava sur https://www.strava.com/settings/api
- Noter Client ID et Client Secret
- Générer un refresh token via le flow OAuth (voir doc du projet)
- Renseigner ces variables dans
.env
Installation manuelle
git clone https://github.com/rc4c/Strava-statistics.git
cd Strava-statistics
pip install -r requirements.txt
cp .env.example .env # éditer avec vos credentials Strava
python main.py
Configuration
STRAVA_CLIENT_ID/STRAVA_CLIENT_SECRET: credentials de l'app StravaSTRAVA_REFRESH_TOKEN: token longue durée pour éviter de réauthentifierFLASK_SECRET_KEY: secret Flask pour les sessions- Le cache local permet d'éviter de saturer les quotas de l'API Strava (200 req / 15 min)
Alternatives
Open source :
- app-endurain : clone Strava complet (pas que stats)
- app-fittrackee : tracker indépendant sans Strava
- Strava Local Heatmap (variante plus simple) : juste la heatmap
- VeloViewer (web) : payant, stats pro
Propriétaire :
- Strava Premium : dashboards améliorés mais limités
- VeloViewer : ~25€/an, très riche pour cyclistes
Sécurité
- Les credentials Strava sont sensibles : ne jamais commit le
.env - Le
STRAVA_REFRESH_TOKENdonne accès à toutes vos activités Strava : chiffrez le volume - Limiter l'accès réseau au service (pas d'exposition publique large)
- Mettre à jour régulièrement : Strava fait évoluer son API
Ressources
- GitHub : https://github.com/rc4c/Strava-statistics
- Démo : https://statistics-for-strava.kamp.cat/
- API Strava : https://developers.strava.com/
- selfh.st : https://selfh.st/apps/?tag=fitness
Pages Liées
- cat-fitness
- recettes-docker-compose
- app-endurain — alternative Strava-like
- app-fittrackee — tracker d'activités