<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Aura – </title>
    <link>/docs/components/global-use-cases/video-use-cases/tv-display/</link>
    <description>Recent content on Aura</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    
	  <atom:link href="/docs/components/global-use-cases/video-use-cases/tv-display/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: </title>
      <link>/docs/components/global-use-cases/video-use-cases/tv-display/tv-display-dialog/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/components/global-use-cases/video-use-cases/tv-display/tv-display-dialog/</guid>
      <description>
        
        
        &lt;h1 id=&#34;configuration-of-the-generic-dialog-for-tv-display-use-case&#34;&gt;Configuration of the generic-dialog for TV display use case&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;How the generic-dialog must be configured for this use case&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;specific-configuration&#34;&gt;Specific configuration&lt;/h2&gt;
&lt;p&gt;The TV display use case is triggered by the &lt;a href=&#34;../../../../../docs/components/global-use-cases/generic-dialog/generic-dialog-v3&#34;&gt;&lt;em&gt;&lt;strong&gt;generic-dialog-v3&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;.
For this use case, the required specific configuration is set below:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;id&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;generic-dialog-v3&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;channelDataVersion&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;v3&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;triggerConditions&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;intent&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;intent.tv.display&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;settings&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;locales&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;error&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                        &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;core:flc.answer.error&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;needTvResolution&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;onlyIn&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;movistar-plus&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;set-top-box&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;specific-values&#34;&gt;Specific values&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&#34;text-align:left&#34;&gt;Key&lt;/th&gt;
&lt;th style=&#34;text-align:left&#34;&gt;Value&lt;/th&gt;
&lt;th style=&#34;text-align:left&#34;&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;triggerConditions[?].settings.needTvResolution&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;true&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Get resolution from resolution API&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/components/global-use-cases/video-use-cases/tv-display/tv-display-plugin/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/components/global-use-cases/video-use-cases/tv-display/tv-display-plugin/</guid>
      <description>
        
        
        &lt;h1 id=&#34;tv-display-plugin&#34;&gt;TV display plugin&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Complex Logic Framework plugin for the TV display use case&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The TV display plugin resolves the request from a user displaying a channel or content.&lt;/p&gt;
&lt;p&gt;It includes some key steps described in the following sections.&lt;/p&gt;
&lt;h2 id=&#34;validate-input-request&#34;&gt;Validate input request&lt;/h2&gt;
&lt;p&gt;This step validates that the input request fulfills all the requirements from the &lt;a href=&#34;../../../../../docs/components/complex-logic-framework/clf-global-plugins/input-validation-swagger/&#34;&gt;input schema&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If the input data has an error, the resource returned is:&lt;br&gt;
&lt;a href=&#34;../../../../../docs/components/global-use-cases/video-use-cases/global-resources/#common-resources-for-video-use-cases&#34;&gt;&lt;code&gt;tv:video.model-validation.request.error&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;display-channel-or-content&#34;&gt;Display channel or content&lt;/h2&gt;
&lt;p&gt;The display channel or content is based in the received entities.&lt;/p&gt;
&lt;p&gt;The display stage follows the steps set below:&lt;/p&gt;
&lt;h3 id=&#34;build-the-search_query-param&#34;&gt;Build the &lt;code&gt;search_query&lt;/code&gt; param&lt;/h3&gt;
&lt;p&gt;The display plugin builds a &lt;code&gt;search_query&lt;/code&gt; param using label values of entities to prioritize the searched channel content or video content. If the &lt;code&gt;label&lt;/code&gt; value is &lt;code&gt;null&lt;/code&gt; for an entity, then the &lt;code&gt;canon&lt;/code&gt; value is used.&lt;/p&gt;
&lt;p&gt;Entities used to search are grouped by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Channel entities&lt;/strong&gt;: &lt;code&gt;ent.audiovisual_channel&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Title entities&lt;/strong&gt;: &lt;code&gt;ent.audiovisual_documental_title&lt;/code&gt;, &lt;code&gt;ent.audiovisual_film_title&lt;/code&gt;, &lt;code&gt;ent.audiovisual_tvseries_title&lt;/code&gt; and &lt;code&gt;ent.audiovisual_tvshow_title&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Participant entities&lt;/strong&gt;: &lt;code&gt;ent.audiovisual_actor&lt;/code&gt; and &lt;code&gt;ent.audiovisual_director&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Genre entities&lt;/strong&gt;: &lt;code&gt;ent.audiovisual_genre&lt;/code&gt; and &lt;code&gt;ent.audiovisual_subgenre&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The priority to search using these entities is described as follows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If there are &lt;strong&gt;channel entities&lt;/strong&gt; and other entities, then the &lt;code&gt;search_query&lt;/code&gt; parameter is built only using the first channel entity.
&lt;ul&gt;
&lt;li&gt;For instance: &lt;code&gt;channel_name: &amp;quot;La 1&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;If there are &lt;strong&gt;title entities&lt;/strong&gt; and other entities, then the &lt;code&gt;search_query&lt;/code&gt; parameter is built only using title entities.
&lt;ul&gt;
&lt;li&gt;For instance: &lt;code&gt;title: (&amp;quot;Matrix&amp;quot; OR &amp;quot;La princesa prometida&amp;quot;)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;If there are &lt;strong&gt;participant entities&lt;/strong&gt; and other entities, then the &lt;code&gt;search_query&lt;/code&gt; parameter is built only using participant entities.
&lt;ul&gt;
&lt;li&gt;All entities (&lt;code&gt;ent.audiovisual_actor&lt;/code&gt; and &lt;code&gt;ent.audiovisual_director&lt;/code&gt;) are used for fields &lt;code&gt;actor&lt;/code&gt; and &lt;code&gt;director&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;For instance: &lt;code&gt;actor: (&amp;quot;Tom Cruise&amp;quot; OR &amp;quot;Martin Scorsese&amp;quot;) OR director: (&amp;quot;Tom Cruise&amp;quot; OR &amp;quot;Martin Scorsese&amp;quot;)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;If there are &lt;strong&gt;genre entities&lt;/strong&gt; and other entities, then the &lt;code&gt;search_query&lt;/code&gt; parameter is built only using genre entities.
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;ent.audiovisual_genre&lt;/code&gt; is used with the field &lt;code&gt;content_category&lt;/code&gt; and the &lt;code&gt;ent.audiovisual_subgenre&lt;/code&gt; with field &lt;code&gt;genre&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;For instance: &lt;code&gt;content_category: (&amp;quot;MOV&amp;quot; OR &amp;quot;SER&amp;quot; OR &amp;quot;DOC&amp;quot;) AND genre: (&amp;quot;Terror&amp;quot; OR &amp;quot;Acción&amp;quot;)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;If there are not any entities allowed, then a query param to search is not built.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;With this prioritization, the system builds a &lt;code&gt;search_query&lt;/code&gt; param that will be used to call the API video query for searching purposes.&lt;/p&gt;
&lt;h3 id=&#34;video-query-api&#34;&gt;Video query API&lt;/h3&gt;
&lt;p&gt;After preparing the &lt;code&gt;search_query&lt;/code&gt; parameter, we will make a query to &lt;a href=&#34;https://developers.baikalplatform.com/apis/video-contents/&#34;&gt;Video Contents normalized Kernel API&lt;/a&gt; by searching through all the possible fields with the remaining words.&lt;/p&gt;
&lt;p&gt;To make this API call, several parameters are needed, which are described below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;user_id&lt;/code&gt;: Input &lt;code&gt;data[aura_user][user_id]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;administrative_number&lt;/code&gt;: Input &lt;code&gt;data[app_context][user][account_number]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;access_token&lt;/code&gt;: Input &lt;code&gt;data[aura_user][access_token]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scopes&lt;/code&gt;: Input &lt;code&gt;data[aura_user][scopes]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;purposes&lt;/code&gt;: Input &lt;code&gt;data[aura_user][purposes]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;device_type&lt;/code&gt;: Input &lt;code&gt;data[app_context][device][type]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;catalog_types&lt;/code&gt;: use &lt;code&gt;LIVE&lt;/code&gt; value if there are &lt;strong&gt;channel entities&lt;/strong&gt;, else use &lt;code&gt;VOD,LIVE,L7D&lt;/code&gt; value  for &lt;strong&gt;title entities&lt;/strong&gt;, &lt;strong&gt;participant entities&lt;/strong&gt; or &lt;strong&gt;genre entities&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;search_query&lt;/code&gt;: String with a custom search query based in the received entities.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;show_series&lt;/code&gt;: &lt;code&gt;series&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;commercialization_types&lt;/code&gt;: List made by &lt;code&gt;SVOD&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;max_quality&lt;/code&gt;: Input &lt;code&gt;data[app_context][device][max_quality]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;order&lt;/code&gt;: &lt;code&gt;personal&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;commercial_offer&lt;/code&gt;: Input &lt;code&gt;data[app_context][user][profile]&lt;/code&gt; if exists. Otherwise, do not use this param.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;live_at&lt;/code&gt;: if there are &lt;strong&gt;channel entities&lt;/strong&gt; use UTC current time at which the request is made. Otherwise, do not use this param.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;profile&lt;/code&gt;: Input &lt;code&gt;data[app_context][user][video_profile_name]&lt;/code&gt; if exists. Otherwise, do not use this param.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;current_region&lt;/code&gt;: Input &lt;code&gt;data[app_context][location][currentRegion]&lt;/code&gt; if exists. Otherwise, do not use this param.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The fields &lt;code&gt;current_region&lt;/code&gt; and &lt;code&gt;profile&lt;/code&gt; may not be implemented in certain cases and this could give the error &lt;code&gt;501 Not Implemented&lt;/code&gt; in the video API according to the documentation.
To prevent this problem, we should send these fields only when input data has this value.&lt;/p&gt;
&lt;h3 id=&#34;display-response&#34;&gt;Display response&lt;/h3&gt;
&lt;p&gt;When a user requests for displaying a channel, the following possible scenarios can occur for the response:&lt;/p&gt;
&lt;p&gt;a. Receive no results at all. Then, it executes the &lt;a href=&#34;#contingency-search&#34;&gt;contingency search&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;b. Receive content with channel info. The returned resource is &lt;a href=&#34;../../../../../docs/components/global-use-cases/video-use-cases/tv-display/resources/#specific-resources-for-the-use-case-tv-display&#34;&gt;&lt;code&gt;tv:video.display.by-channel.single-result&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;c. Receive content with channel info has already been broadcast or recieve a video content. The returned resource is &lt;a href=&#34;../../../../../docs/components/global-use-cases/video-use-cases/tv-display/resources/#specific-resources-for-the-use-case-tv-display&#34;&gt;&lt;code&gt;video.display.by-default.single-result&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;d. Receive content with channel info that has not been broadcast yet or the content does not have enough information to be played. The returned resource is &lt;a href=&#34;../../../../../docs/components/global-use-cases/video-use-cases/tv-display/resources/#specific-resources-for-the-use-case-tv-display&#34;&gt;&lt;code&gt;video.display.by-default.detail-result&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;e. Receive more than one type of content with channel info or video content. The returned resource is &lt;a href=&#34;../../../../../docs/components/global-use-cases/video-use-cases/tv-display/resources/#specific-resources-for-the-use-case-tv-display&#34;&gt;&lt;code&gt;tv:video.display.by-default.multiple-results&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;f. Receive an API error. The returned resource is &lt;a href=&#34;../../../../../docs/components/global-use-cases/video-use-cases/global-resources/#common-resources-for-video-use-cases&#34;&gt;&lt;code&gt;tv:video.api.answer.error&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;contingency-search&#34;&gt;Contingency search&lt;/h2&gt;
&lt;p&gt;The contingency search is a more in-depth search to get, at least, one response. This search uses the entire utterance in every search field.&lt;/p&gt;
&lt;p&gt;Contingency search is based on the following steps:&lt;/p&gt;
&lt;h3 id=&#34;normalization-section&#34;&gt;Normalization section&lt;/h3&gt;
&lt;p&gt;When a request is made by the user, it is possible to find certain words with no real value for Aura, so the system is not able to redirect them to obtain a response. For this reason, a list of forbidden words known as &amp;ldquo;ignore-words&amp;rdquo; will be declared, which will be eliminated.&lt;/p&gt;
&lt;p&gt;The first step is to transform the entire utterance received as input to lowercase, removing all non-alphanumeric characters and separators. Once the utterance has been normalized, the words that belong to the list of &amp;ldquo;ignore-words&amp;rdquo; are eliminated.&lt;/p&gt;
&lt;p&gt;This list is declared in a resource file called &lt;code&gt;normalizer_rules.json&lt;/code&gt;. This file can be found in the following path:
&lt;em&gt;src.aura_clf_video.resources.[language].normalizer_rules.json&lt;/em&gt;
Where [&lt;code&gt;language&lt;/code&gt;] must be replaced by each language, for example: &lt;code&gt;es-es&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If the language does not have the normalizer rule defined, it will be redirected to a default folder:
&lt;em&gt;src.aura_clf_video.resources.default.normalizer_rules.json&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If, for example, the language is Spanish, the path to the resource where the normalization rules are defined will be:
&lt;em&gt;src.aura_clf_video.resources.es-es.normalizer_rules.json&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Normalizer rules structure
It is a dictionary where all the items are declared in a list as shown below:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;{
  &amp;#34;ignore_items&amp;#34;: [
    &amp;#34;ignore item 1&amp;#34;,
    &amp;#34;ignore item 2&amp;#34;
  ]
}
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Validation of resource content&lt;br&gt;
The normalization is done sequentially, a previous rule cannot affect a succeeding one.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The utterance is &amp;ldquo;ok aura some&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;We define &amp;ldquo;aura&amp;rdquo; and also &amp;ldquo;ok aura&amp;rdquo; in the &amp;ldquo;ignore-words&amp;rdquo; list.&lt;/li&gt;
&lt;li&gt;If we remove &amp;ldquo;aura&amp;rdquo; firstly from the original utterance, we obtain the following normalized utterance: &amp;ldquo;ok some&amp;rdquo;. In this case, &amp;ldquo;ok aura&amp;rdquo; does not have any effect.&lt;/li&gt;
&lt;li&gt;In short, the correct order should be: first, remove &amp;ldquo;ok aura&amp;rdquo; and, after that, remove &amp;ldquo;aura&amp;rdquo;. In this case, we will obtain the final utterance as &amp;ldquo;some&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;ldquo;Ignore-words&amp;rdquo; will be automatically validated in order to prevent this behavior in every Pull Request.&lt;/p&gt;
&lt;p&gt;If after normalization the normalized phrase is empty, the resource returned is:
&lt;a href=&#34;../../../../../docs/components/global-use-cases/video-use-cases/tv-display/resources/#specific-resources-for-the-use-case-tvdisplay&#34;&gt;&lt;code&gt;tv:video.display.contingency.no-results&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;api-video-query&#34;&gt;API video query&lt;/h3&gt;
&lt;p&gt;After normalizing, we will query the Telefonica Kernel video API by searching through all possible fields with the remaining words.&lt;/p&gt;
&lt;p&gt;To make this API call, a series of parameters are going to be needed, which are described below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;user_id&lt;/code&gt;: Input &lt;code&gt;data[aura_user][user_id]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;administrative_number&lt;/code&gt;: Input &lt;code&gt;data[app_context][user][account_number]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;access_token&lt;/code&gt;: Input &lt;code&gt;data[aura_user][access_token]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scopes&lt;/code&gt;: Input &lt;code&gt;data[aura_user][scopes]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;purposes&lt;/code&gt;: Input &lt;code&gt;data[aura_user][purposes]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;device_type&lt;/code&gt;: Input &lt;code&gt;data[app_context][device][type]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;catalog_types&lt;/code&gt;: List that is made by &lt;code&gt;VOD&lt;/code&gt;, &lt;code&gt;LIVE&lt;/code&gt; and &lt;code&gt;L7D&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;search_query&lt;/code&gt;: Is a joint of the normalized phrase by &lt;code&gt;OR&lt;/code&gt; operator. Use this format to search by any fields. Example: &amp;ldquo;La resistencia Shameless&amp;rdquo; the &lt;code&gt;search_query&lt;/code&gt; is &amp;ldquo;(La OR resistencia OR Shameless)&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;show_series&lt;/code&gt;: &lt;code&gt;series&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;profile&lt;/code&gt;: Input &lt;code&gt;data[app_context][user][video_profile_name]&lt;/code&gt;. This field may not be implemented in some cases and this could give the error &lt;code&gt;501 Not Implemented&lt;/code&gt; in the video API according to the documentation.
To prevent this problem, we should send this field only when input data has this value.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;commercialization_types&lt;/code&gt;: List made by &lt;code&gt;SVOD&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;max_quality&lt;/code&gt;: Input &lt;code&gt;data[app_context][device][max_quality]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;order&lt;/code&gt;: &lt;code&gt;personal&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;current_region&lt;/code&gt;: Input &lt;code&gt;data[app_context][location][currentRegion]&lt;/code&gt; if exists. Otherwise, do not use this param.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;contingency-search-response&#34;&gt;Contingency search response&lt;/h3&gt;
&lt;p&gt;When performing a contingency search, there are four possible scenarios for the response received by the search:&lt;/p&gt;
&lt;p&gt;a. Receive an API error.  The returned resource is &lt;a href=&#34;../../../../../docs/components/global-use-cases/video-use-cases/global-resources/#common-resources-for-video-use-cases&#34;&gt;&lt;code&gt;tv:video.api.answer.error&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;b. Receive no results at all. The returned resource is &lt;a href=&#34;../../../../../docs/components/global-use-cases/video-use-cases/tv-display/resources/#specific-resources-for-the-use-case-tvdisplay&#34;&gt;&lt;code&gt;tv:video.display.contingency.no-results&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;c. Receive a single result. The returned resource is &lt;a href=&#34;../../../../../docs/components/global-use-cases/video-use-cases/tv-display/resources/#specific-resources-for-the-use-case-tvdisplay&#34;&gt;&lt;code&gt;tv:video.display.contingency.single-result&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;d. Receive several results. The returned resource is &lt;a href=&#34;../../../../../docs/components/global-use-cases/video-use-cases/tv-display/resources/#specific-resources-for-the-use-case-tvdisplay&#34;&gt;&lt;code&gt;tv:video.display.contingency.multiple-results&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;response&#34;&gt;Response&lt;/h2&gt;
&lt;p&gt;The response follows this &lt;a href=&#34;../../../../../docs/components/complex-logic-framework/api-definition/&#34;&gt;response schema&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Where:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;intent&lt;/code&gt;: input intent.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;entities&lt;/code&gt;: input entities.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;result_intent&lt;/code&gt;: This field is always &lt;code&gt;MEDIA.SEARCH&lt;/code&gt; except when the resource is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;video.display.by-channel.single-result&lt;/code&gt;, then the field value is &lt;code&gt;CHANNEL.PLAY&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;video.display.by-default.single-result&lt;/code&gt;, then the field value is &lt;code&gt;CONTENT.PLAY&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;resources&lt;/code&gt;: List of response resources that includes three main parameters:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;type&lt;/code&gt;: Type of the response resource.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;name&lt;/code&gt;: Name of the response resource. Example: &lt;a href=&#34;../../../../../docs/components/global-use-cases/video-use-cases/tv-display/resources/#specific-resources-for-the-use-case-tv-display&#34;&gt;&lt;code&gt;tv:video.display.by-channel.single-result&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;params&lt;/code&gt;: This field returns any required parameter in the resource.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;payload&lt;/code&gt;: Information provided by the &lt;strong&gt;Kernel API&lt;/strong&gt;, when we make the display request.
If we receive a response, this field includes the following parameters:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;type&lt;/code&gt;: The value of this field depends on the type of data included in the field &lt;code&gt;data&lt;/code&gt; (info returned by the API):
&lt;ul&gt;
&lt;li&gt;If it is a value: &lt;code&gt;details&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;If it is a list: &lt;code&gt;content_list&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;data&lt;/code&gt;: It returns the information provided by the &lt;strong&gt;Kernel&lt;/strong&gt; API.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;status&lt;/code&gt;: Final status request. This field includes the following parameters:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;code&lt;/code&gt;: Status code.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;message&lt;/code&gt;: Status message, which describes the status code.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;params&lt;/code&gt;: Parameter that sends details of status. This field does not appear if it is empty.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;actions&lt;/code&gt;: Actions to follow with the result of request. This plugin could include the following actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;REMOTEON.ZAPTO&lt;/code&gt;: The target for this action is &lt;code&gt;stb&lt;/code&gt; and its parameters are:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;channelId&lt;/code&gt;, &lt;code&gt;channelNumber&lt;/code&gt; and &lt;code&gt;deviceId&lt;/code&gt; when we have the resource &lt;code&gt;tv:video.display.by-channel.single-result&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;REMOTEON.PLAYTO&lt;/code&gt;: The target for this action is &lt;code&gt;stb&lt;/code&gt; and its parameters are:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;contentId&lt;/code&gt;, &lt;code&gt;deviceId&lt;/code&gt;, &lt;code&gt;liveProgramId&lt;/code&gt; and &lt;code&gt;catalogType&lt;/code&gt; when we have the resource &lt;code&gt;video.display.by-default.single-result&lt;/code&gt; and content has already been broadcast.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;contentId&lt;/code&gt;, &lt;code&gt;deviceId&lt;/code&gt; and &lt;code&gt;catalogType&lt;/code&gt; when we have the resource &lt;code&gt;video.display.by-default.single-result&lt;/code&gt; and content is a video content.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MAKE_SOUND&lt;/code&gt;: The target for this action is &lt;code&gt;channel&lt;/code&gt; and its unique parameter is &lt;code&gt;sound&lt;/code&gt; with the value:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;positive&lt;/code&gt; when we have the resource &lt;code&gt;tv:video.display.by-channel.single-result&lt;/code&gt;, &lt;code&gt;video.display.by-default.single-result&lt;/code&gt;, &lt;code&gt;video.display.by-default.detail-result&lt;/code&gt;, &lt;code&gt;tv:video.display.by-default.multiple-results&lt;/code&gt;, &lt;code&gt;tv:video.display.contingency.single-result&lt;/code&gt;, &lt;code&gt;tv:video.display.contingency.multiple-results&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;negative&lt;/code&gt; when we have the resource &lt;code&gt;tv:video.display.contingency.no-results&lt;/code&gt; and &lt;code&gt;tv:video.api.answer.error&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;conditions&lt;/code&gt;: Condition for the actions to be applied.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/components/global-use-cases/video-use-cases/tv-display/resources/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/components/global-use-cases/video-use-cases/tv-display/resources/</guid>
      <description>
        
        
        &lt;h1 id=&#34;tv-display-use-case-resources&#34;&gt;TV display use case resources&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Resources used by the TV display use case&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The TV display use case will use three different types of resources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../../../../../docs/components/global-use-cases/video-use-cases/global-resources/#aura-platform-global-resources&#34;&gt;Aura Platform global resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../../../../docs/components/global-use-cases/video-use-cases/global-resources/#common-resources-for-video-use-cases&#34;&gt;Common resources for video use cases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#specific-resources-for-the-use-case-tvdisplay&#34;&gt;Specific resources for the use case: tv.display&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;specific-resources-for-the-use-case-tvdisplay&#34;&gt;Specific resources for the use case: tv.display&lt;/h2&gt;
