Gewichtheben

Erstellt eine neue Video-Verarbeitungssitzung

post

Dieser Endpunkt ermöglicht es einem Administrator (oder Sub-Admin), eine Videodatei zur Verarbeitung hochzuladen und eine neue "Sitzungs"-Ressource im Namen eines anderen Benutzers zu erstellen. Der Server gibt eine session_id zurück, die zum Abfragen oder Abrufen der Sitzungsdetails/ergebnisse verwendet werden kann.

Anfragekörper (Multipart/Form-Data)

Folgende Felder müssen angegeben werden:

  • user_id (string, erforderlich): Die ID des Benutzers, für den diese Sitzung erstellt wird. - video (file, erforderlich): Die zu verarbeitende Videodatei. - session_name (string, optional): Ein lesbarer Name/Titel für die Sitzung. - exercise_name (string, erforderlich): Der Name der Übung. Wählen Sie eine der folgenden Optionen: 'snatch', 'clean' oder 'clean_and_jerk'.

  • barbell_mass (string, optional): Die Masse der verwendeten Hantel (numerische Zeichenkette). Standardwert: 100 kg (oder 220 lb), falls nicht angegeben.

  • body_joint_angles (array[string], optional): Eine kommagetrennte Liste von Gelenknamen (z.B. 'elbow, knee, ankle'). Standardwert: ['all'], falls nicht angegeben.

Antwortstruktur

Bei Erfolg (HTTP 200) ist die Antwort ein JSON-Objekt mit: - session_id (string): Eine eindeutige ID für die erstellte Sitzung. - title (string): Der Sitzungstitel (Standardwert, falls session_name nicht angegeben wurde).

Ablauf

  1. POST-Anfrage mit multipart/form-data, die die erforderlichen Felder user_id und video sowie optionale Felder enthält. 2. Ein gültiger API-KEY-Token muss im Authorization-Header angegeben werden. 3. Der Aufrufer benötigt Administratorrechte, um eine Sitzung für einen anderen Benutzer zu erstellen. 4. Bei Erfolg antwortet der Server mit session_id und title. 5. Bei einem Fehler (z.B. fehlende Felder, fehlende Berechtigungen) wird ein JSON-Objekt mit einem error-Schlüssel zurückgegeben.

Beispiel cURL:

     -H 'Content-Type: multipart/form-data' \
     -H 'Authorization: API-KEY <YOUR_ADMIN_TOKEN>' \
     -F 'user_id=someUserId123' \
     -F 'video=@/path/to/video.mp4' \
     -F 'session_name=Custom Session' \
     -F 'exercise_name=clean' \
     -F 'barbell_mass=30' \
     -F 'body_joint_angles=elbow, knee, ankle' \
     https://<backend-link>/weightlifting/management/sessions/
Autorisierungen
AuthorizationstringErforderlich

Geben Sie Ihren Bearer-Token (Firebase Auth) im Format ein: Bearer

Body
user_idstringErforderlich

Erforderlich. Die ID des Benutzers, für den diese Sitzung erstellt wird (Formularfeld: Text).

videostringErforderlich

Erforderlich. Die zu verarbeitende Videodatei (Formularfeldtyp: Datei).

session_namestringOptional

Optional. Ein beschreibender Name für die Sitzung (Formularfeld: Text).

exercise_namestringErforderlich

Erforderlich. Der Name der Übung. Wählen Sie eine der folgenden Optionen: "snatch", "clean" oder "clean_and_jerk".

barbell_massstringOptional

Optional. Die Masse der Hantel (numerische Zeichenkette). Standardwert: 100 kg (oder 220 lb), falls nicht angegeben.

body_joint_anglesarrayOptional

Optional. Eine kommagetrennte Liste von Gelenknamen. Verfügbare Werte: "ankle", "knee", "elbow", "hip", "shoulder". Beispiel: ankle,knee,hip

Antworten
200

Video-Verarbeitungssitzung erfolgreich erstellt (HTTP 200).

application/json
session_idstringErforderlich

Die eindeutige ID der erstellten Sitzung.

titlestringErforderlich

Der Sitzungstitel (Standardwert, falls nicht angegeben).

post
/weightlifting/sessions/

Ruft Details einer Gewichtheben-Sitzung ab

get

Ruft die Details einer Gewichtheben-Sitzung anhand ihrer session_id ab. Die zurückgegebenen Daten umfassen URLs der originalen und analysierten Videos, Erstellungszeitpunkt der Sitzung, Übungstyp, Benutzerinformationen, Metriken, Winkel, Berichtsmetriken und Zeitstempel.

