STRM Proxy
AniBridge can generate .strm files that point to a stable AniBridge URL instead of a provider/CDN URL. The STRM proxy endpoints stream bytes, support HTTP Range, and rewrite HLS playlists so every segment/key request routes back through AniBridge.
When To Use
- You need stable
.strmfiles that keep working even when provider URLs change. - Jellyfin is outside the VPN while AniBridge is inside the VPN.
- You want HLS segment/key requests to always egress from AniBridge.
Required Configuration
STRM_PROXY_MODE=proxySTRM_PUBLIC_BASE_URL=https://<your-anibridge-host>
Auth mode is controlled by STRM_PROXY_AUTH:
token(default): HMAC signature insigapikey: shared key inapikeynone: no auth (LAN only)
Direct Play Requirements
Browser-based clients (Jellyfin, Plex, Emby) enforce mixed content rules. If your media server is served over HTTPS, AniBridge must also be served over HTTPS or the browser will block the stream and force server-side transcoding.
Recommended setup:
- Place AniBridge behind a reverse proxy with TLS.
- Ensure the public URL is reachable by both the browser client and the media server.
- Set
STRM_PUBLIC_BASE_URLto the HTTPS URL that Jellyfin and clients use to reach AniBridge. If clients can’t reach AniBridge (even over HTTPS), Direct Play will fail and the server will fall back to proxying/transcoding.
Endpoints
HLS Rewriting
AniBridge rewrites:
- URI lines
EXT-X-KEY,EXT-X-MAP,EXT-X-MEDIA,EXT-X-STREAM-INF,EXT-X-I-FRAME-STREAM-INF,EXT-X-SESSION-KEY
Relative URLs are resolved against the playlist URL before proxying.
Refresh On Failure
If upstream returns 403/404/410/451/429 or times out, AniBridge re-resolves the provider URL and retries once.
Examples
STRM URL
https://anibridge.example/strm/stream?site=s.to&slug=9-1-1&s=1&e=3&lang=German+Dub&sig=...Rewritten HLS Playlist
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=1360921,RESOLUTION=1280x720
https://anibridge.example/strm/proxy/index-v1-a1.m3u8?u=https%3A%2F%2Fcdn.example%2Findex-v1-a1.m3u8&sig=...
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=144009,RESOLUTION=1280x720,URI="https://anibridge.example/strm/proxy/iframes-v1-a1.m3u8?u=https%3A%2F%2Fcdn.example%2Fiframes-v1-a1.m3u8&sig=..."Segment Fetch
GET /strm/proxy/seg-1-v1-a1.ts?u=https%3A%2F%2Fcdn.example%2Fseg-1-v1-a1.ts&sig=...Notes
WARNING
Sonarr can occasionally reject .strm imports with “No audio tracks detected” even when playback works. This usually happens when Sonarr’s ffprobe succeeds on the .strm file and reports zero audio streams. Workaround: use manual import or disable “Analyze video files” in Sonarr. See Issue #50.
WARNING
Known limitation: STRM proxy playback can be unstable in some media players (notably Jellyfin) for certain HLS streams. A common symptom is Video-Bitrate: 0 kbps, and there is currently no reliable AniBridge-side fix that does not risk playback regressions (timeline/duration issues, early stop, or auto-next behavior). Track status can be monitored in Issue #51.
- AniBridge never redirects STRM playback; bytes are streamed.
STRM_PUBLIC_BASE_URLmust match how your media server reaches AniBridge (LAN host, reverse proxy, etc.).