Strava & Python – Introduction

Après avoir pu accéder à mes données sur Strava au travers de l’API pour ensuite les exploiter dans PowerBI, j’ai voulu aller plus loin en utilisant Python ce qui ouvre la porte à plus de possibilités, dont :

  • L’accès à l’ensemble de ses données propres, mais aussi celles d’autres athlètes (followers, contacts, club, groupe d’entrainement)
  • L’exploitation de ces données de manière simple (totaux, moyennes, …) mais aussi beaucoup plus avancée, soit au niveau des données elles-même (HRV) ou bien de leur analyse (Machine Learning). On peut par exemple en analysant une séance progressive en course à pied ou en vélo (home-trainer), déterminer de manière assez fine son seuil SV1 (allure ou puissance) et je reviendrai dessus dans un autre article.

Je vais résumer ici le résultat de mes recherches sur le sujet pour vous faire gagner du temps si vous aussi vous êtes intéressé par le sujet

Alors comment procéder ?

Quelques règles de bases à connaitre

Les limitations de l’API

Si Strava fournit une API bien documentée (voir ici : https://developers.strava.com/), celle-ci a aussi quelques limitations :

Elle ne permet que d’accèder à ses données propres par défaut comme on peut le voir ci-dessous (extrait de https://developers.strava.com/docs/getting-started/)

Si vous cherchez uniquement à exploiter vos données, cela ne posera aucun problème. Mais si vous chercher à accèder aux données d’autres personnes, vous ne pourrez pas le faire, à moins de développer une application qui leur demande leur assentiment (un peu comme quand on autoriser Garmin ou autre à accèder à ses données sur Strava)

De plus, l’utilisation de l’API est limité par application, par tranche de 15 minutes et par jour (100 requêtes par 15′ et 1000 par jour). Cela ne devrait pas poser de problèmes à la majorité des personnes, mais il suffit d’exécuter à plusieurs reprises un script faisant plusieurs appels pour se retrouver bloqué 🤔

Quelles alternatives à l’API !?

KISS … ou Keep It Simple and Stupid ! Si je peux accèder aux activités des mes contacts et voir leur détail sur le web dans un browser, pourquoi est ce que je ne pourrai pas y accèder de la même manière mais au travers d’un script !?

C’est ce que permet de faire le module Python BeautifulSoup, qui permet d’extraire les informations recherchées d’une page web. Il devient ainsi possible de lister les activités d’un athlète comme via un browser, de parser celle-ci et d’en extraire les ID d’activité.

Petit exemple :

  • Retrouver l’athlète ID de la personne en se connectant sur sa page de profil Strava. Ici 174003 pour moi (ci-dessous) via la page Strava Cyclist Profile | Pat Oche

On verra ensuite comment exploiter ces 2 méthodes en Pyhton pour automatiser les choses, et les combiner selon les cas pour exploiter au mieux les données disponibles sur Strava 😉

You may also like...

2 Responses

  1. Casto says:

    Je cherche à automatiser ma gestion des kudos sous strava.
    Voilà J adore donner des kudos a tous les gens que je suis. Mais comme J ai moins de temps, et que cela prends du temps, manuellement. Je souhaiterai l automatiser en python ?

    D après vous est ce possible ?
    Merci d avance

    • Patrick TOUTAIN says:

      Hello,
      je voulais faire qq chose de similaire mais je n’ai pas trouvé comment faire via les API 🙁
      Désolé

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.