Safari/iOS browsers lack Widevine EME support, so DRM videos couldn't play. This adds a server-side decrypt-and-stream pipeline that reuses the existing downloadDrmMedia() code to decrypt videos on demand, cache them, and serve plain MP4s with Range support for native <video> playback. - server/drm-stream.js: new router with decrypt, status, and serve endpoints - client/src/components/ServerDrmVideo.jsx: decrypt→poll→play lifecycle component - DrmVideo.jsx: Widevine detection, falls back to ServerDrmVideo for Safari - MediaGrid.jsx: passes raw mpdUrl through to DrmVideo Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
18 lines
378 B
YAML
18 lines
378 B
YAML
version: '3.8'
|
|
services:
|
|
ofapp:
|
|
build: .
|
|
container_name: ofapp-local
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3001:3001"
|
|
volumes:
|
|
- ./data/db:/data/db
|
|
- ./data/media:/data/media
|
|
environment:
|
|
- PORT=3001
|
|
- DB_PATH=/data/db/ofapp.db
|
|
- MEDIA_PATH=/data/media
|
|
- DOWNLOAD_DELAY=1000
|
|
- NODE_TLS_REJECT_UNAUTHORIZED=0
|