Application FastAPI qui surveille des chaines Twitch, enregistre automatiquement les lives en MP4, gère les replays, des liens de partage publics (avec slug custom), et des playlists auto-ajoutées.
- Authentification admin (compte unique)
- Vérification des chaines toutes les minutes
- Enregistrement des streams avec Streamlink + FFmpeg (H.264 + AAC)
- Replays renommables
- Partage public via
/share/{slug|token} - Slug custom optionnel (
^[a-zA-Z0-9_-]{3,80}$) avec collision 409 - Playlists + auto-ajout à la fin d'un live par chaîne
- Copier
.env.examplevers.envet remplirTWITCH_CLIENT_ID,TWITCH_CLIENT_SECRET. - Lancer:
docker compose up --build- Ouvrir l'UI admin: http://localhost:8162
- Se connecter avec
ADMIN_USERNAME/ADMIN_PASSWORD.
APP_SECRET: secret de sessionADMIN_USERNAME: nom d'utilisateur adminADMIN_PASSWORD: mot de passe adminTWITCH_CLIENT_ID: identifiant Twitch APITWITCH_CLIENT_SECRET: secret Twitch APIPOLL_INTERVAL_SECONDS: intervalle de polling (60 par défaut)DATA_DIR: dossier des replaysDB_PATH: base SQLite persistante
POST /api/auth/loginGET /api/channelsPOST /api/channelsPATCH /api/channels/{id}DELETE /api/channels/{id}GET /api/recordingsPATCH /api/recordings/{id}POST /api/recordings/{id}/shareDELETE /api/recordings/{id}/shareGET /api/playlistsPOST /api/playlistsPATCH /api/playlists/{id}DELETE /api/playlists/{id}POST /api/playlists/{id}/itemsDELETE /api/playlists/{id}/items/{recording_id}GET /api/watch/{id}GET /api/media/{id}
GET /share/{key}: page de lectureGET /share/{key}/media: flux vidéoGET /healthz