watchparty/server
Nicolas 1891e87c83
All checks were successful
Publier l'image Docker / publish (push) Successful in 6s
Fix streaming: use Emby's PlaybackInfo instead of a hand-built m3u8 URL
Real error from the field: "Value cannot be null. (Parameter 'key')" -
Emby's own server (.NET) throwing an ArgumentNullException. The
/api/catalog/stream/:itemId/master.m3u8 route was hand-building
/Videos/{id}/master.m3u8?VideoCodec=h264&AudioCodec=aac directly,
missing whatever parameter (MediaSourceId/PlaySessionId/DeviceId are
the likely culprits) Emby's server needs for an internal lookup.

Fixed by calling GET /Items/{id}/PlaybackInfo?UserId=... first and
using the returned MediaSource's own TranscodingUrl - the same thing
real Emby clients do, rather than guessing the URL shape ourselves.
Falls back to a hand-built URL only if no TranscodingUrl comes back,
now at least carrying MediaSourceId/PlaySessionId/UserId from that
response instead of nothing.

docs/architecture.md updated: the real bug and fix, plus a known
limitation this doesn't yet handle (a direct-play source with no
TranscodingUrl at all - hls.js has nothing to fall back to for that
case yet).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-13 21:59:54 +02:00
..
src Fix streaming: use Emby's PlaybackInfo instead of a hand-built m3u8 URL 2026-09-13 21:59:54 +02:00
.dockerignore Pivot to a standalone app - Emby plugin hit a hard wall 2026-09-13 20:48:55 +02:00
.env.example Pivot to a standalone app - Emby plugin hit a hard wall 2026-09-13 20:48:55 +02:00
Dockerfile Pivot to a standalone app - Emby plugin hit a hard wall 2026-09-13 20:48:55 +02:00
package-lock.json Pivot to a standalone app - Emby plugin hit a hard wall 2026-09-13 20:48:55 +02:00
package.json Pivot to a standalone app - Emby plugin hit a hard wall 2026-09-13 20:48:55 +02:00