Profile context is everything tied to this viewer, not catalog data fromDocumentation Index
Fetch the complete documentation index at: https://docs.discovr.media/llms.txt
Use this file to discover all available pages before exploring further.
getMedia(): bookmarks, sentiment lists, playback position, watched history, and how you sync progress back to Discovr.
- Continue watching —
/profile/playback(playback list):getPlaybackItems(),updatePlaybackItem()(andadd/deleteas needed). - Curated lists — liked, disliked, super_liked, watchlist: list with get/ add / delete under Profile Lists (see SDK Reference sidebar).
- Per-title overlay on a sheet —
getMediaProfileMeta(mediaId, profileId)for booleans,playback(resume),history, optionalproviders. See Understanding Your Media State for the mental model andplaybackbranching. - Live viewing —
scrobble()andscrobbleSkip()keep watch history and resume position in sync as the user watches. Learn more in Tracking Playback with Scrobbling. - Watched-log — history is separate from the resume queue; use history APIs for explicit entries—the SDK reference covers TV season/episode duplicates and PATCH behavior.
Understanding Your Media State
Likes, resume position, watch history—layer user state on catalog data for personalized title sheets.
Tracking Playback with Scrobbling
Keep watch history in sync with real-time progress updates as users watch.
Endpoints under
/profile/* plus getMediaProfileMeta need a session JWT minted
after selectProfile() (Sessions, Profiles &
Sign Out). Examples below use TypeScript / Kotlin /
Swift like Authentication.Continue watching → playback list
Below is illustrative UI: thumbnails andprogress (0–100) on tiles match what getPlaybackItems() returns for the browse surface. When the user opens a title sheet, the same percentages and TV season/episode hints surface through getMediaProfileMeta.playback (Understanding getMediaProfileMeta).


progress (0–100). Fetch with getPlaybackItems (cursor via nextPageToken, limit 1–50). Prefer updatePlaybackItem during playback or scrobble (recommended for one call that aligns history and side effects)—see scrobbling below.
Curated lists (liked, disliked, super liked, watchlist)
Each category is symmetric:get* enumerates IDs; add* attaches a mediaId; delete* removes it. Wire your UI (“My list”, thumbs, etc.) to the matching SDK operations—return shapes are documented on each Profile Lists SDK page and echoed in API Reference; you can cross-check wire fields in Type reference where they appear. Method names follow the SDK Reference sidebar under Profile Lists.
History vs playback
History logs watch events (duplicates allowed—seegetHistoryItems and patchHistoryItem). Playback drives “continue watching”. scrobble is the everyday path during viewing; patch/add history suits explicit corrections or tooling.
Related reading
- Profiles overview — who selects the profile (
selectProfile), why lists stay per-viewer. - Understanding Your Media State — Layer user state on catalog data for detail pages.
- Tracking Playback with Scrobbling — Keep watch history in sync during playback.
- Media details — catalog + images;
getMediaProfileMetaoverlays profile state. - Sessions, Profiles & Sign Out · Error handling — session refresh when
SESSION_EXPIREDinterrupts/profile/*calls.
Related SDK reference
- Playback:
getPlaybackItems()·updatePlaybackItem()·addPlaybackItem()·deletePlaybackItem() - Scrobbling:
scrobble()·scrobbleSkip()— see Tracking Playback with Scrobbling guide - User state:
getMediaProfileMeta()— see Understanding Your Media State guide - History:
getHistoryItems()·getHistoryItemsByMediaId()·patchHistoryItem() - Representative lists — liked:
getLikedItems()· watchlist:getWatchlistItems()(mirror pattern for dislike / super-liked SDK pages)