&lt;p&gt;The resources associated to the TV display plugin are defined below:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Specific resources for tv.display use case&lt;/th&gt;
&lt;th&gt;Definition&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;th&gt;Managed by&lt;/th&gt;
&lt;th&gt;Scope&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;video.display.by-channel.single-result&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Resource returned when the search finds one channel and is broadcasting&lt;/td&gt;
&lt;td&gt;Esto es lo que están emitiendo ahora en ese canal&lt;/td&gt;
&lt;td&gt;tv.display plugin&lt;/td&gt;
&lt;td&gt;Use case-specific&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;video.display.by-default.single-result&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Resource returned when the search finds one channel content has already been broadcast or finds a video content&lt;/td&gt;
&lt;td&gt;Voy a ello, dame un segundo&lt;/td&gt;
&lt;td&gt;tv.display plugin&lt;/td&gt;
&lt;td&gt;Use case-specific&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;video.display.by-default.detail-result&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Resource returned when the search finds one channel content or video content that has not been broadcast yet, or the content does not have enough information to be played&lt;/td&gt;
&lt;td&gt;Mira, he encontrado este contenido&lt;/td&gt;
&lt;td&gt;tv.display plugin&lt;/td&gt;
&lt;td&gt;Use case-specific&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tv:video.display.by-default.multiple-results&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Resource returned when the search finds more than one channel content or content on demand&lt;/td&gt;
&lt;td&gt;He encontrado estos contenidos relacionados con tu petición&lt;/td&gt;
&lt;td&gt;tv.display plugin&lt;/td&gt;
&lt;td&gt;Use case-specific&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tv:video.display.contingency.single-result&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Resource returned when the contingency search finds one result&lt;/td&gt;
&lt;td&gt;He encontrado este contenido relacionado&lt;/td&gt;
&lt;td&gt;tv.display plugin&lt;/td&gt;
&lt;td&gt;Use case-specific&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tv:video.display.contingency.multiple-results&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Resource returned when the contingency search finds more than one result&lt;/td&gt;
&lt;td&gt;He encontrado estos contenidos relacionados&lt;/td&gt;
&lt;td&gt;tv.display plugin&lt;/td&gt;
&lt;td&gt;Use case-specific&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tv:video.display.contingency.no-results&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Resource returned when the contingency search does not find any result&lt;/td&gt;
&lt;td&gt;Lo siento, no encuentro lo que dices&lt;/td&gt;
&lt;td&gt;tv.display plugin&lt;/td&gt;
&lt;td&gt;Use case-specific&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/components/global-use-cases/video-use-cases/tv-display/nlp-config-obs/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/components/global-use-cases/video-use-cases/tv-display/nlp-config-obs/</guid>
      <description>
        
        
        &lt;h1 id=&#34;nlp-configuration-by-ob&#34;&gt;NLP configuration by OB&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;NLP configuration by OB for the &lt;strong&gt;TV display&lt;/strong&gt; use case&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The current document includes the configuration of the NLP model for the normalized &lt;strong&gt;TV display&lt;/strong&gt; use case in the OBs where it is available.&lt;/p&gt;
