Saut
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 (file, obligatoire) : Le fichier vidéo brut à traiter. - session_name (string, optionnel) : Un nom/lisible pour la session. - exercise (string, obligatoire) : Le nom de l'exercice. Choisissez parmi : 'Saut avec contre-mouvement' ou 'Saut en contrebas'. - body_joint_angles (array[string], optionnel) : Une liste séparée par des virgules de noms d'articulations (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 de repli si session_name n'est pas fourni).
Workflow
POST une requête multipart/form-data contenant les champs obligatoires
user_idetvideo, plus les champs optionnels. 2. Fournir un token API-KEY valide dans l'en-têteAuthorization. 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 avecsession_idettitle. 5. En cas d'erreur (champs manquants, permissions insuffisantes), un objet JSON avec une cléerrorest retourné.
Exemple cURL (authentification Firebase) :
-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 'exercise=Saut avec contre-mouvement' \
-F 'body_joint_angles=genou, cheville' \
https://<backend-link>/jumping/management/sessions/Exemple cURL (API KEY) :
Entrez votre token Bearer (authentification Firebase) au format : Bearer
Obligatoire. L'ID de l'utilisateur pour qui cette session est créée (champ texte).
Obligatoire. Le fichier vidéo brut à traiter (type de champ : fichier).
Optionnel. Un nom descriptif pour la session (champ texte).
Obligatoire. Le nom de l'exercice. Choisissez parmi : 'Saut avec contre-mouvement' ou 'Saut en contrebas'.
Optionnel. Une liste séparée par des virgules de noms d'articulations. Valeurs disponibles : 'cheville', 'genou', 'coude', 'hanche', 'épaule'. Exemple : cheville,genou,hanche
Session de traitement vidéo créée avec succès (HTTP 200).
L'identifiant unique de la session créée.
Le titre de la session (valeur par défaut si non fourni).
Requête incorrecte - Peut être dû à un user_id manquant, une video manquante ou des données de formulaire invalides.
Non autorisé - Token d'accès manquant ou invalide.
Interdit - L'utilisateur n'a pas la permission admin pour créer des sessions pour d'autres.
Non trouvé - Indique des problèmes de logique métier ou des limitations de ressources (ex. limite de sessions).
Erreur interne du serveur - Une erreur inattendue s'est produite.
POST /jumping/sessions/ HTTP/1.1
Host: api.aikynetix.app
Authorization: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 96
"user_id='text'&video='text'&session_name='text'&exercise='text'&body_joint_angles=[]"{
"session_id": "text",
"title": "text"
}Récupère des informations détaillées sur une session de saut spécifique en utilisant son identifiant unique session_id. Optionnellement, définissez ?demo=true pour récupérer la session de démonstration prédéfinie pour l'activité de saut. Exemple d'utilisation : Envoyez une requête GET avec le session_id comme paramètre de chemin pour obtenir les détails de la session. Paramètres : - session_id (string, obligatoire) : L'identifiant unique de la session dont les données sont demandées. - demo (booléen, optionnel) : Définissez à true pour retourner la session de démonstration pour le saut. Type de données de réponse : - 200 OK : Un objet JSON avec la structure suivante :
angles(object) : Contient des tableaux de différentes mesures d'angles.whole_report_metrics(object) : Contient des tableaux de différentes métriques.all_timestamps(array of numbers) : Tableau des horodatages pour chaque frame.analyzed_video_url(string, URI) : URL de la vidéo analysée.video_url(string, URI) : URL de la vidéo originale.created_at(object) : Contient la date et l'heure de création de la session.exercise(string) : Type d'exercice analysé dans la session.user_name(string) : Nom de l'utilisateur associé à la session.activity(string) : Type d'activité analysée dans la session.title(string) : Titre de la session.end_frames(array of integers) : Tableau des numéros de frame où chaque segment se termine.metrics(object) : Contient diverses métriques de performance comme des tableaux de nombres.
Entrez votre token Bearer (authentification Firebase) au format : Bearer
Définissez à true pour récupérer la session de démonstration au lieu de la réelle.
Données de session récupérées avec succès.
Tableau des horodatages pour chaque frame.
URL de la vidéo analysée.
URL de la vidéo originale.
Type d'exercice analysé dans la session.
Nom de l'utilisateur associé à la session.
Type d'activité analysée dans la session.
Titre de la session.
Tableau des numéros de frame où chaque segment se termine.
Tableau de tous les numéros de frame où les segments se terminent.
Requête incorrecte - session_id invalide fourni.
Non autorisé - Token d'accès manquant ou invalide.
Interdit - L'utilisateur manque des permissions nécessaires.
Non trouvé - Aucune donnée de session trouvée pour le session_id fourni.
Erreur interne du serveur - Une erreur inattendue s'est produite.
GET /jumping/sessions/{session_id}/ HTTP/1.1
Host: api.aikynetix.app
Authorization: YOUR_API_KEY
Accept: */*
{
"angles": {
"hip_intersection_angle": [
1
],
"ank_angle": [
1
],
"rkne_angle": [
1
],
"lkne_angle": [
1
],
"kne_angle": [
1
],
"rank_angle": [
1
],
"lank_angle": [
1
]
},
"whole_report_metrics": {
"hipy": [
1
],
"grf": [
1
],
"vhipy": [
1
],
"toey": [
1
],
"ahipy": [
1
],
"vtoey": [
1
]
},
"all_timestamps": [
1
],
"analyzed_video_url": "https://example.com",
"video_url": "https://example.com",
"created_at": {
"date": "2026-01-01",
"time": "00:00:00"
},
"exercise": "text",
"user_name": "text",
"activity": "text",
"title": "text",
"end_frames": [
1
],
"all_end_frames": [
1
],
"metrics": {
"ANY_ADDITIONAL_PROPERTY": [
1
]
},
"all_metrics": {
"ANY_ADDITIONAL_PROPERTY": [
1
]
}
}Récupère des informations détaillées sur une session de saut spécifique en utilisant son identifiant unique session_id. Optionnellement, définissez ?demo=true pour récupérer la session de démonstration prédéfinie pour l'activité de saut. Note : Ce point de terminaison inclut les points de repère dans la réponse. Structure de la réponse : - 200 OK : Un objet JSON avec la structure suivante :
keypoints(object) : Contient des tableaux de points de repère.angles(object) : Contient des tableaux de différentes mesures d'angles.all_timestamps(array of numbers) : Tableau des horodatages pour chaque frame.analyzed_video_url(string, URI) : URL de la vidéo analysée.video_url(string, URI) : URL de la vidéo originale.created_at(object) : Contient la date et l'heure de création de la session.user_name(string) : Nom de l'utilisateur associé à la session.activity(string) : Type d'activité analysée.title(string) : Titre de la session.end_frames(array of integers) : Tableau des numéros de frame où chaque segment se termine.metrics(object) : Contient diverses métriques de performance comme des tableaux de nombres.
Entrez votre token Bearer (authentification Firebase) au format : Bearer
Définissez à true pour récupérer la session de démonstration au lieu de la réelle.
Données de session récupérées avec succès.
Tableau des horodatages pour chaque frame.
URL de la vidéo analysée.
URL de la vidéo originale.
Nom de l'utilisateur associé à la session.
Type d'activité analysée dans la session.
Titre de la session.
Tableau des numéros de frame où chaque segment se termine.
Requête incorrecte - session_id invalide fourni.
Non autorisé - Token d'accès manquant ou invalide.
Interdit - L'utilisateur manque des permissions nécessaires.
Non trouvé - Aucune donnée de session trouvée pour le session_id fourni.
Erreur interne du serveur - Une erreur inattendue s'est produite.
GET /jumping/sessions/{session_id}/export/ HTTP/1.1
Host: api.aikynetix.app
Authorization: YOUR_API_KEY
Accept: */*
{
"keypoints": {
"lknev": [
1
],
"ltoev": [
1
],
"relbv": [
1
],
"rtoey": [
1
],
"headv": [
1
],
"rearv": [
1
],
"rshox": [
1
],
"etc": [
1
]
},
"angles": {
"hip_intersection_angle": [
1
],
"ank_angle": [
1
],
"rkne_angle": [
1
],
"lkne_angle": [
1
],
"kne_angle": [
1
],
"rank_angle": [
1
],
"lank_angle": [
1
]
},
"all_timestamps": [
1
],
"analyzed_video_url": "https://example.com",
"video_url": "https://example.com",
"created_at": {
"date": "2026-01-01",
"time": "00:00:00"
},
"user_name": "text",
"activity": "text",
"title": "text",
"end_frames": [
1
],
"metrics": {
"ANY_ADDITIONAL_PROPERTY": [
1
]
}
}Récupérer le rapport d'analyse de saut vertical
Ce point de terminaison permet aux utilisateurs de récupérer un rapport d'analyse complet pour une session de saut vertical spécifique. Le rapport inclut des données graphiques, des détails sur les phases, des informations sur l'utilisateur et des commentaires supplémentaires pour fournir une compréhension approfondie de la performance de l'utilisateur pendant la session. Exemple d'utilisation : Envoyez une requête POST à /jumping/{session_id}/jump-analysis/ où {session_id} est l'identifiant unique de la session. Paramètres : - session_id (string, obligatoire) : L'identifiant unique de la session pour laquelle le rapport est demandé. - demo (booléen, optionnel) : Définissez à true pour récupérer le rapport de démonstration prédéfini au lieu de la session réelle. Structure de la réponse : Lors d'une requête réussie, le point de terminaison retourne un objet JSON contenant les sections suivantes : 1. Exercise : Le nom de l'exercice effectué pendant la session. 2. Graph Data : Représentations visuelles de diverses métriques collectées pendant la session. 3. Frame Information : Détails sur les frames vidéo impliquées dans la session. 4. Phase Data : Informations sur les différentes phases de l'activité de saut vertical. 5. User Information : Détails personnels de l'utilisateur. 6. Session Date : La date à laquelle la session a eu lieu. 7. Comments : Retours et commentaires basés sur la performance de la session.
Entrez votre token Bearer (authentification Firebase) au format : Bearer
Définissez à true pour récupérer le rapport de démonstration.
Rapport d'analyse de saut récupéré avec succès.
Quel exercice ce rapport concerne.
Numéro de frame minimum dans la vidéo.
Numéro de frame maximum dans la vidéo.
Date de la session (JJ/MM/AAAA).
Requête incorrecte - session_id invalide fourni.
Non autorisé - Token d'accès manquant ou invalide.
Interdit - L'utilisateur manque des permissions nécessaires.
Non trouvé - Aucune donnée de session trouvée pour le session_id fourni.
Erreur interne du serveur - Une erreur inattendue s'est produite.
POST /jumping/sessions/{session_id}/jump-analysis/ HTTP/1.1
Host: api.aikynetix.app
Authorization: YOUR_API_KEY
Accept: */*
{
"exercise": "Saut avec contre-mouvement",
"graph_data": {
"hip_height": {
"ANY_ADDITIONAL_PROPERTY": {
"times": [
1
],
"data": [
1
]
}
},
"hip_speed": {
"ANY_ADDITIONAL_PROPERTY": {
"times": [
1
],
"data": [
1
]
}
},
"hip_trajectory": {
"ANY_ADDITIONAL_PROPERTY": {
"times": [
1
],
"data": [
1
]
}
},
"hip_velocity": {
"ANY_ADDITIONAL_PROPERTY": {
"times": [
1
],
"data": [
1
]
}
},
"toe_trajectory": {
"ANY_ADDITIONAL_PROPERTY": {
"times": [
1
],
"data": [
1
]
}
},
"grf": {
"ANY_ADDITIONAL_PROPERTY": {
"times": [
1
],
"data": [
1
]
}
},
"power": {
"ANY_ADDITIONAL_PROPERTY": {
"times": [
1
],
"data": [
1
]
}
},
"kne_angle": {
"ANY_ADDITIONAL_PROPERTY": {
"times": [
1
],
"data": [
1
]
}
},
"ank_angle": {
"ANY_ADDITIONAL_PROPERTY": {
"times": [
1
],
"data": [
1
]
}
},
"hip_angle": {
"ANY_ADDITIONAL_PROPERTY": {
"times": [
1
],
"data": [
1
]
}
}
},
"min_frame": 1,
"max_frame": 1,
"phase_data": {
"start_of_preparation": {
"video_frame": 1,
"graph_phase": 1,
"image_url": "https://example.com"
},
"braking": {
"video_frame": 1,
"graph_phase": 1,
"image_url": "https://example.com"
},
"zero_velocity": {
"video_frame": 1,
"graph_phase": 1,
"image_url": "https://example.com"
},
"takeoff": {
"video_frame": 1,
"graph_phase": 1,
"image_url": "https://example.com"
},
"peak": {
"video_frame": 1,
"graph_phase": 1,
"image_url": "https://example.com"
},
"landing": {
"video_frame": 1,
"graph_phase": 1,
"image_url": "https://example.com"
},
"damping": {
"video_frame": 1,
"graph_phase": 1,
"image_url": "https://example.com"
},
"recuperation": {
"video_frame": 1,
"graph_phase": 1,
"image_url": "https://example.com"
}
},
"user_information": {
"name": "text",
"age": 1,
"weight": 1,
"height": 1,
"gender": "text"
},
"session_date": "2026-01-01",
"comments": {
"power": "text",
"grf": "text"
}
}Créer des threads de recommandations
Ce point de terminaison génère des threads de recommandations personnalisés basés sur le rapport d'analyse de saut vertical de l'utilisateur pour une session spécifique. Ces threads peuvent être utilisés pour fournir des conseils personnalisés, des suggestions d'entraînement ou des insights de performance à l'utilisateur. Exemple d'utilisation : Envoyez une requête POST à /jumping/sessions/{session_id}/recommendation/ où {session_id} est l'identifiant unique de la session. Paramètres : - session_id (string, obligatoire) : L'identifiant unique de la session pour laquelle les threads de recommandations doivent être créés. Structure de la réponse : Lors d'une requête réussie, le point de terminaison retourne un objet JSON contenant les IDs de thread mappés à leurs métriques respectives. Exemple de réponse pour Saut avec contre-mouvement : json { "hip_height": "thread_ybIdbAtHLSnHM4BnH551X4fT", "hip_speed": "thread_MLGE8nAmLYyW3adwIViKiVpL", "grf": "thread_rBIUL25oD3VLtBaPRDLunFsu", "power": "thread_UGCg6dZzsRI1YCpSgCf0dgT4", "kne_angle": "thread_rEiSblZuq3bzPHRBNXd2etJ6", "ank_angle": "thread_QLrCfbBuBBKpmPFFnBkJfcln", "hip_angle": "thread_CMWV9HCt85XlpVSORSk4MmCG" } Exemple de réponse pour Saut en contrebas : json { "hip_trajectory": "thread_ABC123", "hip_velocity": "thread_DEF456", "toe_trajectory": "thread_GHI789" "grf": "thread_JKL012", "power": "thread_MNO345", "kne_angle": "thread_PQR678", "ank_angle": "thread_STU901", "hip_angle": "thread_VWX234" } Note : - Assurez-vous que le session_id fourni est valide et correspond à une session existante dans le système. - L'utilisateur doit avoir un plan de paiement actif pour accéder à cette fonctionnalité.
Entrez votre token Bearer (authentification Firebase) au format : Bearer
Threads créés avec succès.
Mapping des noms de métriques aux IDs de thread de recommandation.
ID de thread pour les recommandations de hauteur de hanche.
ID de thread pour les recommandations de vitesse de hanche.
ID de thread pour les recommandations de trajectoire de hanche.
ID de thread pour les recommandations de vitesse de hanche.
ID de thread pour les recommandations de trajectoire d'orteil.
ID de thread pour les recommandations de force de réaction au sol (GRF).
ID de thread pour les recommandations de puissance.
ID de thread pour les recommandations d'angle de genou.
ID de thread pour les recommandations d'angle de cheville.
ID de thread pour les recommandations d'angle de hanche.
Requête incorrecte - session_id invalide fourni.
Non autorisé - Token d'accès manquant ou invalide.
Interdit - L'utilisateur manque des permissions nécessaires.
Non trouvé - Aucune donnée de session trouvée pour le session_id fourni.
Erreur interne du serveur - Une erreur inattendue s'est produite.
POST /jumping/sessions/{session_id}/recommendation/ HTTP/1.1
Host: api.aikynetix.app
Authorization: YOUR_API_KEY
Accept: */*
{
"hip_height": "text",
"hip_speed": "text",
"hip_trajectory": "text",
"hip_velocity": "text",
"toe_trajectory": "text",
"grf": "text",
"power": "text",
"kne_angle": "text",
"ank_angle": "text",
"hip_angle": "text"
}Récupérer le résumé d'une session
Ce point de terminaison fournit un résumé d'une session spécifique, incluant des métriques clés de performance, des données utilisateur et des détails de création de session. Exemple d'utilisation : Envoyez une requête GET à /jumping/{session_id}/summary/ où {session_id} est l'identifiant unique de la session. Paramètres de requête : - demo (booléen, optionnel) : Définissez à true pour récupérer un résumé de démonstration pré-généré au lieu d'une session réelle. Structure de la réponse : - exercise : Type d'exercice résumé. - metrics : Contient diverses mesures de la session. - summary : Aperçu descriptif de la performance. - user_info : Informations basiques sur l'utilisateur. - session_date : Date d'enregistrement de la session. Note : Assurez-vous que le session_id existe. Si demo=true est utilisé, le système retourne le résumé de session de démonstration pré-enregistré.
Entrez votre token Bearer (authentification Firebase) au format : Bearer
Définissez à true pour récupérer le résumé de session de démonstration au lieu d'un réel.
Résumé de session récupéré avec succès.
Objet contenant les détails du résumé de session.
Type d'exercice résumé.
Requête incorrecte - session_id invalide fourni.
Non autorisé - Token d'accès manquant ou invalide.
Interdit - L'utilisateur manque des permissions nécessaires.
Non trouvé - Aucune donnée de session trouvée pour le session_id fourni.
Erreur interne du serveur - Une erreur inattendue s'est produite.
GET /jumping/sessions/{session_id}/summary/ HTTP/1.1
Host: api.aikynetix.app
Authorization: YOUR_API_KEY
Accept: */*
{
"exercise": "text",
"metrics": {
"ANY_ADDITIONAL_PROPERTY": [
1
]
},
"summary": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"user_info": {
"name": "text",
"age": 1,
"weight": 1,
"height": 1,
"gender": "text"
},
"created_at": {
"date": "2026-01-01",
"time": "00:00:00"
}
}Générer des threads de résumé
Ce point de terminaison génère des threads de résumé pour une session donnée basés sur des blocs de résumé prédéfinis et des métriques. Exemple d'utilisation : Envoyez une requête POST à /jumping/sessions/{session_id}/summary/ où {session_id} est l'identifiant unique de la session. Paramètres : - session_id (string, obligatoire) : L'identifiant unique de la session pour laquelle les threads de résumé doivent être générés. - measurement_system (string, optionnel) : Système de mesure : 'metric' ou 'imperial'. Par défaut 'metric'. Structure de la réponse : Lors d'une requête réussie, le point de terminaison retourne un objet JSON mappant chaque nom de bloc à son ID de thread correspondant. Exemple de réponse pour Saut avec contre-mouvement : json { "jump_flight": "thread_thread_id", "jump_forces": "thread_thread_id", "control_and_stability": "thread_thread_id", "efficiency": "thread_thread_id", "final_summary": "thread_thread_id", } Exemple de réponse pour Saut en contrebas : json { "contact_and_jump_structure": "thread_thread_id", "performance_and_efficiency": "thread_thread_id", "force_metrics": "thread_thread_id", "final_summary": "thread_thread_id", } Notes : - Assurez-vous que le session_id fourni est valide et correspond à une session existante dans le système. - L'utilisateur doit avoir les permissions nécessaires pour générer des threads de résumé.
Entrez votre token Bearer (authentification Firebase) au format : Bearer
Système de mesure : 'metric' ou 'imperial'
Threads de résumé générés avec succès.
Dictionnaire mappant les noms de blocs à leurs IDs de thread correspondants, incluant un thread de résumé final.
ID de thread correspondant au nom de bloc.
Requête incorrecte - session_id invalide fourni.
Non autorisé - Token d'accès manquant ou invalide.
Interdit - L'utilisateur manque des permissions nécessaires.
Non trouvé - Aucune donnée de session trouvée pour le session_id fourni.
Erreur interne du serveur - Une erreur inattendue s'est produite.
POST /jumping/sessions/{session_id}/summary/ HTTP/1.1
Host: api.aikynetix.app
Authorization: YOUR_API_KEY
Accept: */*
{
"ANY_ADDITIONAL_PROPERTY": "text"
}Mis à jour
Ce contenu vous a-t-il été utile ?