🧪 Skills

Urban Sports Club Booking API

Scan Urban Sports Club venues, list courses with booking links, and book or cancel courses using your USC login credentials.

v1.0.1
❤️ 0
⬇️ 1.0k
👁 1
Share

Description

Urban Sports Scanner

Scannt deine Urban Sports Club Venues, zeigt Kurse mit direkten Booking-Links und kann Kurse buchen und stornieren.

Setup

1. Python-Umgebung

cd /pfad/zu/urban-sports
python3 -m venv venv
venv/bin/pip install playwright
venv/bin/playwright install chromium
venv/bin/playwright install-deps chromium

2. Zugangsdaten

Trage deine USC-Logindaten ein:

{
  "email": "deine-email@beispiel.de",
  "password": "dein-passwort"
}

Die Datei credentials.json ist in .gitignore und wird nicht committet. Zugangsdaten werden nur fuer --book, --cancel und --bookings benoetigt.

3. Venues konfigurieren

Trage deine Venues in config.py ein. Die Venue-ID findest du in der URL auf urbansportsclub.com:

https://urbansportsclub.com/de/venues/20818
                                       ^^^^^

Beispiel:

VENUES = {
    "storm": {
        "name": "STORM Cycling Berlin - Mitte",
        "url": "https://urbansportsclub.com/de/venues/20818",
        "type": "cycling",
        "keywords": ["Performance", "Groove", "Cycling"],
    },
    "fitboxing": {
        "name": "Brooklyn Fitboxing",
        "url": "https://urbansportsclub.com/de/venues/27355",
        "type": "boxing",
        "keywords": ["Boxing", "Fitboxing", "HIIT"],
    },
}
  • name: Anzeigename
  • url: Venue-Seite auf urbansportsclub.com
  • type: Frei waehlbar, wird im Output angezeigt
  • keywords: Helfen bei der Erkennung der Kursnamen im Seitentext

URL-Parameter

Der Scanner haengt automatisch folgende Parameter an die Venue-URL an:

  • plan_type: Mitgliedschafts-Stufe. Bestimmt welche Kurse angezeigt werden (nur die, die mit der jeweiligen Stufe buchbar sind). Privat: 1=Essential, 2=Classic, 3=Premium, 6=Max. Firma: 1=S, 2=M, 3=L, 6=XL. Standardwert: 3.
  • business_type: b2c (Privatmitglieder) oder b2b (Firmenmitglieder). Standardwert: b2c.

Diese Werte sind in config.py als PLAN_TYPE und BUSINESS_TYPE konfigurierbar.

Usage

Kurse scannen

# Alle Venues fuer heute
venv/bin/python scan.py

# Bestimmtes Datum
venv/bin/python scan.py --date 2026-02-10

# Nur eine Venue
venv/bin/python scan.py --venue storm

# JSON-Ausgabe (fuer Weiterverarbeitung)
venv/bin/python scan.py --json

Jeder Kurs wird mit direktem Booking-Link zurueckgegeben:

  07:30  STORM Cycling Berlin - Mitte    45 Min STORM Ride - Performance
         https://www.urbansportsclub.com/de/activities?class=98049323

Buchen

venv/bin/python scan.py --book 98049323

Stornieren

venv/bin/python scan.py --cancel 98049323

Anstehende Buchungen

venv/bin/python scan.py --bookings
venv/bin/python scan.py --bookings --json

Dateien

urban-sports/
├── SKILL.md                  # Diese Doku
├── scan.py                   # Scanner + Buchen + CLI
├── config.py                 # Venue-Konfiguration
├── credentials.json          # Login-Daten (nicht im Repo)
├── credentials.example.json  # Vorlage
├── .gitignore
└── venv/                     # Python virtualenv (nicht im Repo)

Fehlerbehebung

"Keine Venues konfiguriert"

Trage mindestens eine Venue in config.py ein.

"credentials.json nicht gefunden"

Kopiere credentials.example.json nach credentials.json und trage deine Daten ein.

Scanner findet keine Kurse

  • Prüfe ob das Datum korrekt ist (nicht in der Vergangenheit)
  • Manche Venues haben an bestimmten Tagen keine Kurse
  • Chromium-Dependencies: venv/bin/playwright install-deps chromium

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs