Course

Créer une nouvelle session de traitement vidéo

post

Ce point de terminaison permet à un administrateur (ou sous-admin) d'uploader un fichier vidéo pour traitement et de créer une nouvelle ressource "session" au nom d'un autre utilisateur. Le serveur renverra un session_id qui peut être utilisé pour interroger ou récupérer les détails/résultats de la session.

Corps de la requête (Multipart/Form-Data)

Vous devez fournir les champs suivants :

  • user_id (string, obligatoire) : L'ID de l'utilisateur pour lequel cette session est créée. - video (fichier, obligatoire) : Le fichier vidéo brut à traiter. - session_name (string, optionnel) : Un nom/lisible pour la session. - incline_degree (string ou nombre, optionnel) : Valeur numérique représentant le degré d'inclinaison. - body_joint_angles (array[string], optionnel) : Liste de noms d'articulations séparés par des virgules (ex. 'coude, genou, cheville'). Par défaut ['all'] si non fourni.

Structure de la réponse

En cas de succès (HTTP 200), la réponse est un objet JSON avec : - session_id (string) : Un identifiant unique pour la session créée. - title (string) : Le titre de la session (par défaut une valeur générique si session_name n'est pas fourni).

Workflow

  1. POST une requête multipart/form-data contenant les champs obligatoires user_id et video, plus les champs optionnels. 2. Fournir un token API-KEY valide dans l'en-tête Authorization. 3. L'appelant doit avoir des privilèges admin pour créer une session pour un autre utilisateur. 4. Si réussi, le serveur répond avec session_id et title. 5. En cas d'erreur (champs manquants, permissions insuffisantes), un objet JSON avec une clé error est retourné.

Exemple cURL : ```bash curl -X POST \

 -H 'Content-Type: multipart/form-data' \
 -H 'Authorization: API-KEY <VOTRE_TOKEN_ADMIN>' \
 -F 'user_id=someUserId123' \
 -F 'video=@/chemin/vers/video.mp4' \
 -F 'session_name=Session Personnalisée' \
 -F 'incline_degree=5' \
 -F 'body_joint_angles=coude, genou, cheville' \
 https://<backend-link>/running/management/sessions/
Autorisations
AuthorizationstringRequis

Entrez votre token Bearer (authentification Firebase) au format : Bearer

Corps
user_idstringRequis

Obligatoire. L'ID de l'utilisateur pour qui cette session est créée (champ de formulaire : texte).

videostringRequis

Obligatoire. Le fichier vidéo brut à traiter (type de champ : fichier).

session_namestringOptionnel

Optionnel. Un nom descriptif pour la session (champ de formulaire : texte).

incline_degreestringOptionnel

Optionnel. Une chaîne numérique indiquant le degré d'inclinaison (champ de formulaire : texte).

body_joint_anglesarrayOptionnel

Optionnel. Une liste de noms d'articulations séparés par des virgules. Valeurs disponibles : 'cheville', 'genou', 'coude', 'hanche', 'épaule'. Exemple : cheville,genou,hanche

Réponses
200

Session de traitement vidéo créée avec succès (HTTP 200).

application/json
session_idstringRequis

L'identifiant unique de la session créée.

titlestringRequis

Le titre de la session (valeur par défaut si non fourni).

post
/running/sessions/

Récupérer les métriques totales

get

Calcule et retourne les métriques moyennes pour toutes les sessions de course de l'utilisateur admin, ainsi que les métriques détaillées et le timestamp de création de la session la plus récente.

Structure de la réponse (HTTP 200)

La réponse est un objet JSON avec la structure suivante :

  • avg_metrics (object) : Contient les valeurs moyennes calculées sur toutes les sessions.

    • avg_speed (number) : Vitesse moyenne.

    • avg_power (number) : Puissance moyenne.

    • avg_cadence (number) : Cadence moyenne.

    • avg_flight_time (number) : Temps de vol moyen.

  • last_session_metrics (object) : Contient les métriques détaillées de la session la plus récente.

    • speed (object) : Métriques de vitesse avec :

      • avg (number) : Vitesse moyenne.

      • min (number) : Vitesse minimale.

      • max (number) : Vitesse maximale.

    • normalized_power (object) : Métriques de puissance normalisée avec clés avg, min, max.

    • cadence (object) : Métriques de cadence avec clés avg, min, max.

    • total_distance (number) : Distance totale.

    • power (object) : Métriques de puissance avec clés avg, min, max.

    • stride_time (object) : Métriques de temps de foulée avec clés avg, min, max.

    • total_time (number) : Temps total de la session.

    • contact_time (object) : Métriques de temps de contact avec clés avg, min, max.

    • contact_angle (object) : Métriques d'angle de contact avec clés avg, min, max.

    • incline (object) : Métriques d'inclinaison avec clés avg, min, max.

    • pace (object) : Métriques d'allure avec clés avg, min, max.

    • stride_length (object) : Métriques de longueur de foulée avec clés avg, min, max.

    • rbalance (object) : Métriques d'équilibre avec clés avg, min, max.

    • flight_time (object) : Métriques de temps de vol avec clés avg, min, max.

    • footstrike (string) : Le type de footstrike (ex. 'midfoot').

  • last_session_created_at (object) : Le timestamp de création de la session la plus récente, contenant :

    • date (string) : Date au format DD/MM/YYYY.

    • time (string) : Heure au format HH:MM AM/PM.

Gestion des erreurs

  • 400 Mauvaise requête : Paramètres invalides (ex. UID admin invalide). - 401 Non autorisé : Token d'accès manquant ou invalide. - 403 Interdit : Privilèges insuffisants pour récupérer les métriques totales. - 404 Non trouvé : Aucune session trouvée ou métriques indisponibles. - 500 Erreur interne du serveur : Une erreur inattendue s'est produite.

Sécurité

Un token API-KEY valide doit être fourni dans l'en-tête Authorization.

Autorisations
AuthorizationstringRequis

Entrez votre token Bearer (authentification Firebase) au format : Bearer

Réponses
200

Métriques totales récupérées avec succès.

application/json
get
/running/sessions/metrics/total/

Récupérer les détails d'une session de course

get

Récupère les informations détaillées pour une session de course spécifique identifiée par le session_id.

Paramètre de chemin

  • session_id (string, obligatoire) : L'identifiant unique de la session à récupérer.

Paramètre de requête

  • demo (boolean, optionnel) : Définir à true pour récupérer les données de démo au lieu d'une session réelle.

Structure de la réponse

En cas de succès (HTTP 200), la réponse est un objet JSON contenant les champs suivants :

  • metrics (object) : Un dictionnaire de tableaux de métriques (ex. vitesse, cadence, distance). Chaque clé correspond à un tableau de nombres. - angles (object) : Un dictionnaire de tableaux d'angles (ex. lhip_angle, rsho_angle). Chaque clé correspond à un tableau de nombres. - all_timestamps (array[number]) : Une liste de timestamps (en secondes) pour les données de la session. - analyzed_video_url (string, URI) : L'URL de la vidéo analysée (avec superposition de keypoints). - video_url (string, URI) : L'URL de la vidéo originale uploadée. - segments (integer) : Le nombre de segments traités. - created_at (object) : Un objet contenant :

    • date (string) : La date de création au format DD/MM/YYYY.

    • time (string) : L'heure de création au format HH:MM AM/PM.

  • user_name (string) : Le nom de l'utilisateur associé à la session. - activity (string) : Le type d'activité (ex. 'Course'). - title (string) : Le titre de la session. - calculated_metrics (object) : Un dictionnaire contenant des statistiques calculées (moyennes, minima, maxima) pour diverses métriques. - summary (string) : Un résumé textuel optionnel de la session.

Gestion des erreurs

  • 400 Mauvaise requête : Paramètres invalides (ex. UID admin invalide). - 401 Non autorisé : Token d'accès manquant ou invalide. - 403 Interdit : L'utilisateur n'a pas les privilèges suffisants pour accéder à la session. - 404 Non trouvé : La session n'existe pas ou n'est pas valide pour l'activité spécifiée. - 500 Erreur interne du serveur : Une erreur inattendue côté serveur.

Sécurité

Un token API-KEY valide doit être fourni dans l'en-tête Authorization.

Autorisations
AuthorizationstringRequis

Entrez votre token Bearer (authentification Firebase) au format : Bearer

Paramètres de chemin
session_idanyRequis
Paramètres de requête
demobooleanOptionnel

Définir à true pour récupérer les données de démo au lieu d'une session réelle.

Réponses
200

Données de session récupérées avec succès.

application/json
all_timestampsnumber[]Requis

Liste de timestamps associés à la session.

analyzed_video_urlstring · uriOptionnel

L'URL publique de la vidéo analysée.

video_urlstring · uriOptionnel

L'URL publique de la vidéo originale.

segmentsintegerOptionnel

Le nombre de segments traités.

user_namestringOptionnel

Le nom de l'utilisateur associé à cette session.

activitystringRequis

Le type d'activité (ex. 'Course').

titlestringOptionnel

Le titre de la session.

summarystringOptionnel

Un résumé optionnel de la session.

get
/running/sessions/{session_id}/

Exporter les données d'une session de course

get

Récupère les données détaillées d'une session pour exporter une session de course spécifique identifiée par le session_id.

Paramètre de chemin

  • session_id (string, obligatoire) : L'identifiant unique de la session à exporter.

Paramètre de requête

  • demo (booléen, optionnel) : Définir à true pour récupérer une session de démonstration pré-générée au lieu d'une réelle.

Structure de la réponse (HTTP 200)

La réponse est un objet JSON qui inclut :

  • metrics (object) : Un dictionnaire où chaque clé représente une métrique (ex : 'speed', 'cadence') et sa valeur est un tableau de nombres.

  • keypoints (object) : Un dictionnaire où chaque clé représente un point clé (ex : 'lknev', 'ltoev') et sa valeur est un tableau de nombres.

  • angles (object) : Un dictionnaire où chaque clé représente un angle (ex : 'lelb_angle', 'lhip_angle') et sa valeur est un tableau de nombres.

  • all_timestamps (array[number]) : Un tableau d'horodatages (en secondes) correspondant aux points de données.

  • contact (array[booléen]) : Un tableau de valeurs booléennes indiquant le statut de contact.

  • activity (string) : Le type d'activité (ex : 'Running').

Gestion des erreurs

  • 400 Bad Request : Les paramètres de la requête sont invalides (ex : un UID admin invalide).

  • 401 Unauthorized : Le token d'accès est manquant ou invalide.

  • 403 Forbidden : L'utilisateur n'a pas les privilèges suffisants pour accéder à ces données de session.

  • 404 Not Found : La session demandée n'existe pas ou n'est pas valide pour l'activité.

  • 500 Internal Server Error : Une erreur serveur inattendue est survenue.

Sécurité

Un token API-KEY valide doit être fourni dans l'en-tête Authorization.

Autorisations
AuthorizationstringRequis

Entrez votre token Bearer (authentification Firebase) au format : Bearer

Paramètres de chemin
session_idanyRequis
Paramètres de requête
demobooleanOptionnel

Définir à true pour récupérer une session de démonstration pré-générée au lieu d'une réelle.

Réponses
200

Données de session exportées avec succès.

application/json
all_timestampsnumber[]Requis

Liste d'horodatages (en secondes).

contactboolean[]Requis

Tableau indiquant le statut de contact (true/false).

activitystringRequis

Le type d'activité (ex : 'Running').

get
/running/sessions/{session_id}/export/

Rapport d'analyse de la forme de course

post

Récupère un rapport détaillé d'analyse de la forme de course pour une session donnée. Ce point de terminaison nécessite que l'utilisateur ait un token admin valide et un abonnement actif (Pro, Premium, Enterprise ou Standard).

Requête

  • Paramètre de chemin :

    • session_id (string, obligatoire) : L'identifiant unique de la session pour laquelle le rapport d'analyse est demandé.

  • Paramètre de requête :

    • demo (booléen, optionnel) : Définir à true pour récupérer un rapport d'analyse de démonstration pré-généré au lieu d'un réel.

Structure de la réponse (HTTP 200)

La réponse est un objet JSON contenant :

  • metrics (object) : Valeurs moyennes par foulée telles que speed, balance, cadence, contact_angle, eversion_velocity, knee_flexion, posture_angle, ankle_angle, com_oscillation, stride_angle, mean_h.

  • images (object) : Trois instantanés représentatifs avec les clés contact_angle, push_angle, knee_ankle ; chaque valeur est une URL publique d'image.

  • user_info (object) : Informations sur l'utilisateur ayant soumis la session, incluant :

    • age (integer)

    • gender (string)

    • height (number, cm)

    • weight (number, kg)

    • email (string, email)

    • uid, display_name, admin_name, last_session, phone, brand, shoeModel, shoeSize, leg_length, ycom (divers types)

  • form_comments (object, optionnel) : Recommandations GenAI pour les blocs contact_angle, hip_extension_at_foot_takeoff, foot_contact_angle_and_torso_lean.

  • date (string) : La date de génération du rapport au format JJ/MM/AAAA.

Gestion des erreurs

  • 400 Bad Request : Token ou paramètres invalides.

  • 401 Unauthorized : Le token est manquant ou invalide.

  • 403 Forbidden : Un accès admin est requis.

  • 404 Not Found : La session n'a pas été trouvée ou l'utilisateur n'a pas un plan de paiement valide.

  • 500 Internal Server Error : Une erreur inattendue est survenue sur le serveur.

Sécurité

Un token API-KEY valide doit être fourni dans l'en-tête Authorization.

Autorisations
AuthorizationstringRequis

Entrez votre token Bearer (authentification Firebase) au format : Bearer

Paramètres de chemin
session_idanyRequis
Paramètres de requête
demobooleanOptionnel

Définir à true pour récupérer un rapport d'analyse de démonstration pré-généré au lieu d'un réel.

Réponses
200

Rapport d'analyse de la forme de course récupéré avec succès.

application/json
datestringRequis

Date du rapport au format JJ/MM/AAAA.

Example: 13/07/2025
post
/running/sessions/{session_id}/form-analysis/

Créer des fils de discussion pour les recommandations de forme

post

Génère des fils de discussion GenAI produisant des commentaires personnalisés pour chaque bloc d'analyse de la forme de course (angle de contact, extension de hanche au décollage du pied, angle de contact du pied & inclinaison du torse) plus une recommandation globale. Retourne un mappage des clés de bloc aux IDs de fils.

Requête

  • session_id (paramètre de chemin, obligatoire) : L'ID de la session de course pour laquelle générer les fils de discussion.

Réponse (201)

Un objet JSON mappant chaque clé de bloc à son ID de fil GenAI correspondant :

  • contact_angle : ID de fil pour le bloc angle de contact.

  • push_angle : ID de fil pour le bloc angle de poussée.

  • knee_ankle : ID de fil pour le bloc genou-cheville.

  • general_form_recommendation : ID de fil pour la recommandation globale de forme.

Gestion des erreurs

  • 403 Forbidden : L'utilisateur n'a pas de plan de paiement valide.

  • 404 Not Found : Session non trouvée ou erreur de récupération.

  • 500 Internal Server Error : Erreur serveur inattendue.

Sécurité

Requiert un token API-KEY valide ou une clé API dans les en-têtes de la requête.

Autorisations
AuthorizationstringRequis

Entrez votre token Bearer (authentification Firebase) au format : Bearer

Paramètres de chemin
session_idanyRequis
Réponses
post
/running/sessions/{session_id}/form-recommendations/

Rapport d'analyse de la foulée

post

Récupère un rapport détaillé d'analyse de la foulée pour une session donnée. Ce point de terminaison nécessite que l'utilisateur ait un token admin valide et un abonnement actif (Pro, Premium, Enterprise ou Standard).

Requête

  • Paramètre de chemin :

    • session_id (string, obligatoire) : L'identifiant unique de la session pour laquelle le rapport d'analyse est demandé.

  • Paramètre de requête :

    • demo (booléen, optionnel) : Définir à true pour récupérer un rapport d'analyse de démonstration pré-généré au lieu d'un réel.

Structure de la réponse (HTTP 200)

La réponse est un objet JSON contenant :

  • left (object) et right (object) : Chaque côté contient des données d'analyse de foulée avec les champs suivants :

    • peak_time (number) : La valeur de temps de pic identifiée dans l'analyse.

    • initiator (string) : Indique quel côté a initié le cycle de foulée.

    • phases (object) : Un objet avec des phases nommées (ex : flight, takeoff, mid_stance, strike, new_strike), où chaque phase contient :

      • video_frame (integer) : L'image vidéo correspondante.

      • graph_phase (integer) : La valeur de phase utilisée dans les graphiques.

      • video_phase (integer) : La valeur de phase dans la timeline vidéo.

      • image_url (string, URI) : URL publique de l'image instantanée de la phase.

    • angles (object) : Mesures d'angle pour les articulations comme posture_angle, lhip_angle, etc. Chaque inclut :

      • current (array[number]) : Valeurs d'angle de l'image courante.

      • next (array[number]) : Valeurs prédites suivantes.

      • std_dev (array[number]) : Valeurs d'écart type.

    • graph_timestamps (array[number]) : Horodatages (ms) alignés avec les données graphiques.

  • user_info (object) : Informations sur l'utilisateur ayant soumis la session, incluant :

    • age (integer)

    • gender (string)

    • height (number, cm)

    • weight (number, kg)

    • email (string, email)

    • uid, display_name, admin_name, last_session, session_count, phone, brand, shoeModel, shoeSize, leg_length, ycom (divers types)

  • report_comments (object, optionnel) : Suggestions ou notes pour les angles comme right_posture_angle, left_knee_angle, etc.

  • date (string) : La date de génération du rapport au format JJ/MM/AAAA.

Gestion des erreurs

  • 400 Bad Request : Token ou paramètres invalides.

  • 401 Unauthorized : Le token est manquant ou invalide.

  • 403 Forbidden : Un accès admin est requis.

  • 404 Not Found : La session n'a pas été trouvée ou l'utilisateur n'a pas un plan de paiement valide.

  • 500 Internal Server Error : Une erreur inattendue est survenue sur le serveur.

Sécurité

Un token API-KEY valide doit être fourni dans l'en-tête Authorization.

Autorisations
AuthorizationstringRequis

Entrez votre token Bearer (authentification Firebase) au format : Bearer

Paramètres de chemin
session_idanyRequis
Paramètres de requête
demobooleanOptionnel

Définir à true pour récupérer un rapport d'analyse de démonstration pré-généré au lieu d'un réel.

Réponses
200

Rapport d'analyse de la foulée récupéré avec succès.

application/json
report_commentsobjectOptionnel

(Optionnel) Recommandations pour les angles articulaires.

datestringRequis

La date du rapport d'analyse de la foulée au format JJ/MM/AAAA.

post
/running/sessions/{session_id}/gait-analysis/

Créer des fils de recommandations d'analyse de la foulée

post

Créer des fils de recommandations d'analyse de la foulée

Ce point de terminaison génère des fils de recommandations personnalisés pour une session spécifique basée sur l'analyse de la foulée de course de l'utilisateur. Chaque fil propose des insights biomécaniques, des conseils de posture et des recommandations d'entraînement pour différents angles articulaires. Exemple d'utilisation : Envoyez une requête POST à /running/sessions/{session_id}/recommendation/{session_id} est l'identifiant unique de la session. Paramètres :

  • session_id (string, obligatoire) : L'ID unique de la session pour laquelle générer les fils. Structure de réponse (HTTP 201) : Retourne un objet JSON associant chaque métrique d'angle de foulée à un ID de fil, incluant les côtés gauche et droit :

  • left_posture_angle, left_hip_angle, left_knee_angle, left_ankle_angle

  • right_posture_angle, right_hip_angle, right_knee_angle, right_ankle_angle Notes :

  • La session doit être valide et correspondre à un rapport d'analyse de foulée. - Nécessite un plan de paiement actif (Pro, Premium, Enterprise ou Standard).

Autorisations
AuthorizationstringRequis

Entrez votre token Bearer (authentification Firebase) au format : Bearer

Paramètres de chemin
session_idanyRequis
Réponses
post
/running/sessions/{session_id}/recommendation/

Obtenir le résumé d'une session de course

get

Récupère un résumé détaillé d'une session de course en utilisant son identifiant unique session_id. Ce résumé inclut à la fois des métriques de performance quantitatives et un résumé qualitatif généré par GenAI si disponible. Instructions d'utilisation :

  1. Envoyez une requête GET avec le session_id dans le paramètre de chemin. 2. Le point de terminaison retournera un objet JSON incluant diverses sections du résumé de session.

Paramètre de requête

  • demo (booléen, optionnel) : Définissez à true pour récupérer un résumé de démonstration pré-généré pour cette session de course. Structure de réponse :

  • summary_text (objet, optionnel) : Contient un commentaire généré par GenAI si disponible.

    • balance_and_posture : Commentaires sur l'équilibre et la posture de l'athlète.

    • performance_metrics : Commentaires sur les performances globales.

    • running_mechanics : Observations sur la mécanique de course.

    • final_summary : Une évaluation globale résumant la performance de la session.

    • distance_and_duration : Commentaires sur la distance totale et la durée.

  • performance_metrics (objet) : Métriques de performance agrégées.

    • vitesse (en m/s)

    • allure (en min/km)

    • cadence (pas/min)

    • puissance (en Watts)

    • puissance_normalisée (en W/kg)

  • running_mechanics (objet) : Données de mécanique de course.

    • temps_contact (en secondes)

    • temps_vol (en secondes)

    • temps_foulée (en secondes)

    • longueur_foulée (en mètres)

    • attaque_pied : Type d'attaque du pied (ex : 'avant-pied').

  • balance_and_posture (objet) : Métriques d'équilibre et posture.

    • balance : Scores d'équilibre.

    • angle_contact : Angles de contact (en degrés).

  • distance_and_duration (objet) :

    • distance_totale (en mètres)

    • temps_total (en secondes)

  • user_information (objet) : Informations détaillées de l'utilisateur.

    • ycom, poids, âge, taille, etc.

  • session_date (string) : Date de la session (ex : 'DD/MM/YYYY'). Note : Le champ summary_text n'est présent que si des commentaires générés par GenAI ont été enregistrés pour la session.

Autorisations
AuthorizationstringRequis

Entrez votre token Bearer (authentification Firebase) au format : Bearer

Paramètres de chemin
session_idanyRequis
Paramètres de requête
demobooleanOptionnel

Définissez à true pour récupérer un résumé de démonstration pré-généré.

Réponses
200

Résumé de session récupéré avec succès

application/json
session_datestringRequis

Date de la session formatée (ex : '07/04/2025')

get
/running/sessions/{session_id}/summary/

Générer un résumé pour une session de course

post

Déclenche la génération de fils de résumé pour une session de course. Ce point de terminaison crée des fils de résumé séparés pour chaque bloc basé sur les métriques de session, y compris les performances, la mécanique de course, l'équilibre/posture, et la distance/durée, ainsi qu'un résumé global. Retourne un objet JSON contenant les IDs de fils pour chaque bloc.

Autorisations
AuthorizationstringRequis

Entrez votre token Bearer (authentification Firebase) au format : Bearer

Paramètres de chemin
session_idanyRequis
Paramètres de requête
measurement_systemstring · enumOptionnel

Système de mesure : 'métrique' ou 'impérial'

Valeurs possibles:
Réponses
post
/running/sessions/{session_id}/summary/

Mis à jour

Ce contenu vous a-t-il été utile ?