Professional Documents
Culture Documents
Version 0.94
Samsung Smart TV
@Samsung Electronics Copyright All Rights Reserved
1
1.
OVERVIEW .............................................................................................................................................................. 4
2.
INTRODUCTION .................................................................................................................................................... 4
3.
2.1.
2.2.
3.2.
3.3.
3.3.1.
3.3.2.
3.4.
3.5.
3.6.
3.7.
3.8.
3.9.
3.10.
4.
API GUIDELINE.................................................................................................................................................... 10
4.1.
4.2.
4.3.
4.4.
4.5.
4.6.
JOIN DOMAIN..................................................................................................................................................... 12
4.7.
4.8.
Preface
Purpose of Document
This document is a tutorial that is aimed at application developers for SMART TV who plan to
use PlayReady Technology for protecting their streaming content. This document focuses on the
features supported by Samsung TV and does not provide a detailed description about PlayReady
Technology itself. For more information about the technology, please refer to the official
Microsoft Web Site (http://www.microsoft.com/playready/default.mspx).
It is recommended that you read Application Development Guide for SMART TV (hereinafter
referred to as "the Guide") first. This document provides references to the Guide for your
understanding.
Target Readers
This document is aimed at programmers who have used web development languages such as HTML,
CSS and JavaScript, and will be even more helpful for those who have web development
experience. This document has been written on the assumption that readers have a background in
Microsoft DRM and have already read the Guide.
1. Overview
This document will go step by step through the development of an application that features a
PlayReady video playback. The PlayReady features of Samsung TV are described in section 3 and
how to implement those features using Samsung TV Apps SDK is described in section 4.
2. Introduction
PlayReady is a content access and protection technology that is the successor to WMDRM. It
provides new advanced and frequently-requested features, such as domain control, embedded
licenses, and the ability to protect a wide range of content types and formats. Also, it provides
backward compatibility with WMDRM.
Samsung TV released in 2011 supports PlayReady Technology, whereas the previous product only
supports WMDRM. Since PlayReady provides backward compatibility with WMDRM, Samsung
TV can acquire content from both existing WMDRM-based services and new PlayReady-based
services.
In order to develop the PlayReady video Application, developers are required to have background
knowledge such as HTML, JavaScript and CSS. There will be no explanation about HTML,
JavaScript or CSS provided in this document. Developing applications suited for TVs is different
from developing applications on PCs in several aspects. You can get more information on this from
the Guide. This document explains each development stage with the source code and analyzes how
each code is completed. But please note that the code snippets provided is indicative and detailed
source code is not provided in the document.
Since Samsung TV can acquire a license directly from a license server, we only support DLA
mode.
We dont support any intermediate step asking for user input during license acquisition process.
You can set a string which should be contained in HTTP Header of license challenge message
using SetPlayerProperty function. Please refer to section 4 for the detailed API usage.
Here is an example of HTTP Header of the license challenge message with cookie.
POST /Janus/testcases/9TC1.asp HTTP/1.0
Host: wmtap.smdisp.net
User-Agent: PlayReadyClient
Content-Type: application/x-www-form-urlencoded
Pragma: no-cache
Cookie :MyCookie
Content-Length: 22742
3.3.2.
Post-delivery : Samsung TV invokes License Acquisition when the media file is played. After the
header of the media file is processed, it acquires a license based on the data contained within the
header of the file.
o By default, Samsung TV uses license acquisition URL parsed from the header. But, you
can modify or replace the URL by using SetPlayerProperty function. Please refer to
section 4 for the detailed API usage.
Pre-delivery: If you want to acquire a license before the media file is available, you can use
License Acquisition Web Initiator in PlayReady-based Service.
2011 Products
< SECURITYVERSION>
2.4.115.165
2.4.117.27
< CLIENTVERSION>
9.00.00.2778
11.2.0.1404
User-Agent
WMDRM_DLA
PlayReadyClient
Windows-Media-DRM/11.0.7600.16385
Note that the requirement of minimum security version is not necessary for devices.
<SECURITYVERSION> corresponds to the robustness version of the PC client black box, and
it is only meaningful when the client is PC application. Enforcing a minimum security version on
PCs (includes Silverlight clients) is to ensure that in case of a PC breach only patched PC receive
the content. For devices the value is not meaningful because in case of a breach the device
certificate itself would have been revoked and the server will just not deliver a license.
4. API Guideline
<object id="pluginPlayer" border=0 classid="clsid:SAMSUNG-INFOLINK-PLAYER"></object>
<object id="PluginSefPlayReady" border=0 classid="clsid:SAMSUNG-INFOLINK-SEF"></object>
The two objects shall be defined in HTML file for using pluginPlayer and PluginSefPlayReady.
2010 Products
2011 Products
WMDRM10
WMDRM10
PlayReady
Set Cookie
SetPlayerProperty (1)
O*
SetPlayerProperty (3)
SetPlayerProperty (4)
ProcessInitiatorsFromUrl
O**
O**
ProcessInitiatorsFromXml
Join/Leave Domain
JoinDomain
LeaveDomain
Delete License
SetPlayerProperty (6)
You can change the second and third parameters of SetPlayerProperty function to your custom data
like DUID or tokens which is not an actual cookie set by Server. But, note that your license server
finds the value in the cookie property in HTTP Header of license challenge message.
Or, you can use ProcessInitiatorsFromXml to pass the xml string which complies with the XML
Schema defined by PlayReady Technology.
var xml = <?xml version=\1.0\;
SefPluginPlayReady = document.getElementById('PluginSefPlayReady');
SefPluginPlayReady.Open("PlayReadyDrm", "1.000", "PlayReadyDrm");
SefPluginPlayReady.Execute (ProcessInitiatorsFromXml, xml, xml.length);
SefPluginPlayReady.Close ();