Introduction
This document aims to briefly explain the process of migrating to the v3 EPG endpoints.
NB: Please see API guidelines for app development#EPG for guidelines on the new functionality. This document does not repeat information contained there
Explanation of differences
The chief difference between v2 and v3 lies in improvements in our caching strategy.
One endpoint is cheap because it can be publicly cached and the other is more expensive because it is unique to a particular user.
The impact on clients is that instead of calling a single endpoint to obtain EPG there are now two endpoints.
- Use the public publicly cacheable (cheap) endpoint to display a general EPG
- Use the private privately cacheable (expensive) endpoint to discover the users individual privileges (e.g.: record, catchup, restart) for a particular channel
- Use the privately cacheable (expensive) Channel endpoint to get privileges for all channels at once
Concrete examples
Obtain general channel program list
Call
Method | URL | Purpose | Notes |
---|---|---|---|
GET | https://tv.dna.fi/api/v3/epg?service=dnaclient&pg=1&st=1535576400&et=1535662800 | Obtain a list of the programs showing on all channels | The time window is 86400 seconds and this hits our Nginx cache so is extremely cheap for us. In the model client implementation the result is stored in local storage. |
Obtain user specific privileges for channels
Call
Method | URL | Purpose | Notes |
---|---|---|---|
GET | https://tv.dna.fi/api/user/andy.beak@aminocom.com/channel?service=dnaclient&include=liveservice%2Crecordingservice%2Ccategories&lang=fi&sort=rank__asc&stream_protection=all&output=normal | List channels and find user specific privileges for each | Please cache the response for a few minutes |
Mixed together
The client uses the user-specific information to filter the general EPG listing
The result is the EPG: