progress
Plex progress feature implementation (resume position indexing and writes).
Last updated
Was this helpful?
Plex progress feature implementation (resume position indexing and writes).
Related:
This feature syncs resume position ("Continue Watching") for Plex items.
Movies: ✅
Episodes: ✅
Reads: Plex "Continue Watching" / resumable items.
Writes:
add upserts resume position.
remove (clear) is blocked on Plex for safety.
features.progress.enable
features.progress.add
features.progress.remove: ignored for Plex clears
features.progress.min_seconds (default 60)
features.progress.delta_seconds (default 30)
features.progress.max_percent (default 95)
Progress never clears from absence.
Near-complete items (>= max_percent) are skipped.
Clearing progress on Plex is unreliable. CrossWatch blocks it.
Primary index comes from Plex "Continue Watching":
viewOffset → progress_ms
duration → duration_ms
lastViewedAt/viewedAt → progress_at
Upsert uses PlexAPI updateProgress(ms, state="stopped").
Fallback uses updateTimeline when needed.
Clears are intentionally blocked (remove() returns not_supported).
Progress uses conservative thresholds to avoid spam:
ignore progress < min_seconds
only write when delta >= delta_seconds
ignore progress >= max_percent of duration
providers/sync/plex/_progress.py
cw_platform/orchestrator/_planner.py::diff_progress
Plex writes need a rating key.
Resolution order:
Use ids["plex"] when present.
Else resolve by GUID candidates derived from external IDs.
If you see repeated "unresolved" items, your external IDs are missing.
Last updated
Was this helpful?
Was this helpful?