Skip to content

Write-back watch progress and playback reporting #34

Description

@koinsaari

Background

The proxy is currently read-only for watch state. Progress and played status are fetched from Jellyfin on detail requests but there is no way for clients to report back position updates or mark items as played. This means the resume point never advances after watching, and the continue watching section (issue #N) cannot work correctly.

What to add

  • POST /library/{id}/progress — report current playback position (position_ms, played flag). Proxied to Jellyfin POST /Users/{userId}/PlayingItems/{itemId} (session open) and POST /Users/{userId}/PlayingItems/{itemId}/Progress (position update).
  • DELETE /library/{id}/progress or POST /library/{id}/played — mark item fully played. Proxied to Jellyfin POST /Users/{userId}/PlayedItems/{itemId}.
  • Episode variants: same endpoints accept catalog ID in jf:<uuid> form (episodes have no TMDB ID).

Request body for progress update:

{ "position_ms": 412000, "played": false }

What stays the same

  • Auth flow unchanged — proxy JWT in, Jellyfin token fetched from DB per request.
  • Read path (GET /library/{id} returning progress) unchanged.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions