DECE Content Lifecycle Walkthrough
Content Examples
Product/Asset Description ALID APID BundleI
D
CID Single Movie (US, SD)
Name: Jim's Big Adventure ISAN:1 org:JBA
SD container file: video, English audio, English SDH
subtitles ISAN:1:A1 org:JBA:1
PD container file: video, English audio, English SDH subtitles
ISAN:1:A 2
org:JBA:2 Special Edition (US, SD)
Bundle Name: Craig’s Big Adventure Special Edition org:1 org:CBA-SE
Name: Craig's Big Adventure ISAN:2 org:1:1 org:CBA
SD container file: video, English audio, director's commentary audio, English SDH subtitles
ISAN:2:A 1
org:CBA:1 PD container file: video, English audio, director's
commentary audio, English SDH subtitles ISAN:2:A2 org:CBA:2 Name: The Making of Craig’s Big Adventure ISAN:3 org:1:2 org:MCBA SD container file: video, English audio ISAN:3:B
1
org:MCBA:1 PD container file: video, English audio ISAN:3:B
2 org:MCBA:2
Combined Edition (US, SD)
Bundle Name: The Big Adventure Series org:2 org:TBAS Name: Jim's Big Adventure ISAN:1
(same as above)
org:2:1 org:JBA SD container file (same as above) ISAN:1:A
1
org:JBA:1 PD container file (same as above) ISAN:1:A
2
org:JBA:2 Name: Craig's Big Adventure ISAN:2
(same as above)
org:2:2 org:CBA SD container file (same as above) ISAN:2:A
1
org:CBA:1 PD container file (same as above) ISAN:2:A
2
org:CBA:2 Name: The Making of Craig's Big Adventure ISAN:3
(same as above)
org:2:3 org:MCBA SD container file (same as above) ISAN:3:B
1
org:MCBA:1 PD container file (same as above) ISAN:3:B
2
org:MCBA:2 Name: Big Adventure Bloopers Reel ISAN:4 org:2:4 org:BAPR SD container file (video, audio) ISAN:4:A
1
org:BAPR:1 PD container file (video, audio) ISAN:4:A
2
org:BAPR:2 Single Movie (France, SD)
Name: Le Grand Adventure du Jim ISAN:5 org:LGAJ
SD container file: video (edited for more sex, less violence), French audio, English audio, English subtitles, French subtitles
ISAN:5:A 1
org:LGAJ:1 PD container file: video (edited for more sex, less
violence), French audio, English audio, English subtitles, French subtitles
ISAN:5:A
Process
[JT: Once steps are generally agreed on, each line below can become a row in a table with one column for each content example. Cells can be filled out with details for each step.]
Content Publisher
Starting point: Ready to make product available for sale and fulfillment
• Create
• Define the product (all the pieces of a title or “SKU”)
o Identify the work(s), optionally obtain ISAN(s) [refer to ISAN mapping] o Define product structure [refer to content/product structure guidelines] o Identify assets, information, terms, etc.
o Determine track assignment, coding parameters, encryption key structure, etc.
• Generate new or identify existing ALID(s) [size limits in metadata spec; implication of new vs. re-use]
• Prepare metadata [ref metadata spec] o Generate new or identify existing CID(s)
o Generate and gather metadata: basic, physical, composite object(s), container(s) o Generate and gather retail/business information
• Author/gather container(s) and burnable image(s)
o Gather/encode video, audio, subtitles, etc. for each profile defined in the product o Gather/encode burnable image(s) if product has SD profile
o Generate content encryption key(s) [ref spec]
One for container or one for video and one for audio One for [each] burnable image
o Create container(s) (ODCC)
Generate one APID for each container Add metadata
• Fill in required metadata header fields [video, audio, and subtitle track info; APID; short title, long title, sort title, summary?; duration, profile, ratings, languages, cover art images or URIs, chapter list (if chapters); release date, publisher, copyright]
• Embed XML metadata file and associated images (optional) [ref DECE Metadata spec]
Assign KID(s) to to-be-encrypted segments in each track
Map key(s) to KIDs [details out of scope? Recommended practice] Encrypt elementary stream payloads with key(s)
Construct container(s)
o Prepare DECE Burn Package(s) (DBP) [ref Media Format spec] Generate one APID for [each] burnable image
Fill in required metadata header fields
Gather/generate XML metadata file (DDF) (optional) Gather/generate disc info file (DIF)
Encrypt image (IMG) and add DECE header to produce IMX Zip DDF, DIF, and IMX to make single DBP file
• Prepare/gather content for LASPs as necessary for corresponding ALIDs
• Deliver
• Deliver to Coordinator (DECE REST interface) [ref Coordinator spec] o Post basic metadata for each new CID
o Post physical metadata for each APID
o Data by reference must persist [updates must be posted to Coord] Will be accessed by Roles across DECE ecosystem
o Map each ALID to a CID
o Map each profile of each ALID to one or more APIDs [May include holdback, regional restriction]
o If bundle(s) [if Content Publisher wants to define a product composed of multiple ALIDs], generate BundleID(s) and CID(s), create bundle with displayName, ALID, and metadata
• Make available to Retailer(s) (informative, details out of scope)
o Everything the Coordinator gets (or ALID(s)/BundleID(s) to get info from Coord) o Business information
• Deliver to DSP(s) (informative, details out of scope)
o [Goal is to get content to all DSPs fulfilling for the above Retailer(s)] o Container file(s) (APID embedded)
o Content decryption information, e.g., key(s), mapping(s) [ref asset map info in Coordinator spec]
• Make available to LASP(s) (optional, details out of scope) o At least ALID(s), plus any additional information
o Content and metadata [may or may not be in same form as delivered to Retailer and DSP] o [Maybe holdback and regional restriction info]
• Update
o Metadata update
Update version number and post to Coordinator [ref spec]
Optionally provide to Retailer(s) and LASP(s) as appropriate [recommend doing this to avoid burdening Coord]
Not allowed (strongly recommended not?) to restructure a bundle. I.e., don’t fundamentally change what has already been sold. [ref Coord spec]
o Bundle update [TBD]
o Content update (optional or mandatory)
Generate new container (must have new APID), update mapping (see below) Make available to DSP(s) and LASP(s)
o Mapping update
Use Coordinator API to update ALID to APID mapping Inform Retailer(s) and LASP(s) as appropriate
o Content recall
Use Coordinator API to map ALID to don’t-fulfill state
Informative: inform Retailer(s)/DSP(s)/LASP(s) to stop selling/licensing/streaming Retailer
Starting point: Authorized by Content Publisher to sell product
• Optionally bundle ALIDs together (create BundleID, CID, etc. and post to Coordinator)
• Provide offer to User (using retail/business information) based on profile(s) of one or more ALIDs (with or without defined Bundle)
• After purchase, create Rights Token in Coordinator for each ALID o ALID
o CID
o Bundle ID if bundle o Retailer ID
o License acquisition URL
o Rights info for each purchased profile: downloadable, streamable, 1 burn, etc. o Purchase info: Retailer ID, Account, User, purchase time, etc.
• Upon user request, redirect to DSP for fulfillment o At point of purchase
o On request from locker browsing UI? (device, DECE Web portal?)
o [Requirement to ensure container file(s) contain a license acquisition URL for every DRM?] DSP
• Optionally (TBD) insert license acquisition URL(s) into each container file o Optionally create DRM-specific box(es) in free space
• Optionally generate DRM license(s) for Domain and insert into each container file or deliver separately
• Optionally insert Retailer purchase URL (PURL, fka RURL) into each container file
• Optionally insert ALID into each container file
• Download each container file (Device-DSP) interface)
• Validate and fulfill license requests from DRM Clients DRM Client
Starting point: User starts playback
• Get license from file or from license server (methods under discussion)
o Retrieve content encryption key(s) from license, decrypt container file, pass content to player
• Optionally insert license acquisition URL into container file o Optionally create DRM-specific box in free space
• Optionally insert license into container file LASP
Starting point: User requests a stream (in LASP UI or DECE Web Portal?)
• Authenticate Account
o Dynamic LASP: provide authentication via login
o Linked LASP: provide authentication from linked account or device
• Verify Account has rights to content (get rights data for ALID from Coordinator)
• Check if ok to stream (request Coordinator to create stream session using Rights Token)
• Map ALID to appropriate content based on information provided by Content Publisher
• Stream content using approved method (details out of scope) Device
Starting point: Player/download manager/DLNA server wants to add license to file?
• Optionally insert PURL?
• Insert license acquisition URL(s)?
Scenarios
[JT: Potential scenarios to illustrate specific details of content flow. Add more. Need to elaborate each one.] How does Content Publisher create a composite product (similar to a DVD) and tell Retailer what it is (so Retailer can sell it) and how does Retailer tell DSP what to fulfill? Publisher makes ALIDs and APIDs (and optionally BundleID[s]), gives list to Retailer (mechanism out of scope), Retailer sell, creates Token(s) and sets per-profile rights.
How does User come (from Retailer? from Web Portal?) to DSP and fulfill a composite purchase?
How does a user interface take advantage of bundles? (sort by air date, sort by purchase date, sort by title, drill down by series, movie, trailer, etc.)