Google - Sample requests and responses
1. Definitions
1.1. Consumer mode
The packager acquires the content keys and the DRM signalization from the key server, which assumes the responsibility of generating the content keys and the key IDs.
In the request, the packager includes the content ID and the DRM type.
The key server generates the corresponding content key value and key ID.
This is the only mode supported by the Google API.
2. Supported features
The GCE API supports the key rotation and key per track features.
3. Nominal requests
3.1. Live
The Packager sends the content ID, DRM type (WV/PR), policy, and key rotation parameters (optional) in request. It is signed with the credentials present in the configuration.
The key server generates the key ID and the key value with crypto-index (only for key rotation).
The response is base64 encoded.
GCE LIVE No rotation WV Sample request
{
"request":"eyJjb250ZW50X2lkIjoiUjBORk1EQXkiLCJwb2xpY3kiOiJ0ZXN0X3BvbGljeSIsImRybV90eXBlcyI6WyJXSURFVklORSJdfQ==",
"signature":"atKsoxKPKPWgYWdYQTJrBTmnYRfQ3dbpGEnYJRYxQ5E=",
"signer":"mdrmblr_nks1"
}
Request Content
{
"content_id":"R0NFMDAy",
"drm_types":[
"WIDEVINE"
],
"policy":"test_policy"
}
GCE LIVE No rotation WV Sample response
{
"response":"eyJzdGF0dXMiOiJPSyIsImNvbnRlbnRfaWQiOiJSME5GTURBeSIsImRybSI6W3sidHlwZSI6IldJREVWSU5FIiwic3lzdGVtX2lkIjoiZWRlZjhiYTk3OWQ2NGFjZWEzYzgyN2RjZDUxZDIxZWQifV0sInRyYWNrcyI6W3sicHNzaCI6W3siZHJtX3R5cGUiOiJXSURFVklORSIsImRhdGEiOiJDQUVTRU5IUTlvQllJRTR2bHFtTENnYyt5QjRhQlVOdmJtRjRJZ1pIUTBVd01EST0ifV0sImtleV9pZCI6IjBkRDJnRmdnVGkrV3FZc0tCejdJSGc9PSIsImtleSI6IjI5MkpPNUUwd3k4dks1Rkp0VU9VT1E9PSJ9XX0="
}
Response Content
{
"status":"OK",
"content_id":"R0NFMDAy",
"drm":[
{
"type":"WIDEVINE",
"system_id":"edef8ba979d64acea3c827dcd51d21ed"
}
],
"tracks":[
{
"pssh":[
{
"drm_type":"WIDEVINE",
"data":"CAESENHQ9oBYIE4vlqmLCgc+yB4aBUNvbmF4IgZHQ0UwMDI="
}
],
"key_id":"0dD2gFggTi+WqYsKBz7IHg==",
"key":"292JO5E0wy8vK5FJtUOUOQ=="
}
]
}
3.2. VOD
The packager sends the content ID, DRM type (WV/PR) and the policy. It is signed with the credentials present in the configuration.
The key server generates the key ID and the key value.
The response is base64 encoded.
GCE VOD No rotation WV Sample request
{
"request":"eyJjb250ZW50X2lkIjoiUjBORk1EQXoiLCJwb2xpY3kiOiJ0ZXN0X3BvbGljeSIsImRybV90eXBlcyI6WyJXSURFVklORSJdfQ==",
"signature":"VZxQLJNApfc9mrzSXWG1bikqZFnVVS9qVaNgkzyr0KI=",
"signer":"mdrmblr_nks1"
}
Request Content
{
"content_id":"R0NFMDAz",
"drm_types":[
"WIDEVINE"
],
"policy":"test_policy"
}
GCE VOD No rotation WV Sample response
{
"response":"eyJzdGF0dXMiOiJPSyIsImNvbnRlbnRfaWQiOiJSME5GTURBeiIsImRybSI6W3sidHlwZSI6IldJREVWSU5FIiwic3lzdGVtX2lkIjoiZWRlZjhiYTk3OWQ2NGFjZWEzYzgyN2RjZDUxZDIxZWQifV0sInRyYWNrcyI6W3sicHNzaCI6W3siZHJtX3R5cGUiOiJXSURFVklORSIsImRhdGEiOiJDQUVTRU41M0xnSzZRVVQ5ams3NldnUDZsUWNhQlVOdmJtRjRJZ1pIUTBVd01ETT0ifV0sImtleV9pZCI6IjNuY3VBcnBCUlAyT1R2cGFBL3FWQnc9PSIsImtleSI6IlN1Q2Y2YVVBMnBDcktyclBqOXA3QlE9PSJ9XX0="
}
Response Content
{
"status":"OK",
"content_id":"R0NFMDAz",
"drm":[
{
"type":"WIDEVINE",
"system_id":"edef8ba979d64acea3c827dcd51d21ed"
}
],
"tracks":[
{
"pssh":[
{
"drm_type":"WIDEVINE",
"data":"CAESEN53LgK6QUT9jk76WgP6lQcaBUNvbmF4IgZHQ0UwMDM="
}
],
"key_id":"3ncuArpBRP2OTvpaA/qVBw==",
"key":"SuCf6aUA2pCrKrrPj9p7BQ=="
}
]
}
4. Key rotation
GCE LIVE With rotation PR Sample request
{
"request":"eyJjb250ZW50X2lkIjoiUjBORk1EQXkiLCJwb2xpY3kiOiJ0ZXN0X3BvbGljeSIsImZpcnN0X2NyeXB0b19wZXJpb2RfaW5kZXgiOjAsImNyeXB0b19wZXJpb2RfY291bnQiOjIsImNyeXB0b19wZXJpb2Rfc2Vjb25kcyI6MzAsImRybV90eXBlcyI6WyJQTEFZUkVBRFkiXX0=",
"signature":"xLRD4o+tGJLLSIn/u39ffP0cLGRH9FicWEgjjzp54zQ=",
"signer":"mdrmblr_nks1"
}
Request Content
{
"content_id":"R0NFMDAy",
"first_crypto_period_index":0,
"crypto_period_seconds":30,
"crypto_period_count":2,
"drm_types":[
"PLAYREADY"
],
"policy":"test_policy"
}
GCE LIVE With rotation PR Sample response
{
"response":"eyJzdGF0dXMiOiJPSyIsImNvbnRlbnRfaWQiOiJSME5GTURBeSIsImRybSI6W3sidHlwZSI6IlBMQVlSRUFEWSIsInN5c3RlbV9pZCI6Ijc5ZjAwNDlhLTQwOTgtODY0Mi1hYjkyLWU2NWJlMDg4NWY5NSJ9XSwidHJhY2tzIjpbeyJwc3NoIjpbeyJkcm1fdHlwZSI6IlBMQVlSRUFEWSIsImRhdGEiOiJQZ1FBQUFFQUFRQTBCRHdBVndCU0FFMEFTQUJGQUVFQVJBQkZBRklBSUFCNEFHMEFiQUJ1QUhNQVBRQWlBR2dBZEFCMEFIQUFPZ0F2QUM4QWN3QmpBR2dBWlFCdEFHRUFjd0F1QUcwQWFRQmpBSElBYndCekFHOEFaZ0IwQUM0QVl3QnZBRzBBTHdCRUFGSUFUUUF2QURJQU1BQXdBRGNBTHdBd0FETUFMd0JRQUd3QVlRQjVBRklBWlFCaEFHUUFlUUJJQUdVQVlRQmtBR1VBY2dBaUFDQUFkZ0JsQUhJQWN3QnBBRzhBYmdBOUFDSUFOQUF1QURBQUxnQXdBQzRBTUFBaUFENEFQQUJFQUVFQVZBQkJBRDRBUEFCUUFGSUFUd0JVQUVVQVF3QlVBRWtBVGdCR0FFOEFQZ0E4QUVzQVJRQlpBRXdBUlFCT0FENEFNUUEyQUR3QUx3QkxBRVVBV1FCTUFFVUFUZ0ErQUR3QVFRQk1BRWNBU1FCRUFENEFRUUJGQUZNQVF3QlVBRklBUEFBdkFFRUFUQUJIQUVrQVJBQStBRHdBTHdCUUFGSUFUd0JVQUVVQVF3QlVBRWtBVGdCR0FFOEFQZ0E4QUV3QVFRQmZBRlVBVWdCTUFENEFhQUIwQUhRQWNBQnpBRG9BTHdBdkFHTUFid0J1QUc0QVpRQmpBSFFBTGdCakFHOEFiZ0JoQUhnQUxnQmpBRzhBYlFBdkFHd0FhUUJqQUdVQWJnQnpBR1VBTHdCd0FHd0FZUUI1QUhJQVpRQmhBR1FBZVFBOEFDOEFUQUJCQUY4QVZRQlNBRXdBUGdBOEFFd0FWUUJKQUY4QVZRQlNBRXdBUGdCb0FIUUFkQUJ3QUhNQU9nQXZBQzhBWXdCdkFHNEFiZ0JsQUdNQWRBQXVBR01BYndCdUFHRUFlQUF1QUdNQWJ3QnRBQzhBYkFCcEFHTUFaUUJ1QUhNQVpRQXZBSEFBYkFCaEFIa0FjZ0JsQUdFQVpBQjVBRHdBTHdCTUFGVUFTUUJmQUZVQVVnQk1BRDRBUEFCTEFFa0FSQUErQUZBQU5nQkRBR3dBV0FCSEFHWUFPQUJWQURBQWRRQkhBRzRBUndCMkFFc0FUUUF5QUVZQWVnQjRBRUVBUFFBOUFEd0FMd0JMQUVrQVJBQStBRHdBUXdCVkFGTUFWQUJQQUUwQVFRQlVBRlFBVWdCSkFFSUFWUUJVQUVVQVV3QWdBSGdBYlFCc0FHNEFjd0E5QUNJQUlnQStBRHdBUXdCdkFHNEFkQUJsQUc0QWRBQlNBR1VBWmdBK0FFY0FRd0JGQURBQU1BQXlBRHdBTHdCREFHOEFiZ0IwQUdVQWJnQjBBRklBWlFCbUFENEFQQUJEQUhJQWVRQndBSFFBYndCUUFHVUFjZ0JwQUc4QVpBQkpBRzRBWkFCbEFIZ0FQZ0F3QUR3QUx3QkRBSElBZVFCd0FIUUFid0JRQUdVQWNnQnBBRzhBWkFCSkFHNEFaQUJsQUhnQVBnQThBRU1BY2dCNUFIQUFkQUJ2QUZBQVpRQnlBR2tBYndCa0FGTUFaUUJqQUc4QWJnQmtBSE1BUGdBekFEQUFQQUF2QUVNQWNnQjVBSEFBZEFCdkFGQUFaUUJ5QUdrQWJ3QmtBRk1BWlFCakFHOEFiZ0JrQUhNQVBnQThBQzhBUXdCVkFGTUFWQUJQQUUwQVFRQlVBRlFBVWdCSkFFSUFWUUJVQUVVQVV3QStBRHdBUXdCSUFFVUFRd0JMQUZNQVZRQk5BRDRBYUFCcEFGRUFNd0JNQUdrQWRRQktBSElBYWdCWkFEMEFQQUF2QUVNQVNBQkZBRU1BU3dCVEFGVUFUUUErQUR3QUx3QkVBRUVBVkFCQkFENEFQQUF2QUZjQVVnQk5BRWdBUlFCQkFFUUFSUUJTQUQ0QSJ9XSwia2V5X2lkIjoiWEtXZ1AveG5TMU9Hbkd2S00yRnp4QT09Iiwia2V5IjoidFFEUEp3aGlTdTUzUUxzNXJqWnB6UT09IiwiY3J5cHRvX3BlcmlvZF9pbmRleCI6MH0seyJwc3NoIjpbeyJkcm1fdHlwZSI6IlBMQVlSRUFEWSIsImRhdGEiOiJQZ1FBQUFFQUFRQTBCRHdBVndCU0FFMEFTQUJGQUVFQVJBQkZBRklBSUFCNEFHMEFiQUJ1QUhNQVBRQWlBR2dBZEFCMEFIQUFPZ0F2QUM4QWN3QmpBR2dBWlFCdEFHRUFjd0F1QUcwQWFRQmpBSElBYndCekFHOEFaZ0IwQUM0QVl3QnZBRzBBTHdCRUFGSUFUUUF2QURJQU1BQXdBRGNBTHdBd0FETUFMd0JRQUd3QVlRQjVBRklBWlFCaEFHUUFlUUJJQUdVQVlRQmtBR1VBY2dBaUFDQUFkZ0JsQUhJQWN3QnBBRzhBYmdBOUFDSUFOQUF1QURBQUxnQXdBQzRBTUFBaUFENEFQQUJFQUVFQVZBQkJBRDRBUEFCUUFGSUFUd0JVQUVVQVF3QlVBRWtBVGdCR0FFOEFQZ0E4QUVzQVJRQlpBRXdBUlFCT0FENEFNUUEyQUR3QUx3QkxBRVVBV1FCTUFFVUFUZ0ErQUR3QVFRQk1BRWNBU1FCRUFENEFRUUJGQUZNQVF3QlVBRklBUEFBdkFFRUFUQUJIQUVrQVJBQStBRHdBTHdCUUFGSUFUd0JVQUVVQVF3QlVBRWtBVGdCR0FFOEFQZ0E4QUV3QVFRQmZBRlVBVWdCTUFENEFhQUIwQUhRQWNBQnpBRG9BTHdBdkFHTUFid0J1QUc0QVpRQmpBSFFBTGdCakFHOEFiZ0JoQUhnQUxnQmpBRzhBYlFBdkFHd0FhUUJqQUdVQWJnQnpBR1VBTHdCd0FHd0FZUUI1QUhJQVpRQmhBR1FBZVFBOEFDOEFUQUJCQUY4QVZRQlNBRXdBUGdBOEFFd0FWUUJKQUY4QVZRQlNBRXdBUGdCb0FIUUFkQUJ3QUhNQU9nQXZBQzhBWXdCdkFHNEFiZ0JsQUdNQWRBQXVBR01BYndCdUFHRUFlQUF1QUdNQWJ3QnRBQzhBYkFCcEFHTUFaUUJ1QUhNQVpRQXZBSEFBYkFCaEFIa0FjZ0JsQUdFQVpBQjVBRHdBTHdCTUFGVUFTUUJmQUZVQVVnQk1BRDRBUEFCTEFFa0FSQUErQUZjQVF3QTVBR29BUXdCYUFFd0FUQUJaQUZVQVZ3QTVBR01BUlFCVEFIWUFZd0I0QUZrQVNRQXJBR2NBUFFBOUFEd0FMd0JMQUVrQVJBQStBRHdBUXdCVkFGTUFWQUJQQUUwQVFRQlVBRlFBVWdCSkFFSUFWUUJVQUVVQVV3QWdBSGdBYlFCc0FHNEFjd0E5QUNJQUlnQStBRHdBUXdCdkFHNEFkQUJsQUc0QWRBQlNBR1VBWmdBK0FFY0FRd0JGQURBQU1BQXlBRHdBTHdCREFHOEFiZ0IwQUdVQWJnQjBBRklBWlFCbUFENEFQQUJEQUhJQWVRQndBSFFBYndCUUFHVUFjZ0JwQUc4QVpBQkpBRzRBWkFCbEFIZ0FQZ0F4QUR3QUx3QkRBSElBZVFCd0FIUUFid0JRQUdVQWNnQnBBRzhBWkFCSkFHNEFaQUJsQUhnQVBnQThBRU1BY2dCNUFIQUFkQUJ2QUZBQVpRQnlBR2tBYndCa0FGTUFaUUJqQUc4QWJnQmtBSE1BUGdBekFEQUFQQUF2QUVNQWNnQjVBSEFBZEFCdkFGQUFaUUJ5QUdrQWJ3QmtBRk1BWlFCakFHOEFiZ0JrQUhNQVBnQThBQzhBUXdCVkFGTUFWQUJQQUUwQVFRQlVBRlFBVWdCSkFFSUFWUUJVQUVVQVV3QStBRHdBUXdCSUFFVUFRd0JMQUZNQVZRQk5BRDRBZVFCRUFGSUFjUUJZQUVnQVpBQnFBRWdBTmdCSkFEMEFQQUF2QUVNQVNBQkZBRU1BU3dCVEFGVUFUUUErQUR3QUx3QkVBRUVBVkFCQkFENEFQQUF2QUZjQVVnQk5BRWdBUlFCQkFFUUFSUUJTQUQ0QSJ9XSwia2V5X2lkIjoiQ1dNdldNdVNSV0c5Y0VTdmN4WUkrZz09Iiwia2V5IjoiYi9RbmpPTkVFZCt6alQ3YlMzeExkUT09IiwiY3J5cHRvX3BlcmlvZF9pbmRleCI6MX1dfQ=="
}
Response Content
{
"status":"OK",
"content_id":"R0NFMDAy",
"drm":[
{
"type":"PLAYREADY",
"system_id":"79f0049a-4098-8642-ab92-e65be0885f95"
}
],
"tracks":[
{
"pssh":[
{
"drm_type":"PLAYREADY",
"data":"PgQAAAEAAQA0BDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGMAbwBuAG4AZQBjAHQALgBjAG8AbgBhAHgALgBjAG8AbQAvAGwAaQBjAGUAbgBzAGUALwBwAGwAYQB5AHIAZQBhAGQAeQA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AYwBvAG4AbgBlAGMAdAAuAGMAbwBuAGEAeAAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQAvAHAAbABhAHkAcgBlAGEAZAB5ADwALwBMAFUASQBfAFUAUgBMAD4APABLAEkARAA+AFAANgBDAGwAWABHAGYAOABVADAAdQBHAG4ARwB2AEsATQAyAEYAegB4AEEAPQA9ADwALwBLAEkARAA+ADwAQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwAgAHgAbQBsAG4AcwA9ACIAIgA+ADwAQwBvAG4AdABlAG4AdABSAGUAZgA+AEcAQwBFADAAMAAyADwALwBDAG8AbgB0AGUAbgB0AFIAZQBmAD4APABDAHIAeQBwAHQAbwBQAGUAcgBpAG8AZABJAG4AZABlAHgAPgAwADwALwBDAHIAeQBwAHQAbwBQAGUAcgBpAG8AZABJAG4AZABlAHgAPgA8AEMAcgB5AHAAdABvAFAAZQByAGkAbwBkAFMAZQBjAG8AbgBkAHMAPgAzADAAPAAvAEMAcgB5AHAAdABvAFAAZQByAGkAbwBkAFMAZQBjAG8AbgBkAHMAPgA8AC8AQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AaABpAFEAMwBMAGkAdQBKAHIAagBZAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A"
}
],
"key_id":"XKWgP/xnS1OGnGvKM2FzxA==",
"key":"tQDPJwhiSu53QLs5rjZpzQ==",
"crypto_period_index":0
},
{
"pssh":[
{
"drm_type":"PLAYREADY",
"data":"PgQAAAEAAQA0BDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGMAbwBuAG4AZQBjAHQALgBjAG8AbgBhAHgALgBjAG8AbQAvAGwAaQBjAGUAbgBzAGUALwBwAGwAYQB5AHIAZQBhAGQAeQA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AYwBvAG4AbgBlAGMAdAAuAGMAbwBuAGEAeAAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQAvAHAAbABhAHkAcgBlAGEAZAB5ADwALwBMAFUASQBfAFUAUgBMAD4APABLAEkARAA+AFcAQwA5AGoAQwBaAEwATABZAFUAVwA5AGMARQBTAHYAYwB4AFkASQArAGcAPQA9ADwALwBLAEkARAA+ADwAQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwAgAHgAbQBsAG4AcwA9ACIAIgA+ADwAQwBvAG4AdABlAG4AdABSAGUAZgA+AEcAQwBFADAAMAAyADwALwBDAG8AbgB0AGUAbgB0AFIAZQBmAD4APABDAHIAeQBwAHQAbwBQAGUAcgBpAG8AZABJAG4AZABlAHgAPgAxADwALwBDAHIAeQBwAHQAbwBQAGUAcgBpAG8AZABJAG4AZABlAHgAPgA8AEMAcgB5AHAAdABvAFAAZQByAGkAbwBkAFMAZQBjAG8AbgBkAHMAPgAzADAAPAAvAEMAcgB5AHAAdABvAFAAZQByAGkAbwBkAFMAZQBjAG8AbgBkAHMAPgA8AC8AQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AeQBEAFIAcQBYAEgAZABqAEgANgBJAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A"
}
],
"key_id":"CWMvWMuSRWG9cESvcxYI+g==",
"key":"b/QnjONEEd+zjT7bS3xLdQ==",
"crypto_period_index":1
}
]
}
5. Key per track
Applicable for VOD and Live.
The packager sends the request with the content ID, the tracks , the DRM type, and key rotation parameters (optional).
The key server generates a key ID and key value per track.
5.1 GCE LIVE KPT No rotation WV SD and HD tracks Sample request
{
"request":"eyJjb250ZW50X2lkIjoiUjBORkxVdFFWQzFNU1ZaRiIsInBvbGljeSI6InRlc3RfcG9saWN5IiwiZHJtX3R5cGVzIjpbIldJREVWSU5FIl0sInRyYWNrcyI6W3sidHlwZSI6IkhEIn0seyJ0eXBlIjoiU0QifV19",
"signature":"MPU2PRyqRdSzgAiyREbwTKaVb+lgAdK8uhNS2yab760=",
"signer":"cx-test"
}
Request Content
{
"content_id":"R0NFLUtQVC1MSVZF",
"drm_types":[
"WIDEVINE"
],
"tracks":[
{
"type":"HD"
},
{
"type":"SD"
}
],
"policy":"test_policy"
}
GCE LIVE KPT No rotation WV SD and HD tracks Sample response
{
"response":"eyJzdGF0dXMiOiJPSyIsImNvbnRlbnRfaWQiOiJSME5GTFV0UVZDMU1TVlpGIiwiZHJtIjpbeyJ0eXBlIjoiV0lERVZJTkUiLCJzeXN0ZW1faWQiOiJlZGVmOGJhOTc5ZDY0YWNlYTNjODI3ZGNkNTFkMjFlZCJ9XSwidHJhY2tzIjpbeyJwc3NoIjpbeyJkcm1fdHlwZSI6IldJREVWSU5FIiwiZGF0YSI6IkNBRVNFUFloUWVMVlpVb2h1M3l0RDFWaHRxTWFCVU52Ym1GNElneEhRMFV0UzFCVUxVeEpWa1U9In1dLCJ0eXBlIjoiSEQiLCJrZXlfaWQiOiI5aUZCNHRWbFNpRzdmSzBQVldHMm93PT0iLCJrZXkiOiJMa1BJQ0VRYVZsVFBsVW9YM29xb3RBPT0ifSx7InBzc2giOlt7ImRybV90eXBlIjoiV0lERVZJTkUiLCJkYXRhIjoiQ0FFU0VJZ213V2pMNjBRWm5pSE1IeEEybzlFYUJVTnZibUY0SWd4SFEwVXRTMUJVTFV4SlZrVT0ifV0sInR5cGUiOiJTRCIsImtleV9pZCI6ImlDYkJhTXZyUkJtZUljd2ZFRGFqMFE9PSIsImtleSI6IllCUnJBN3hZRWJOcnptWXFNVldVaFE9PSJ9XX0="
}
Response Content
{
"status":"OK",
"content_id":"R0NFLUtQVC1MSVZF",
"drm":[
{
"type":"WIDEVINE",
"system_id":"edef8ba979d64acea3c827dcd51d21ed"
}
],
"tracks":[
{
"pssh":[
{
"drm_type":"WIDEVINE",
"data":"CAESEPYhQeLVZUohu3ytD1VhtqMaBUNvbmF4IgxHQ0UtS1BULUxJVkU="
}
],
"type":"HD",
"key_id":"9iFB4tVlSiG7fK0PVWG2ow==",
"key":"LkPICEQaVlTPlUoX3oqotA=="
},
{
"pssh":[
{
"drm_type":"WIDEVINE",
"data":"CAESEIgmwWjL60QZniHMHxA2o9EaBUNvbmF4IgxHQ0UtS1BULUxJVkU="
}
],
"type":"SD",
"key_id":"iCbBaMvrRBmeIcwfEDaj0Q==",
"key":"YBRrA7xYEbNrzmYqMVWUhQ=="
}
]
}
5.2 GCE LIVE KPT No rotation WV SD and SD tracks Sample request
In previous versions, when duplicate tracks (e.g., SD, SD) were included in the request, we stored separate keys for each instance of the same track. Starting from version NKS-25.24-STD0.20250603054040, only one key is stored for each unique track (e.g., SD), and duplicate tracks in the request are ignored.
{
"request":"eyJjb250ZW50X2lkIjoiUjBORk1EQXkiLCJwb2xpY3kiOiJ0ZXN0X3BvbGljeSIsImRybV90eXBlcyI6WyJXSURFVklORSJdLCJ0cmFja3MiOlt7InR5cGUiOiJTRCJ9LHsidHlwZSI6IlNEIn1dfQ==",
"signature":"4CdvhtP/2+sXv17RZMloZHo1nTvS1uRQAwysiuGG830=",
"signer":"mdrmblr_nks1"
}
Request Content
{
"content_id":"R0NFMDAy",
"drm_types":[
"WIDEVINE"
],
"tracks":[
{
"type":"SD"
},
{
"type":"SD"
}
],
"policy":"test_policy"
}
GCE LIVE KPT No rotation WV SD and SD tracks Sample response
{
"response":"eyJzdGF0dXMiOiJPSyIsImNvbnRlbnRfaWQiOiJSME5GTURBeSIsImRybSI6W3sidHlwZSI6IldJREVWSU5FIiwic3lzdGVtX2lkIjoiZWRlZjhiYTk3OWQ2NGFjZWEzYzgyN2RjZDUxZDIxZWQifV0sInRyYWNrcyI6W3sicHNzaCI6W3siZHJtX3R5cGUiOiJXSURFVklORSIsImRhdGEiOiJDQUVTRU5rYWV0bE9IRTRSbWdRNGF5UHgwMkFhQlVOdmJtRjRJZ1pIUTBVd01EST0ifV0sImtleV9pZCI6IjJScDYyVTRjVGhHYUJEaHJJL0hUWUE9PSIsImtleSI6ImNiN25sNFNmdm1ubzMrOUlvMFk2M3c9PSIsInR5cGUiOiJTRCJ9XX0="
}
Response Content
{
"status":"OK",
"content_id":"R0NFMDAy",
"drm":[
{
"type":"WIDEVINE",
"system_id":"edef8ba979d64acea3c827dcd51d21ed"
}
],
"tracks":[
{
"pssh":[
{
"drm_type":"WIDEVINE",
"data":"CAESENkaetlOHE4RmgQ4ayPx02AaBUNvbmF4IgZHQ0UwMDI="
}
],
"key_id":"2Rp62U4cThGaBDhrI/HTYA==",
"key":"cb7nl4Sfvmno3+9Io0Y63w==","type":"SD"
}
]
}
6. Key Per Track with key rotation
6.1 GCE LIVE KPT With rotation WV SD and HD tracks Sample request
{
"request":"eyJjb250ZW50X2lkIjoiUjBORkxVdFFWQzFNU1ZaRiIsInBvbGljeSI6InRlc3RfcG9saWN5IiwiZHJtX3R5cGVzIjpbIldJREVWSU5FIl0sInRyYWNrcyI6W3sidHlwZSI6IkhEIn0seyJ0eXBlIjoiU0QifV0sImZpcnN0X2NyeXB0b19wZXJpb2RfaW5kZXgiOjAsImNyeXB0b19wZXJpb2RfY291bnQiOjIsImNyeXB0b19wZXJpb2Rfc2Vjb25kcyI6MzB9",
"signature":"I2u8XIqpefqtDkEdTQt5U1BZBJNrphvPjrHqfVBJfkg=",
"signer":"cx-test"
}
Request Content
{
"content_id":"R0NFLUtQVC1MSVZF",
"first_crypto_period_index":0,
"crypto_period_seconds":30,
"crypto_period_count":2,
"drm_types":[
"WIDEVINE"
],
"tracks":[
{
"type":"HD"
},
{
"type":"SD"
}
],
"policy":"test_policy"
}
GCE LIVE KPT With rotation WV SD and HD tracks Sample response
{
"response":"eyJzdGF0dXMiOiJPSyIsImNvbnRlbnRfaWQiOiJSME5GTFV0UVZDMU1TVlpGIiwiZHJtIjpbeyJ0eXBlIjoiV0lERVZJTkUiLCJzeXN0ZW1faWQiOiJlZGVmOGJhOTc5ZDY0YWNlYTNjODI3ZGNkNTFkMjFlZCJ9XSwidHJhY2tzIjpbeyJwc3NoIjpbeyJkcm1fdHlwZSI6IldJREVWSU5FIiwiZGF0YSI6IkNBRVNFS1RhRWZEWGxrc0RnSDk0eWF5dVhnTWFCVU52Ym1GNElneEhRMFV0UzFCVUxVeEpWa1U0QUZBZSJ9XSwidHlwZSI6IkhEIiwia2V5X2lkIjoicE5vUjhOZVdTd09BZjNqSnJLNWVBdz09Iiwia2V5IjoiQ1pNV09NaFJNV1dGUDFLNVJpMEtFdz09IiwiY3J5cHRvX3BlcmlvZF9pbmRleCI6MH0seyJwc3NoIjpbeyJkcm1fdHlwZSI6IldJREVWSU5FIiwiZGF0YSI6IkNBRVNFS0kvWitWeHZrZVBrK3pPTWU2TkRvMGFCVU52Ym1GNElneEhRMFV0UzFCVUxVeEpWa1U0QUZBZSJ9XSwidHlwZSI6IlNEIiwia2V5X2lkIjoib2o5bjVYRytSNCtUN000eDdvME9qUT09Iiwia2V5IjoiWDN1MDNQb0tDQ01wVzd4TThoNVVudz09IiwiY3J5cHRvX3BlcmlvZF9pbmRleCI6MH0seyJwc3NoIjpbeyJkcm1fdHlwZSI6IldJREVWSU5FIiwiZGF0YSI6IkNBRVNFS0tDdy8zZnNVeGpvY0VEWjl0cllCd2FCVU52Ym1GNElneEhRMFV0UzFCVUxVeEpWa1U0QVZBZSJ9XSwidHlwZSI6IkhEIiwia2V5X2lkIjoib29MRC9kK3hUR09od1FObjIydGdIQT09Iiwia2V5IjoiVGtIcHQ1eUd5enBxT00rZGd3S2U2Zz09IiwiY3J5cHRvX3BlcmlvZF9pbmRleCI6MX0seyJwc3NoIjpbeyJkcm1fdHlwZSI6IldJREVWSU5FIiwiZGF0YSI6IkNBRVNFQW5oVHFYdXYwSmhrQ3VOY3NPQ3hJUWFCVU52Ym1GNElneEhRMFV0UzFCVUxVeEpWa1U0QVZBZSJ9XSwidHlwZSI6IlNEIiwia2V5X2lkIjoiQ2VGT3BlNi9RbUdRSzQxeXc0TEVoQT09Iiwia2V5IjoiQk9oU2NJRWFuMm1YWEgrSTZPY0ZqUT09IiwiY3J5cHRvX3BlcmlvZF9pbmRleCI6MX1dfQ=="
}
Response Content
{
"status":"OK",
"content_id":"R0NFLUtQVC1MSVZF",
"drm":[
{
"type":"WIDEVINE",
"system_id":"edef8ba979d64acea3c827dcd51d21ed"
}
],
"tracks":[
{
"pssh":[
{
"drm_type":"WIDEVINE",
"data":"CAESEKTaEfDXlksDgH94yayuXgMaBUNvbmF4IgxHQ0UtS1BULUxJVkU4AFAe"
}
],
"type":"HD",
"key_id":"pNoR8NeWSwOAf3jJrK5eAw==",
"key":"CZMWOMhRMWWFP1K5Ri0KEw==",
"crypto_period_index":0
},
{
"pssh":[
{
"drm_type":"WIDEVINE",
"data":"CAESEKI/Z+VxvkePk+zOMe6NDo0aBUNvbmF4IgxHQ0UtS1BULUxJVkU4AFAe"
}
],
"type":"SD",
"key_id":"oj9n5XG+R4+T7M4x7o0OjQ==",
"key":"X3u03PoKCCMpW7xM8h5Unw==",
"crypto_period_index":0
},
{
"pssh":[
{
"drm_type":"WIDEVINE",
"data":"CAESEKKCw/3fsUxjocEDZ9trYBwaBUNvbmF4IgxHQ0UtS1BULUxJVkU4AVAe"
}
],
"type":"HD",
"key_id":"ooLD/d+xTGOhwQNn22tgHA==",
"key":"TkHpt5yGyzpqOM+dgwKe6g==",
"crypto_period_index":1
},
{
"pssh":[
{
"drm_type":"WIDEVINE",
"data":"CAESEAnhTqXuv0JhkCuNcsOCxIQaBUNvbmF4IgxHQ0UtS1BULUxJVkU4AVAe"
}
],
"type":"SD",
"key_id":"CeFOpe6/QmGQK41yw4LEhA==",
"key":"BOhScIEan2mXXH+I6OcFjQ==",
"crypto_period_index":1
}
]
}
6.2 GCE LIVE KPT With rotation WV SD and SD tracks Sample request
In previous versions, during key rotation, if duplicate tracks like [{type: "SD"}, {type: "SD"}] were present, keys were stored for each occurrence — resulting in 4 keys (2 keys for index 0 with SD and 2 keys for index 1 with SD). From version NKS-25.24-STD0.20250603054040 onward, only one key per unique track type is stored, ignoring duplicates — reducing it to 2 keys (one for index 0 and one for index 1, both with SD).
{
"request":"eyJjb250ZW50X2lkIjoiUjBORlgwdFFWRjlNU1ZaRiIsImZpcnN0X2NyeXB0b19wZXJpb2RfaW5kZXgiOjAsImNyeXB0b19wZXJpb2RfY291bnQiOjIsImNyeXB0b19wZXJpb2Rfc2Vjb25kcyI6MzAsImRybV90eXBlcyI6WyJXSURFVklORSJdLCJ0cmFja3MiOlt7InR5cGUiOiJTRCJ9LHsidHlwZSI6IlNEIn1dfQ==",
"signature":"7En5eU9hAoatpgOyeuwkUpxyvn6KtqkgIgLa/D5Sng4=",
"signer":"mdrmblr_nks1"
}
Request Content
{
"content_id":"R0NFLUtQVC1MSVZF",
"first_crypto_period_index":0,
"crypto_period_seconds":30,
"crypto_period_count":2,
"drm_types":[
"WIDEVINE"
],
"tracks":[
{
"type":"SD"
},
{
"type":"SD"
}
]
}
GCE LIVE KPT With rotation WV SD and SD tracks Sample response
{
"response":"eyJzdGF0dXMiOiJPSyIsImNvbnRlbnRfaWQiOiJSME5GWDB0UVZGOU1TVlpGIiwiZHJtIjpbeyJ0eXBlIjoiV0lERVZJTkUiLCJzeXN0ZW1faWQiOiJlZGVmOGJhOTc5ZDY0YWNlYTNjODI3ZGNkNTFkMjFlZCJ9XSwidHJhY2tzIjpbeyJwc3NoIjpbeyJkcm1fdHlwZSI6IldJREVWSU5FIiwiZGF0YSI6IkNBRVNFSXFtRnY5M0JVekVsWU4rKzJrQ3dCSWFCVU52Ym1GNElneEhRMFZmUzFCVVgweEpWa1U0QUZBZSJ9XSwia2V5X2lkIjoiaXFZVy8zY0ZUTVNWZzM3N2FRTEFFZz09Iiwia2V5Ijoib25UUTdHQ0E1bDhWcUVnVzRuNzF1Zz09IiwidHlwZSI6IlNEIiwiY3J5cHRvX3BlcmlvZF9pbmRleCI6MH0seyJwc3NoIjpbeyJkcm1fdHlwZSI6IldJREVWSU5FIiwiZGF0YSI6IkNBRVNFQi9RNk9GNmVrWUx2bEJYQUQweVUvc2FCVU52Ym1GNElneEhRMFZmUzFCVVgweEpWa1U0QVZBZSJ9XSwia2V5X2lkIjoiSDlEbzRYcDZSZ3UrVUZjQVBUSlQrdz09Iiwia2V5IjoiZ290NGZoMnhTa1Y3SmVJUWJJKzhRZz09IiwidHlwZSI6IlNEIiwiY3J5cHRvX3BlcmlvZF9pbmRleCI6MX1dfQ=="
}
Response Content
{
"status":"OK",
"content_id":"R0NFX0tQVF9MSVZF",
"drm":[
{
"type":"WIDEVINE",
"system_id":"edef8ba979d64acea3c827dcd51d21ed"
}
],
"tracks":[
{
"pssh":[
{
"drm_type":"WIDEVINE",
"data":"CAESEIqmFv93BUzElYN++2kCwBIaBUNvbmF4IgxHQ0VfS1BUX0xJVkU4AFAe"
}
],
"key_id":"iqYW/3cFTMSVg377aQLAEg==",
"key":"onTQ7GCA5l8VqEgW4n71ug==",
"type":"SD",
"crypto_period_index":0
},
{
"pssh":[
{
"drm_type":"WIDEVINE",
"data":"CAESEB/Q6OF6ekYLvlBXAD0yU/saBUNvbmF4IgxHQ0VfS1BUX0xJVkU4AVAe"
}
],
"key_id":"H9Do4Xp6Rgu+UFcAPTJT+w==",
"key":"got4fh2xSkV7JeIQbI+8Qg==",
"type":"SD",
"crypto_period_index":1
}
]
}