License Server
The PlayReady Public Test Server available http://test.playready.microsoft.com/service/rightsmanager.asmx
unconditionally delivers to clients licenses with customizable rights and right restrictions, by providing parameters as arguments to the license request.
The client can specify the rights requested in the returned license(s) by providing a set of parameters in the query string, or in the request headers.
The PlayReady Public Test Server now supports multiple syntaxes to provide these parameters so testers can chose the one most appropriate to their case.
The recommended syntax is the Query String Syntax.
Reference for the rights and right restrictions
The full description of the rights and right restrictions is published in the [PlayReady Compliance and Robustness Rules](http://www.microsoft.com/playReady/licensing/compliance).### Test Key Seed - common to all syntaxes Unless the LA URL includes a custom Key Seed to be used (e.g. by using the parameter `keyseed:VB8xp/ZsROLmaEu3Zyug4DH0r0MmA/tTcmFMBEqL`), the key seed used is the Test Key Seed given below:
Test Key Seed (bytes) =
{ 0x5D, 0x50, 0x68, 0xBE, 0xC9, 0xB3, 0x84, 0xFF, 0x60, 0x44,
0x86, 0x71, 0x59, 0xF1, 0x6D, 0x6B, 0x75, 0x55, 0x44, 0xFC,
0xD5, 0x11, 0x69, 0x89, 0xB1, 0xAC, 0xC4, 0x27, 0x8E, 0x88 };
Test Key Seed (bytes Base64) = "XVBovsmzhP9gRIZxWfFta3VVRPzVEWmJsazEJ46I"
Query String Syntax
Examples:
http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(begindate:20151201,expiration:20171230)
http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(kid:B6E39626-1CFB-4AA1-BCBD-4EF1ABA7843A,sl:3000),(kid:7C9484BA-C238-467A-869C-CDD8C7167712,sl:2000)
Parameters are entered in the query string, separated by commas and brackets. This syntax was introduced in 2017 to fully support PlayReady 3 functionalities:
- Similar to a JSON syntax (not real JSON though)
- Easy to read and edit
- Does not include unsafe characters (like ampersand) and should not require escaping any of them
- Note: the query string must not include any space characters (' ')
- Note: '+' characters are acceptable in the base64 encoded arguments
- Allows to requests for multiple licenses in one licnese response, and set parameters for each of them.
- Example: video track encrypted with one key set at SL3000, and audio track encrypted with another key set at SL2000.
- New date time format yyyymmdd (example: 20171231) and allows set hours, minutes and seconds: yyyymmdd[hhmmss] (example: 20171231235959)
See the full documentation here.
CustomData JSON Syntax
Example: http://test.playready.microsoft.com/service/rightsmanager.asmx
with CustomData = "json=[{'kid':'B6E39626-1CFB-4AA1-BCBD-4EF1ABA7843A','sl':'3000'},{'kid':'7C9484BA-C238-467A-869C-CDD8C7167712','sl':'2000'}]"
Parameters are entered in a JSON blob added to the LicenseRequest.CustomData node:
- Pure JSON syntax
- Allows to requests for multiple licenses in one license response, and set parameters for each of them.
- Allow all sorts of properties and combinations of rights and right restrictions
- Require the client to be able to insert data in LicenseRequest.CustomData
See the full documentation here.
Base64 JSON Syntax
Example: http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg64=W3sna2lkJzonQjZFMzk2MjYtMUNGQi00QUExLUJDQkQtNEVGMUFCQTc4NDNBJywnc2wnOiczMDAwJ30seydraWQnOic3Qzk0ODRCQS1DMjM4LTQ2N0EtODY5Qy1DREQ4QzcxNjc3MTInLCdzbCc6JzIwMDAnfV0=
Parameters are entered in a JSON blob which is base64 encoded and provided in the query string:
- Pure JSON syntax
- Not that easy to read and edit though
- Does not include unsafe characters and should not require escaping any of them
- Allows to requests for multiple licenses in one license response, and set parameters for each of them.
- Allow all sorts of properties and combinations of rights and right restrictions
- Allows to insert customdata values in the query string
- Does not require the client to be able to insert data in LicenseRequest.CustomData
- Note: '+' characters are acceptable in the base64 encoded string
See the full documentation here.
Legacy Syntax - inherited from `http://playready.directtaps.net/`
Example: http://test.playready.microsoft.com/service/rightsmanager.asmx?PlayRight=1&FirstPlayExpiration=60&UncompressedDigitalVideoOPL=270
Parameters are entered in the query string, separated by semi-colons and ampersand characters. This syntax was introduced in 2008 for PlayReady 1.0, extended in 2010 for PlayReady 2.0, and supports only a sub-set of the PlayReady 3.X features:
- Inherited from and compatible with the previous test server hosted on
http://playready.directtaps.net/rightsmanager.asmx
- The '&' character in the LA URL isn't well supported by XML parser, so for inclusion as a LA_URL value in a WRMHEADER (media file header or media stream header), you have to escape this character
- Example:
http://test.playready.microsoft.com/service/rightsmanager.asmx?PlayRight=1&UseSimpleNonPersistentLicense=1
- Limited possibilities (one license only)
- "US" date format: mm/dd/yyyy (example: 12/31/2017)
See the full documentation here.