diff --git a/docs/SPECIFICATIONS/search-feed.md b/docs/SPECIFICATIONS/search-feed.md index 63b39d33..ee45d249 100644 --- a/docs/SPECIFICATIONS/search-feed.md +++ b/docs/SPECIFICATIONS/search-feed.md @@ -26,7 +26,7 @@ The Roku search feed includes the following key features: ### Root -The root of the JSON file contains basic information such as the Roku feed specification version, the default language, default availability for different regions, and the list of content items. +The root of the JSON file contains basic information such as the Roku feed specification version, the default language, default availability for different regions, and the list of content items. For live integrations see [Live feed specification](#live-feed-specification) below
| type | Enum | -The media type of the content item:
This value is passed into [deep links](doc:implementing-deep-linking#mediatype-behavior) that are sent to the app. The app uses the value to determine how to launch the content. For example, if the type is "movie", the app will launch it directly into playback. |
+ The media type of the content item:
This value is passed into [deep links](doc:implementing-deep-linking#mediatype-behavior) that are sent to the app. The app uses the value to determine how to launch the content. For example, if the type is "movie", the app will launch it directly into playback. |
Required | ||
| subType | +Enum | +The subType of the content item:
This value is used to provide more detail on the type of shoulder content. |
+ Optional | +|||
| externalIds | ExternalId\[] | @@ -161,7 +167,7 @@ An asset represents a specific content item in the app's catalog. It contains alimages | Image\[] | A list of main poster and background images to be displayed for the content item in the Roku Search results. Images may have an aspect ratio of 16:9 or 2:3. Roku determines the dimensions and aspect ratio to be used after downloading the image. |
- A main 16:9 or 2:3 poster image is required. | +A main 16:9 or 2:3 poster image is required. Unless the type is "episode", in which case only a background is needed |
| content | @@ -184,15 +190,33 @@ An asset represents a specific content item in the app's catalog. It contains al||||||
| episodeInfo | EpisodeInfo | -Metadata related to a television episode. The EpisodeInfo object specifies the episode number, season number, and series ID of the episode. |
+ Metadata related to a television episode. The EpisodeInfo object specifies the episode number, season number, and series ID of the episode. |
Required only if the type field is "episode". | ||
| seasonInfo | SeasonInfo | -Metadata related to a television season. The SeasonInfo object specifies the season number and series ID of the season. |
+ Metadata related to a television season. The SeasonInfo object specifies the season number and series ID of the season. |
Required only if the type field is "season". | ||
| liveInfo | +LiveInfo | +Metadata related to live events. The LiveInfo object specifies the start and end time of a live event. |
+ Required only if a PlayOption is marked as live. | +|||
| stationInfo | +StationInfo | +A reference to a Gracenote Source prgSvcId for a "liveStream" schedule. The StationInfo object specifies the Gracenote Station Schedule identifier. |
+ Required only if the type field is "liveStream". | +|||
| relationships | +Relationship\[] | +A list of related content to this program. Relations may reference TMS ids or REF ids (other content in your catalog) |
+ Optional | +
| type | Enum | -The image type:
|
+ The image type:
|
Required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Field | -Type | -Description | -Required | -
|---|---|---|---|
| license | -Enum | -The type of licensing terms for the content:
|
- Required | -
| price | -Float | -The price of the content in decimal format (for example, 1.90, 1.99, or 2.00). If the price is 0.00, set the license field to "subscription" or "free" instead of setting this field. This automatically sets the price field to 0.00 by default. |
- Required, if the license field is set to "purchase" or "rental". | -
| quality | -Enum | -The playback resolution of the content item:
|
- Required | -
| currency | -String | -The ISO 4217 three-letter currency code for the value specified in the price field:
|
- Required, if the license field is set to "purchase" or "rental". | -
| playId | -String | -A unique, immutable ID for the content item. When customers search for this content item and select your app to watch it, the playId is passed in a [deep link](doc:implementing-deep-linking) back to your app. The playId must map to the contentid in your app for the same content. It is therefore important to keep the Roku Search feed synchronized with the app's content feed. |
- Required | -
| availabilityStartTimeStamp | -Number | -The time (in epoch milliseconds) when the content item is to be made available to Roku Search. | -Optional If you are not providing an availability start time, omit this field from your search feed. |
-
| availabilityEndTimeStamp | -Number | -The time (in epoch milliseconds) when the content item is to stop being made available to Roku Search. | -Optional If you are not providing an availability end time or if the content is available indefinitely, omit this field from your search feed. |
-
| availabilityStartTime | -String | -The time (as an ISO timestamp) when the content item is to be made available to Roku Search. | -Optional If you are not providing an availability start time, omit this field from your search feed. |
-
| availabilityEndTime | -String | -The time (as an ISO timestamp) when the content item is to stop being made available to Roku Search. | -Optional If you are not providing an availability end time or if the content is available indefinitely, omit this field from your search feed. |
-
| availabilityInfo | -Map\ |
- The list of ISO Alpha-2 two-letter country codes in which the content item is to be made available to Roku Search. | -Required, if the defaultAvailabilityCountries field is not specified. | -
| Field | -Type | -Description | -Required | -
|---|---|---|---|
| id | -String | -The third-party metadata provider ID that uniquely identifies the content item. For Gracenote/TMS, the ID is a 14-character string (for example, MV123456780000). The first 2 characters in the ID represent the unique ID domain applied to the program record:
|
- Required | -
| source | -String | -The source of the specified external ID. This must be one of the following values:
|
- Required | -
| - **Field** - | -- **Type** - | -- **Description** - | -- **Required** - | -
|---|---|---|---|
| - license - | -- Enum - | -
- The type of licensing terms for the channel.
- -
|
- - Required - | -
| - quality - | -- Enum - | -
- The playback resolution of the live channel:
- -
|
- - Required - | -
| - playId - | -- String - | -- A unique, immutable ID for the live channel that is used for deep linking. When customers search for this content item and select your channel to watch it, the **playId** is passed in a [deep link](https://developer.roku.com/docs/developer/discovery/implementing-deep-linking.md#mediatype-behavior) back to your channel. The playId may not be a URL. If you require this ID to be a URL please talk to your partner manager. - | -- Required - | -
| - availabilityInfo - | -- [AvailabilityInfo](#availabilityinfo) - | -- May include following: countryrestriction - | -- Required if defaults are not specified. - | -