Captures Twitch streams (upload to YouTube not implemented yet). Runs as a Docker stack: the vodloader app plus nginx as a reverse proxy.
-
Clone the repo.
-
Copy
example.envto.envand set your values (Twitch credentials,WEBHOOK_HOST,API_KEY, etc.). See app/README.md for all environment variables. -
Optionally edit
compose.ymlto change the videos volume (default:/mnt/media/Capture/vodloader). -
Run:
docker compose up -d
The API and web UI are served on port 8000 (nginx). See app/README.md for API endpoint documentation. Database and captured videos are stored in ./database and the mounted videos volume respectively.
The stack is configured to pass all NVIDIA GPUs into the vodloader container (deploy.resources.reservations.devices). Install NVIDIA Container Toolkit on the host so Docker can use the GPU. The vodloader service also uses ipc: host and init: true (recommended for Playwright Chromium). The app currently uses software encoding (libx264); to use hardware encoding (e.g. h264_nvenc) you would need to configure the transcoding pipeline accordingly.
| Path | Description |
|---|---|
app/ |
Main Python application. See app/README.md for setup, config, and development. |
nginx/ |
Nginx reverse proxy; forwards traffic to the app. |
compose.yml |
Docker Compose stack (vodloader + nginx). |
example.env |
Example environment file; copy to .env and configure. |
See LICENSE.