Pfadparameter - session_id (string, erforderlich): Die eindeutige ID der abzurufenden Sitzung.

Abfrageparameter (optional) - demo (boolean): Auf true setzen, um eine vorgefertigte Demo-Sitzung abzurufen.

Antwortstruktur (HTTP 200) Bei Erfolg enthält die Antwort ein JSON-Objekt mit: - analyzed_video_url: Öffentliche URL des analysierten Videos. - video_url: Öffentliche URL des Originalvideos. - created_at: Erstellungszeitpunkt (Datum: DD/MM/YYYY, Zeit: HH:MM AM/PM). - exercise: Die ausgeführte Übung (z.B. 'snatch'). - user_name: Der Name des zugeordneten Benutzers. - activity: Der Aktivitätstyp ('Weightlifting'). - title: Der Titel der Sitzung. - metrics: Numerische Metriken (z.B. Geschwindigkeit, Leistung). - angles: Winkelwerte (Arrays numerischer Werte). - report_metrics: Berichtsmetriken (Arrays numerischer Werte). - all_timestamps: Zeitstempel der Sitzungsdaten.

Fehlerbehandlung - 400 Ungültige Anfrage: Ungültige Parameter. - 401 Nicht autorisiert: Fehlender/ungültiger Token. - 403 Verboten: Unzureichende Berechtigungen. - 404 Nicht gefunden: Sitzung nicht gefunden oder Aktivität nicht 'Weightlifting'. - 500 Interner Serverfehler: Unerwarteter Fehler.

Sicherheit Ein gültiger API-KEY-Token muss im Authorization-Header angegeben werden.

Autorisierungen
AuthorizationstringErforderlich

Geben Sie Ihren Bearer-Token (Firebase Auth) im Format ein: Bearer

Pfadparameter
session_idanyErforderlich
Abfrageparameter
demobooleanOptional

Auf true setzen, um eine Demo-Sitzung abzurufen.

Antworten
200

Details der Gewichtheben-Sitzung erfolgreich abgerufen.

application/json
analyzed_video_urlstring · uriErforderlich

Öffentliche URL des analysierten Videos.

video_urlstring · uriErforderlich

Öffentliche URL des Originalvideos.

exercisestringErforderlich

Die ausgeführte Übung (z.B. "snatch").

user_namestringErforderlich

Name des zugeordneten Benutzers.

activitystringErforderlich

Aktivitätstyp (erwartet: "Weightlifting").

titlestringErforderlich

Titel der Sitzung.

all_timestampsnumber[]Erforderlich

Zeitstempel der Sitzungsdaten.

get
/weightlifting/sessions/{session_id}/

Zusammenfassung einer Gewichtheber-Session abrufen

get

Ruft eine detaillierte Zusammenfassung einer Gewichtheber-Session anhand ihrer eindeutigen session_id ab. Die Zusammenfassung kombiniert quantitative Lift-Metriken mit optionalen GenAI-Kommentaren. Anleitung:

  1. Senden Sie eine GET-Anfrage mit der session_id im Pfad.

  2. Der Endpunkt antwortet mit einem strukturierten JSON-Objekt (siehe unten).

Abfrageparameter

  • demo (boolean, optional) – Auf true setzen, um eine vorgefertigte Demo-Zusammenfassung zu erhalten. Antwort-Struktur:

  • summary_text (object, optional) - GenAI-Kommentare. Schlüssel können sein:

    • velocity - Erkenntnisse zur Hantelgeschwindigkeit.

    • power - Beobachtungen zu Kraft & Leistungsausgabe.

    • stability - Anmerkungen zur Hantelpfad-Kontrolle.

    • final_summary - Zusammenfassende Coaching-Bemerkungen.

  • exercise_type (string) - Art der ausgeführten Übung (z.B. Reißen).

  • velocity (object):

    • bar_velocity - { min, max, values[] } (m/s).

  • power (object):

    • ground_reaction_force - { min, max, values[] } (N).

    • power - { min, max, values[] } (W).

  • stability (object):

    • total_time (number) - Dauer des Lifts (s).

    • bar_height - { max, values[] } (m).

    • bar_trajectory (object) - { xAxis[], yAxis[] } (m).

  • user_information (object) - Dieselben Schlüssel wie bei Lauf-Zusammenfassungen (Gewicht, Größe etc.).

  • session_date (string) - Formatierter Zeitstempel (z.B. 07/04/2025). Hinweis: summary_text erscheint nur, nachdem GenAI-Feedback generiert wurde.

