This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:tvip_json_middleware_api:2 [2018/04/17 08:53] Egor Danilenko |
en:tvip_json_middleware_api:2 [2025/04/30 15:59] (current) Варвара Синицкая |
||
---|---|---|---|
Line 239: | Line 239: | ||
| **enabled** | Boolean | Yes | True if subscribrictions are active. | | | **enabled** | Boolean | Yes | True if subscribrictions are active. | | ||
| **contract** | String | No | Contract information | | | **contract** | String | No | Contract information | | ||
- | \\ | + | |
- | \\ | + | ===== Feeds ===== |
+ | |||
+ | Get information about feeds on home srceen. | ||
+ | |||
+ | Request: | ||
+ | <code>GET ${TVIPAPI_BASE_URL}/tvipapi/json/feeds/{device-class}.json</code> | ||
+ | |||
+ | Response: | ||
+ | <code javascript> | ||
+ | { | ||
+ | "method" : "feeds", | ||
+ | "status" : 200, | ||
+ | "response" : { | ||
+ | "feeds": [ | ||
+ | { | ||
+ | "id": 1, | ||
+ | "type": DEFAULT, | ||
+ | "subtype": PROVISIONING_BANNER, | ||
+ | "focusable": true, | ||
+ | "title": "", | ||
+ | "card_size": {"width": 1920, "height": 180}, | ||
+ | "mark_position": TOP_LEFT, | ||
+ | }, | ||
+ | { | ||
+ | "id": 2, | ||
+ | "type": DEFAULT, | ||
+ | "subtype": APPS, | ||
+ | "focusable": true, | ||
+ | "title": "Apps", | ||
+ | "card_size": {"width": 240, "height": 135}, | ||
+ | "mark_position": TOP_LEFT, | ||
+ | }, | ||
+ | { | ||
+ | "id": 3, | ||
+ | "type": DEFAULT, | ||
+ | "subtype": CHANNELS, | ||
+ | "focusable": true, | ||
+ | "title": "Channels", | ||
+ | "card_size": {"width": 416, "height": 234}, | ||
+ | "mark_position": TOP_LEFT, | ||
+ | }, | ||
+ | { | ||
+ | "id": 4, | ||
+ | "type": DEFAULT, | ||
+ | "subtype": CCTV, | ||
+ | "focusable": true, | ||
+ | "title": "CCTV", | ||
+ | "card_size": {"width": 416, "height": 234}, | ||
+ | "mark_position": TOP_LEFT, | ||
+ | }, | ||
+ | { | ||
+ | "id": 5, | ||
+ | "type": DEFAULT, | ||
+ | "subtype": Continue, | ||
+ | "focusable": true, | ||
+ | "title": "Continue watching", | ||
+ | "card_size": {"width": 416, "height": 234}, | ||
+ | "mark_position": BOTTOM_LEFT, | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Feed structure: | ||
+ | ^Field: ^Type ^Req. ^Description | | ||
+ | | **id** | Int | Yes | Unique id. | | ||
+ | | **type** | String | Yes | [enum] default or additional feed, "DEFAULT" by default | | ||
+ | | **subtype** | String | Yes | [enum] Type of the feed, defaults are: "PROVISIONING_BANNER", "APPS", "CHANNELS", "CCTV", "CONTINUE" | | ||
+ | | **focusable** | Boolean | Yes | If user can focus on the feed - true by default | | ||
+ | | **title** | String | Yes | The title of the feed | | ||
+ | | **card_size** | Size | Yes | The width and height of item image card - under the table watch more info | | ||
+ | | **mark_position** | String | Yes | [enum] Position of the mark on the card, available values: "TOP_LEFT", "TOP_RIGHT", "BOTTOM_LEFT", "BOTTOM_RIGHT", "TOP_LEFT" by default | | ||
+ | |||
+ | Size structure: | ||
+ | ^Field: ^Type ^Req. ^Description | | ||
+ | | **width** | Int | Yes | Image card width | | ||
+ | | **height** | Int | Yes | Image card height | | ||
+ | |||
+ | card size available (can choose only from these ones): | ||
+ | |||
+ | * landscape_poster: 416 x 234 - default for "CHANNELS", "CCTV", "CONTINUE" | ||
+ | * portrait_poster: 240 x 360 | ||
+ | * big_portrait_poster: 460 x 700 | ||
+ | * app_logo: 240 x 135 - default for "APPS" | ||
+ | * default_banner: 1920 x 180 - default for "PROVISIONING_BANNER" | ||
+ | * wide_banner: 1800 x 340 | ||
+ | |||
+ | for "PROVISIONING_BANNER" client overrides the size taking it from provisioning for "APPS" let choose between app_logo and landscape_poster | ||
+ | |||
+ | ===== Feed items ===== | ||
+ | Get items of the feed. | ||
+ | |||
+ | Request: | ||
+ | <code>GET ${TVIPAPI_BASE_URL}/tvipapi/json/feeds/{feed_id}/items.json</code> | ||
+ | |||
+ | Response: | ||
+ | <code javascript> | ||
+ | { | ||
+ | "method" : "feeds", | ||
+ | "status" : 200, | ||
+ | "response" : { | ||
+ | "feed_id": 1, | ||
+ | "items": [ | ||
+ | { | ||
+ | "title": "Card", | ||
+ | "subtitle": "info", | ||
+ | "deeplink": "vod/?movie=1", | ||
+ | "progress": {"total": 7200, "elapsed": 3000}, | ||
+ | "mark": "hit", | ||
+ | "background_image": "url1", | ||
+ | "background_video": "url2", | ||
+ | "image": "url3", | ||
+ | }, | ||
+ | { | ||
+ | "title": "Title", | ||
+ | "subtitle": null, | ||
+ | "deeplink": "vod/?movie=2", | ||
+ | "progress": null, | ||
+ | "mark": null, | ||
+ | "background_image": null, | ||
+ | "background_video": null, | ||
+ | "image": "url3", | ||
+ | }, | ||
+ | ] | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Item structure: | ||
+ | ^Field: ^Type ^Req. ^Description | | ||
+ | | **title** | String | Yes | Item title | | ||
+ | | **subtitle** | String | No | Item subtitle | | ||
+ | | **deeplink** | String | Yes | The deeplink with action (system uri / url) | | ||
+ | | **progress** | Progress | No | Only fo continue feed. Shows total and elapsed time of the video | | ||
+ | | **mark** | String | No | The one word showing above item card | | ||
+ | | **background_image** | String | No | The image url to show on the background when item is focused | | ||
+ | | **background_video** | String | No | The video url to play on the background when item is focused | | ||
+ | | **image** | String | Yes | The image url for the item card | | ||
+ | |||
+ | Progress structure: | ||
+ | ^Field: ^Type ^Req. ^Description | | ||
+ | | **total** | Int | Yes | Item (video) duration in seconds | | ||
+ | | **elapsed** | Int | Yes | The seconds elapsed from start to pause | | ||
====== Content requests ====== | ====== Content requests ====== | ||
Line 303: | Line 449: | ||
</code> | </code> | ||
- | **channels_version** defines version or timestamp or current channel list. If this value is the same as on previous request, playlist will be updated on the device.\\ | + | **channels_version** defines version or timestamp of current channel list. If this value is the same as on previous request, playlist will not be updated on the device.\\ |
**channels_hash** unique hash of available channels, used in short epg\\ | **channels_hash** unique hash of available channels, used in short epg\\ | ||
**epg_version** defines version or timestamp or current EPG data. If this value is the same as on previous request, EPG will be considered the same.\\ | **epg_version** defines version or timestamp or current EPG data. If this value is the same as on previous request, EPG will be considered the same.\\ | ||
Line 577: | Line 723: | ||
- | This command loads vod tags for requested places. Now boxies load **'primary'** and **'secondary'** tag lists. | + | This command loads vod tags for requested places. Now boxies load only **'primary'** tag list. |
Request: | Request: | ||
Line 657: | Line 803: | ||
- | This command loads vod сategories for requested places. Now boxies load **'primary'** and **'secondary'** category lists. | + | This command loads vod сategories for requested places. Now boxies load only **'primary'** list. |
Request: | Request: |