progress
Emby progress feature implementation (resume position indexing and writes).
Last updated
Was this helpful?
Emby progress feature implementation (resume position indexing and writes).
Related:
This feature syncs resume position ("Continue Watching") for an Emby user.
Movies: ✅
Episodes: ✅
Reads: Emby resumable items.
Writes:
add upserts resume position.
remove clears resume position (sets it to 0) when enabled.
features.progress.enable
features.progress.add
features.progress.remove
features.progress.min_seconds (default 60)
features.progress.delta_seconds (default 30)
features.progress.max_percent (default 95)
Progress never clears from absence.
Only an explicit progress_ms = 0 can trigger a clear.
Near-complete items (>= max_percent) are skipped.
Emby indexes resumable items using the user Items endpoint.
PlaybackPositionTicks → progress_ms (ticks / 10,000)
RunTimeTicks → duration_ms
LastPlayedDate → progress_at
Writes use the same UserData endpoint:
Upsert: set PlaybackPositionTicks to the desired ticks.
Clear: set PlaybackPositionTicks to 0.
Thresholds live in diff_progress:
ignore progress < min_seconds
only write when delta >= delta_seconds
ignore progress >= max_percent of duration
providers/sync/emby/_progress.py
cw_platform/orchestrator/_planner.py::diff_progress
Progress depends on stable canonical keys.
Missing external IDs can cause resolution failures.
Last updated
Was this helpful?
Was this helpful?