Autorisierungen
AuthorizationstringErforderlich

Geben Sie Ihren Bearer-Token (Firebase Auth) im Format ein: Bearer

Pfadparameter
session_idanyErforderlich
Abfrageparameter
demobooleanOptional

Auf true setzen, um eine vorgefertigte Demo-Zusammenfassung für diese Gewichtheber-Session zu erhalten.

Antworten
200

Zusammenfassung der Gewichtheber-Session erfolgreich abgerufen

application/json
exercise_typestringErforderlich

Art der ausgeführten Übung.

session_datestringErforderlich

Datum der Session (z.B. '07/04/2025').

get
/weightlifting/sessions/{session_id}/summary/

Exportiert Daten einer Gewichtheben-Sitzung

get

Ruft die Daten einer Gewichtheben-Sitzung aus Firestore ab, einschließlich Keypoints, Winkeln und Zeitstempeln. Die Aktivität der Sitzung muss "Weightlifting" sein.

Pfadparameter - session_id (string, erforderlich): Die eindeutige ID der Sitzung.

Abfrageparameter (optional) - demo (boolean): Auf true setzen, um eine Demo-Sitzung abzurufen.

Antwortstruktur (HTTP 200) Bei Erfolg enthält die Antwort ein JSON-Objekt mit: - keypoints: Keypoint-Daten (Arrays numerischer Werte). - angles: Winkelwerte (Arrays numerischer Werte). - all_timestamps: Zeitstempel der Sitzungsdaten. - metrics: Numerische Metriken. - activity: Aktivitätstyp ("Weightlifting").

Fehlerbehandlung - 400 Ungültige Anfrage: Ungültige Parameter. - 401 Nicht autorisiert: Fehlender/ungültiger Token. - 403 Verboten: Unzureichende Berechtigungen. - 404 Nicht gefunden: Sitzung nicht gefunden oder Aktivität nicht "Weightlifting". - 500 Interner Serverfehler: Unerwarteter Fehler.

Sicherheit Ein gültiger API-KEY-Token muss im Authorization-Header angegeben werden.

Autorisierungen
AuthorizationstringErforderlich

Geben Sie Ihren Bearer-Token (Firebase Auth) im Format ein: Bearer

Pfadparameter
session_idanyErforderlich
Abfrageparameter
demobooleanOptional

Auf true setzen, um eine Demo-Sitzung abzurufen.

Antworten
200

Daten der Gewichtheben-Sitzung erfolgreich abgerufen.

application/json
all_timestampsnumber[]Erforderlich

Zeitstempel der Sitzungsdaten.

activitystringErforderlich

Aktivitätstyp ("Weightlifting").

get
/weightlifting/sessions/{session_id}/export/

Führt eine biomechanische Analyse einer Gewichtheben-Übung durch

post

Führt eine vollständige biomechanische Analyse einer Gewichtheben-Sitzung durch (snatch, clean, etc.).

Pfadparameter - session_id (string, erforderlich): Die eindeutige ID der Sitzung.

Abfrageparameter (optional) - demo (boolean): Auf true setzen, um eine Demo-Analyse abzurufen.

Antwortstruktur (HTTP 200) Die Antwort ist ein JSON-Bericht mit: - exercise: Die Übung (z.B. "snatch"). - key_metrics: Schlüsselmetriken (Leistung, Bodenreaktionskraft, Hantelgeschwindigkeit). - body_positioning: Körperpositionen (Hüftgeschwindigkeit, Schienbeinwinkel, etc.). - joint_angles: Gelenkwinkel. - barbell_positioning: Hantelpositionen. - phase_data: Phasendaten (Bilder, Durchschnittszeiten). - chart_data: Diagrammdaten (Start/Ende von Phasen). - user_information: Benutzerinformationen. - session_date: Sitzungsdatum. - comments: Kommentare.

Fehlerbehandlung - 400 Ungültige Anfrage: Ungültige Parameter. - 401 Nicht autorisiert: Fehlender/ungültiger Token. - 403 Verboten: Kein gültiger Zahlungsplan. - 404 Nicht gefunden: Sitzung nicht vorhanden. - 500 Interner Serverfehler: Unerwarteter Fehler.

Sicherheit Ein gültiger API-KEY-Token muss im Authorization-Header angegeben werden.

Autorisierungen
AuthorizationstringErforderlich

