OpenTV ENTera & OpenTV Platform Documentation

Module logging

Disney+ adapter supports 4 level of logging:

  1. INFO

  2. DEBUG

  3. ERROR

  4. WARN

If you set the log level to INFO, it will include INFO, WARNING, ERROR and DEBUG message will not be included here

Level

Numeric value

ERROR

40

WARNING

30

INFO

20

DEBUG

10

E.g., of different message

INFO

20210603 15:55:09 INFO disney_mapper_base disney_mapper_base.py._populate_bcm_metadata_locales():760 - DISNEY:BCM metadata locales {'zh-SG': 'zh_SG', 'en-GB': 'en_GB'}

ERROR

20210603 15:58:32 ERROR disney_mapper_base disney_mapper_base.py. convert():675 - Discarding Mapping [availabilityMapper] as content is not publishable for disney contentType [episode] & itemId [episode2]

WARN

20210603 15:58:32 WARNING disney_episode disney_episode.py. convert():288 - episode [episode2] doesn't have genres metadata, fetching from series or season item

The first number contains timestamp(YYYYMMDD HH:MM:SS) followed by loglevel, filename, function name, line number and message to be displayed.


Here are some scenarios for logging error messages: 

Error scenarios

Error Message

Unhandled error while fetching CPM business rule

Error CPM business rule are empty, Ingestion aborted


Unhandled error while fetching CPM product link

Error CPM product link is empty, Ingestion aborted.


Unhandled error while fetching CPM commercial product

Error CPM commercial product is empty, Ingestion aborted.


Unhandled error while fetching Business profile

Error Business profile is empty, Ingestion aborted.


While querying D+ metadata server for the items if any new or unknown response which adapter unaware how to handle.

Failed to retrieve disney+ metadata from server. Encounter 500 Internal Server Error for url: <url>

HTTP Connection error while retrieving data from Disney +. E.g., either server is down or server not responding

Failed to retrieve disney+ metadata from server. Encounter 404 Client Error: Not found for url: <url>

technical or error messages from platform

Failure response text ['{"errorMessage": "Content group season with providerId DPlus and providerResourceId DPlus_series1 SeasonNumber must be unique across all the child season content group of its parent content group"}'] Status code [400]

or

Failure response text ['{"technicalMessage": "Field (name) of ContentPublishingWindow with name  (' + provider_res_id + ') must not be blank"}] Status code [400]

When error occurred during creation OPF node

Exception: reason 'Error on creating OPF Node'

When internal error occurred for e.g., while data transfer between module

Error getting data from transformer <error details>

While posting bulk data to OPF3 server, requests was not received by server.

Ingestion failed for items [item1] with reason Gateway Timeout

If request did not reach server or if request reached but server could not send response to client

Reason: Empty response

Unknow server response not handled in adapter

Exception : status code [405], response Method Not Allowed for <url>

HTTP request error while deleting data from OPF server

Exception : HTTPError : PI_PRID [<provider resourceid>] Status code [<Error code >] Response <error> Error <error details>"

If request did not reach server or if request reached but server could not send response to client

Failed Response [<error>] Status code [<Error code>]

When episode's corresponding series and season has any field entry which is mandatory for platform is missing then that episode will be discarded for ingestion. Exact issue can be found by checking the mapped series and season data for episode

Episode itemId: [episode1], Title: [I Do, I Don't] Discarded episode item as corresponding season or series item already discarded due to erroneous metadata

When D+ metadata has deeplinks info without "playMedia" value in "action" key

details action type not available in deeplink metadata, discarded the item of item id= <itemId>

When D+ metadata has deeplinks info without "details" value in "action" key

playMedia action type not available in deeplink metadata, discarded the item of item id= <itemId>

When D+ metadata has images key without any info

e.g., "images": []


<contentType> itemId: [<itemId>], Title: [<title>] has no entry: [] for [<D+ object which empty list>]

e.g.

If Images metadata is empty list   <movie itemId: [movie2], Title: [Toy Story 3] has no entry: [] for [images]>

When operator configured locale does not present in D+ adapter supported locale

operator configured locale <operator locale> is not available in list of ingester supported locale < starhub constant list>, ingestion aborted.

e.g.  Given ingester supported locales are locale_mapping = {"en-GB": "en_GB", "zh-SG": "zh_SG"} and Operator locales are en_GB, en_US

Above condition will produce following error <operator configured locale en_US is not available in list of ingester supported locale en-GB, zh-SG,ingestion aborted>

When bcm locale configuration is empty 

operator bcm locale is not configured, ingestion aborted

When no data can used from availability object

<contentType> itemId: [<itemId>], Title: [<title>] issue in Availability Object. Object list doesn't have any data which can be accessed for processing. e.g.

<movie itemId: [movie1], Title: [Toy Story 3] issue in Availability Object. Object list doesn't have any data which can be accessed for processing>

When item (movie/short- form/series/season/episode) in expired if availability "expires" date and time stamp info is older than current date and time

<contentType> itemId: [<itemId>], Title: [<title>] is expired, Discard item. e.g.

<movie itemId: [movie1], Title: [Toy Story 3] is expired, Discard item>

When for item(movie/short-form/series/season/episode) in availability metadata audienceType is not available and content is already expired

<contentType> itemId: [<itemId>], Title: [<title>] doesn't have AudienceType field and expired too, Discard item. e.g.

movie itemId: [movie1], Title: [Toy Story 3] doesn't have AudienceType field and expired too, Discard item

When for item(movie/short-form/series/season/episode) in D+ metadata any field is empty or not provided with any info. For eg in D+ metadata  "credits" info is empty  i.e. "credits" = []

movie itemId: [movie1], Title: [Toy Story 3] Action field is not available

When for item(movie/short-form/series/season/episode) credit role doesn’t match with Disney's adapter mapping. For e.g. Disney+ and Platform supported role mapping {"starring": "Actors", "director": "Directors", "creator": "Writers"}

<contentType> itemId: [<itemId>], Title: [<title>] credits metadata role {<D+ metadata role>} in Case-insensitive format not found in {<Disney constant role mapping>}  e.g. Given role mapping dictionary {"director": "Directors", "creator": "Writers"} and D+ metadata credits have role Starring will produce below error.

<movie itemId: [movie4], Title: [Toy Story 3] credits metadata role Starring in Case-insensitive format not found in director, creator>

When item(movie/short-form/series/season/episode) doesn’t have preferred rating agency in rating metadata. For eg if MDA is operator supported preferred rating agency, if same rating is not available in D+ ratings's system info then adapter will report this error message


<contentType> itemId: [<itemId>], Title: [<title>] does not have preferred rating system agency <Preferred rating agency> in ratings metadata. e.g.

<series itemId: [series2], Title: [Lizzie McGuire] does not have preferred rating system agency MDA in ratings metadata>

When item(movie/short-form/series/season/episode) doesn’t have bcm supported locale in its text metadata.

[<contentType>] ItemId: [<itemId>], Title: [<title>] does not have matching locale [<BCM supported locale>] in text metadata, Discard item. e.g.

<short-form ItemId: [short-form4], Title: [Title not available for en-GB locale] does not have matching locale en-GB, en-US in text metadata, Discard item>

If genres info not available in episode metadata, adapter will try to get it from corresponding series or season ratings info, if genres info does not present in both series and season itself then adapter will discard the specific episode item from ingestion

Episode itemId: [<itemId>], Title: [<title>] Genres metadata is not available in episode's corresponding series [<seriesId>] and season [<seasonId>] item, discarded the episode item. e.g.

<Episode itemId: [episode2], Title: [I Do, I Don't] Genres metadata is not available in episode's corresponding series [series2] and season [season2] item, discarded the episode item>

If genres info does not present in episode metadata, adapter will try to get it from corresponding series or season genres info, if all the genres in list of series or season genres info doesn't match with list of operators support sub genre list.

<Episode itemId: [<itemId>] Title: [<title>] doesn't have operator supported genre [<operator supported genre>] in its corresponding series itemId [<seriesId>] >

or

<Episode itemId: [<itemId>] Title: [<title>] doesn't have operator supported genre [<operator supported genre>] in its corresponding season itemId [<seriesId>]>


If ratings info not available in episode metadata, adapter will try to get it from corresponding series or season ratings info, if ratings info does not present in both series and season itself then adapter will discard the specific episode item from ingestion

<Episode itemId: [<itemId>], Title: [<title>] Rating metadata is not available in episode's corresponding series [<seriesId>] or season [<seasonId>] item>

When list of all genres in D+ movie metadata does not match with list of operators supported sub-genre list.

Movie itemId: [<itemId>] Title: [<title>] doesn't have operator supported sub-genre [<operator supported genre>]. e.g.

<Movie itemId: [movie1], Title: [Lizzie McGuire] doesn't have operator supported sub-genre Action-Adventure, Animals & Nature, Animation, Anthology, Comedy, Documentary, Docuseries, Drama, Fantasy, Game Show / Competition, Musical, Reality, Romance, Science Fiction, Sports, Talk Show, Variety>

When list of all genres in D+ season metadata does not match with list of operators supported sub-genre list.

Season itemId: [<itemId>] Title: [<title>] doesn't have operator supported sub-genre [<operator supported genre>]. e.g.

<Season itemId: [season1], Title: [Lizzie McGuire] doesn't have operator supported sub-genre Action-Adventure, Animals & Nature, Animation, Anthology, Comedy, Documentary, Docuseries, Drama, Fantasy, Game Show / Competition, Musical, Reality, Romance, Science Fiction, Sports, Talk Show, Variety>

When list of all genres in D+ series metadata does not match with list of operators supported sub-genre list.


Series itemId: [<itemId>] Title: [<title>] doesn't have operator supported sub-genre [<operator supported genre>]. e.g.

<Series itemId: [series1], Title: [Lizzie McGuire] doesn't have operator supported sub-genre Action-Adventure, Animals & Nature, Animation, Anthology, Comedy, Documentary, Docuseries, Drama, Fantasy, Game Show / Competition, Musical, Reality, Romance, Science Fiction, Sports, Talk Show, Variety>

Note: All messages mentioned above are message to be displayed, these will be prefixed by above mentioned format.  For example above mentioned error Exception: reason 'Error on creating OPF Node' will actually be 20210709 16:29:26 ERROR ingester ingester.py.create_node():1016 - Exception: reason 'Error on creating OPF Node'.