Authors: Jim Taylor, DECE; Craig Seidel, MovieLabs
The Rights Token and metadata structures facilitate a variety of different views into an UltraViolet Account's Rights Locker (Library). In addition to the usual info (title, genre, ratings, etc.) there are features to support grouping (as in episodes and series).
Here are some things to look out for:
These rules apply regardless of the implementation environment. That is, web-based applications, smartphone apps, back-end systems feed set-top boxes, and any other implementation that shows a Locker view should consider these recommendations. Implementers may choose to use metadata from the Coordinator or from other sources.
(See the Implementation Requirements portion of the License Agreements)
Rights Tokens are used to record ownership for the purpose of fulfilling, streaming, licensing, displaying, support, etc. The Rights Token keeps track of information related to its acquisition (date, Retailer, purchasing User, etc.). The Rights Token exists at a very granular level, often too granular for standalone display. The following guidelines should help represent the Rights Token structure as a functional and appealing display.
Groups of related Rights Tokens should generally be shown in a collapsed view except when expansion would only show one item. I.e., when there is a season, don't show the individual episodes (unless there is only one). The exception is for complete TV series, which usually don't have artwork for the entire show, so it's generally best to show individual seasons.
The indicator of grouping is the BasicMetadata/Parent element. If it is present, the Content is part of something else and you'll likely want to group. Trees are built from the leaves up, so individual assets should be parsed to find any parent IDs, which can then be parsed to find any higher-level parent metadata. Different parent relationships can be shown in different groups. For example, the "isepisodeof" episodes of a seasons are best shown separate from the "issupplementto" bonus content.
The TitleDisplay60 element of an asset should contain only the name of that item, not the name of the parent or grandparent. E.g., for episode 4 of Breaking Bad season 1, the title of the episode is "Gray Matter", the title of the season is "Season 1" and the title of the series is "Breaking Bad". Depending on how the grouping is done, concatenation of series and season title or series, season, and episode title may be needed. In almost all cases a season name for display to the user should be composed of TitleDisplay60 of the series (the parent of the season) followed by TitleDisplay60 of the series. However, some Content Providers have incorrectly provisioned metadata, resulting in duplication of series and season names in the episode name. This problem will be solved once all Content Providers have cleaned up their metadata, but in the meantime it should be accounted for.
IDs, Content Structure, Metadata, and Bundles provides more detail on this topic.
Content can also be grouped or filtered by metadata such as
* Metadata from the Coordinator. Other examples of metadata would come from other sources.
Content can be sorted alphabetically. Use the TitleSort element that's specifically provided in asset metadata to ensure that words such as "the" are not included in the sort.
Bundles are the UltraViolet equivalent of "shrink wrap," that allow a Retailer to indicate what content was bought as a group. If there is SoldAs and Bundle information with a Rights Token, you may wish to provide a view that shows how the content was grouped at purchase.
Note: Bundles are not used for TV seasons, movie collections, and franchises. Metadata hierarchical info is used to show these relationships. Bundles are only for arbitrarily grouped titles.
See IDs, Content Structure, Metadata, and Bundles for more information.
There is nothing preventing an Account from having multiple Rights Tokens for a single title (i.e., same ALID). The scenarios include:
In this case, you should display only one instance with the union of the Rights. For example, let's say you see a title with two Rights Tokens, one with HD and one with SD, you should display the title once, showing both HD and SD Rights. Generally you do not need to indicate the User has two identical copies, but you might wish to provide this information in a detail view (see the Web Portal detail view for an example).
Holdback information (AssetRestriction) in the Coordinator is advisory only, and holdbacks may actually differ from Retailer to Retailer and LASP to LASP depending on their agreements with the Content Provider. Even when AssetRestriction information is present for an ALID, it's recommended that it not be displayed to users.
The Web Portal uses the following algorithm to choose which language to use when presenting metadata. Implementers may wish to take a similar approach.
1) Metadata matching the User’s primary language, if available
User language: <languages> <language primary="true">en-GB</language> </languages> AND Metadata LocalizedInfo language: <localizedinfo language="en-GB"> </localizedinfo>
2) If this fails, then metadata matching secondary user language(s), if any (in any order)
3) If this fails, then metadata in the default language (LocalizedInfo@default attribute), if available
<md:localizedinfo default="true" language="en-US"> </md:localizedinfo>
4) If this fails, then metadata with language tag root of "en" (if there are multiple, then the first matching instance)
5) If this fails, then the first LocalizedInfo entry