Geben Sie Ihren Bearer-Token (Firebase Auth) im Format ein: Bearer

Pfadparameter
session_idanyErforderlich
Abfrageparameter
demobooleanOptional

Auf true setzen, um eine Demo-Analyse abzurufen.

Antworten
200

Lift-Analysebericht erfolgreich generiert.

application/json
exercisestringOptional
session_datestring · dateOptional
commentsobjectOptional
post
/weightlifting/sessions/{session_id}/lift-analysis/

Erzeuge Kommentar-Threads zur Lift-Analyse für eine Gewichtheber-Session

post

Erzeuge Kommentar-Threads zur Lift-Analyse

Erstellt einen GenAI-Thread pro Lift-Analyse-Metrik (Leistung, Kraft, Hantelgeschwindigkeit, Gelenkwinkel etc.), damit der Assistent präzise Coaching-Kommentare für jede Metrik liefern kann. Anwendungsbeispiel: POST /weightlifting/sessions/{session_id}/recommendation/ Parameter:

  • session_id (string, erforderlich) – Identifikator der zu analysierenden Gewichtheber-Session.

  • measurement_system (query, optional)'metric' (Standard) oder 'imperial'; bestimmt die in den Prompts verwendeten Einheiten. Antwort-Struktur: Ein JSON-Objekt, das jede angefragte Metrik der ID des dafür erstellten GenAI-Threads zuordnet. Beispielantwort:

  "power_output":           "thread_a12b34",
  "ground_reaction_force":  "thread_c56d78",
  "barbell_velocity":       "thread_e90f12",
  "hip_velocity":           "thread_g34h56",
  "shin_angle":             "thread_i78j90",
  "hip_height":             "thread_k12l34",
  "torso_angle":            "thread_m56n78",
  "hip_angle":              "thread_o90p12",
  "knee_angle":             "thread_q34r56",
  "bar_height":             "thread_s78t90",
  "barbell_trajectory":     "thread_u12v34",
  "vertical_shoulder_height":"thread_w56x78"
} ```
**Hinweise:**
- `session_id` muss auf eine existierende Gewichtheber-Session verweisen.
- Der Aufrufer benötigt entsprechende Berechtigungen (gültiges Token & Zahlungsplan).
- Verwenden Sie die zurückgegebenen Thread-IDs, um die generierten Kommentare später abzurufen.
Autorisierungen
AuthorizationstringErforderlich

Geben Sie Ihren Bearer-Token (Firebase Auth) im Format ein: Bearer

Pfadparameter
session_idanyErforderlich
Abfrageparameter
measurement_systemstring · enumOptional

In den Prompts verwendetes Maßsystem

Mögliche Werte:
Antworten
post
/weightlifting/sessions/{session_id}/recommendation/

Zusammenfassung für eine Gewichtheber-Session generieren

post

Zusammenfassungs-Threads generieren

Dieser Endpunkt generiert Zusammenfassungs-Threads für eine gegebene Session basierend auf vordefinierten Zusammenfassungsblöcken und Metriken. Anwendungsbeispiel: Senden Sie eine POST-Anfrage an /weightlifting/sessions/{session_id}/summary/ wobei {session_id} der eindeutige Identifikator der Session ist. Parameter:

  • session_id (string, erforderlich): Der eindeutige Identifikator der Session, für die Zusammenfassungs-Threads generiert werden sollen. Antwort-Struktur: Bei erfolgreicher Anfrage gibt der Endpunkt ein JSON-Objekt zurück, das jeden Blocknamen seiner entsprechenden Thread-ID zuordnet. Beispielantwort:

    "velocity": "thread_thread_id",
    "power": "thread_thread_id",
    "stability": "thread_thread_id",
    "final_summary": "thread_thread_id",
} ```
**Hinweise:**
- Stellen Sie sicher, dass die angegebene `session_id` gültig ist und einer existierenden Session im System entspricht.
- Der Nutzer muss die notwendigen Berechtigungen haben, um Zusammenfassungs-Threads zu generieren.
Autorisierungen
AuthorizationstringErforderlich

Geben Sie Ihren Bearer-Token (Firebase Auth) im Format ein: Bearer

Pfadparameter
session_idanyErforderlich
Abfrageparameter
measurement_systemstring · enumOptional

Maßsystem: 'metric' oder 'imperial'

Mögliche Werte:
Antworten
post
/weightlifting/sessions/{session_id}/summary/

Zuletzt aktualisiert

War das hilfreich?