4 Commits

Author SHA1 Message Date
mani
63f6738e11 Major fix: Caddy-based intelligent routing for Xbox filter
Complete architecture overhaul:
- Caddy is now the main proxy (port 8096)
- Only Xbox PlaybackInfo requests go to Python filter
- Everything else (WebSocket, streaming, API) goes directly to Jellyfin

Changes:
- Add Caddy service to docker-compose
- Use path_regexp for proper PlaybackInfo matching
- Remove method POST constraint (handled by path)
- Direct routing for non-Xbox requests
- WebSocket support for /socket endpoint

This fixes:
- 503 errors on normal requests
- 400 errors on WebSocket connections
- Performance issues from proxying everything

Architecture:
Client → Caddy → Check (path + User-Agent)
              ↓ Xbox PlaybackInfo → Python Filter → Jellyfin
              ↓ Everything else → Jellyfin
2026-01-09 00:21:57 +01:00
mani
a0097cae2d Revert "Clean up Xbox proxy: Remove obsolete Caddyfile and improve docs"
This reverts commit 9e6b9fc1db.
2026-01-09 00:18:43 +01:00
mani
9e6b9fc1db Clean up Xbox proxy: Remove obsolete Caddyfile and improve docs
- Remove Caddyfile (Python proxy handles everything)
- Clarify that REQUEST body is filtered, not response
- Add better log examples showing actual output
- Add docker-compose comments about port exposure
- Explain filtering flow: User-Agent detection → JSON parsing → Codec filtering
2026-01-09 00:17:47 +01:00
mani
1cedac1aa9 Add Xbox codec filter proxy as alternative to code patches
- Transparent reverse proxy that filters AV1/Opus for Xbox clients
- Detects Xbox via User-Agent header
- Docker-based solution, no Jellyfin code modifications needed
- Can be easily enabled/disabled without affecting Jellyfin updates
2026-01-09 00:03:04 +01:00