&lt;h2 id=&#34;brazil&#34;&gt;Brazil&lt;/h2&gt;
&lt;p&gt;The &lt;em&gt;aura-nlpdata&lt;/em&gt; repository structure in Brazil is organized by channel: &lt;em&gt;aura-nlpdata-br-[channel]&lt;/em&gt;. Each repository will contain the files for the available use cases in this channel.&lt;/p&gt;
&lt;p&gt;The following configuration corresponds to the &lt;strong&gt;STB channel&lt;/strong&gt;, which is included in the repository: &lt;a href=&#34;https://github.com/Telefonica/aura-nlpdata-br-stb&#34;&gt;https://github.com/Telefonica/aura-nlpdata-br-stb&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;intent&#34;&gt;Intent&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;intent.tv.display&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;entities&#34;&gt;Entities&lt;/h3&gt;
&lt;p&gt;| &lt;code&gt;ent.audiovisual_channel&lt;/code&gt;    | &amp;ldquo;Quiero ver La 1&amp;rdquo;    |&lt;/p&gt;
&lt;h3 id=&#34;pipeline-stages&#34;&gt;Pipeline stages&lt;/h3&gt;
&lt;p&gt;The following stages of STB&amp;rsquo;s pipeline have been used to develop this UC:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CluRecognizerWrapper&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PygrapeGrammarWrapper&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;EntityTaggerAdapterWrapper&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The whole &lt;code&gt;pipeline.json&lt;/code&gt;file is available at: &lt;a href=&#34;https://github.com/Telefonica/aura-nlpdata-br-stb/blob/master/data/pt-br/stb/pipeline.json&#34;&gt;https://github.com/Telefonica/aura-nlpdata-br-stb/blob/master/data/pt-br/stb/pipeline.json&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;spain&#34;&gt;Spain&lt;/h2&gt;
&lt;p&gt;The &lt;strong&gt;TV display&lt;/strong&gt; use case is available for three channels: Movistar Plus, Movistar Home and STB.&lt;/p&gt;
&lt;h3 id=&#34;intent-1&#34;&gt;Intent&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;intent.tv.display&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;entities-1&#34;&gt;Entities&lt;/h3&gt;
&lt;p&gt;| &lt;code&gt;ent.audiovisual_channel&lt;/code&gt;         | &amp;ldquo;Quiero ver La 1&amp;rdquo;                           |
| &lt;code&gt;ent.audiovisual_*_title&lt;/code&gt; | &amp;ldquo;Ver Titanic&amp;rdquo; |
| &lt;code&gt;ent.audiovisual_subgenre&lt;/code&gt;         | &amp;ldquo;Pon esta comedia&amp;rdquo;                           |
| &lt;code&gt;ent.audiovisual_genre&lt;/code&gt;            | &amp;ldquo;Pon la película&amp;rdquo;                          |
| &lt;code&gt;ent.audiovisual_actor&lt;/code&gt;            | &amp;ldquo;Quiero ver la peli de Brad Pitt&amp;rdquo;              |
| &lt;code&gt;ent.audiovisual_director&lt;/code&gt;         | &amp;ldquo;Ver el documental de Almodóvar&amp;rdquo; |&lt;/p&gt;
&lt;h3 id=&#34;pipeline-stages-1&#34;&gt;Pipeline stages&lt;/h3&gt;
&lt;p&gt;The following stages of STB&amp;rsquo;s pipeline have been used to develop this UC:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CluRecognizerWrapper&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PygrapeGrammarWrapper&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;EntityTaggerAdapterWrapper&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The whole &lt;code&gt;pipeline.json&lt;/code&gt; files can be checked here for each channel:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Movistar Plus: &lt;a href=&#34;https://github.com/Telefonica/aura-nlpdata-es/blob/master/data/es-es/mp/pipeline.json&#34;&gt;https://github.com/Telefonica/aura-nlpdata-es/blob/master/data/es-es/mp/pipeline.json&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Movistar Home: &lt;a href=&#34;https://github.com/Telefonica/aura-nlpdata-es/blob/master/data/es-es/mh/pipeline.json&#34;&gt;https://github.com/Telefonica/aura-nlpdata-es/blob/master/data/es-es/mh/pipeline.json&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;STB: &lt;a href=&#34;https://github.com/Telefonica/aura-nlpdata-es/blob/master/data/es-es/stb/pipeline.json&#34;&gt;https://github.com/Telefonica/aura-nlpdata-es/blob/master/data/es-es/stb/pipeline.json&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
  </channel>
</rss>
