Continue Watching Feed
Introduction
Customers that want to implement the remote "continue watching" feature, should implement 3 API gateways:
- A POST URL to video.stopped Cloud Event that will be sent anytime the user stopped the video player.
- A Synced feed that the app will query periodically to get information about the remote list of unfinished videos (See bellow)
- Optional - A full JSON feed with a list of all of unfinished videos to show inside a component
Synced feed
The plugin will request on app launch + every hour the feed to retrieve the list of server stored resume watching list.
The structure of the feed should be written in the following format:
{
"entry": [
{
"id": "296bed86-11dc-43c3-9aaf-bfb25600ad2a", // the unique id of the video
"extensions": {
"resumeLastUpdate": <TIMESTAMP>
"resumeTime": "<Number of seconds from the beginning of the video from which playback should start when playing this item>",
"progress": 0.43 // number between 0 - 1 indecating the progress of the fed
"resumeCompleted": true // When set to true, the app will use this info to remove the video from the list
}
}
}, {...}, {...}
]
}
The app will call the feed at app launch + every hour to sync and retrieve the most up to date list of videos.
The feed should follow the Pipes2 endpoints spec. Probably it will need to use the user’s id as a context key to be able to return a personalized list.
The response of the feed will be merged with the local resume watching list as follows:
Local list and remote feed items will be ordered by timestamp.
If local and remote feeds share the same id they will be merged to a single item - (the latest timestamp remote / local will “win” in case of conflicts”.
The list will be filtered to store the max list size determined by the plugin config settings.