SPEKE (Secure Packager и Encoder Key Exchange) — это протокол защищенного обмена ключами между упаковщиком и кодировщиком, разработанный AWS. Он основан на спецификации информационного обмена для защиты контента (CPIX), разработанной DASH Industry Forum (DASH-IF). Протокол SPEKE используется для получения информации о ключах шифрования и последующей ее передачи в упаковщики контента (например, Shaka Packager).
Основные данные, которые нужны для запросов SPEKE:
В ответ сервис вернет информацию о ключе шифрования и PSSH (Protection System Specific Header). Ключ шифрования будет использован для шифрования видео, PSSH будет включен в плейлист и будет передаваться при запросе лицензии.
Ниже представлены примеры запросов к SPEKE, которые помогут вам быстро начать работу с нашим multi-drm-решением.
Структура запроса без ротации ключей имеет вид:
<?xml version="1.0" encoding="utf-8"?>
<cpix:CPIX xmlns:cpix="urn:dashif:org:cpix" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc" xmlns:speke="urn:aws:amazon:com:speke" id="CONTENT_ID">
<cpix:ContentKeyList>
<cpix:ContentKey kid="KEY_ID"/>
</cpix:ContentKeyList>
<cpix:DRMSystemList>
<cpix:DRMSystem kid="KEY_ID" systemId="DRM_SYSTEM_ID">
<cpix:URIExtXKey/>
<speke:KeyFormat/>
<speke:KeyFormatVersions/>
</cpix:DRMSystem>
</cpix:DRMSystemList>
</cpix:CPIX>
где:
CONTENT_ID
— идентификатор контента.
KEY_ID
— идентификатор ключа для контента.
DRM_SYSTEM_ID
— UUID-идентификатор типа DRM-системы по https://dashif.org/identifiers/content_protection/:
edef8ba9-79d6-4ace-a3c8-27dcd51d21ed
— Widevine
9a04f079-9840-4286-ab92-e65be0885f95
— Playready
94ce86fb-07ff-4f43-adb8-93d2fa968ca2
— Fairplay
3d5e6d35-9b9a-41e8-b843-dd3c6e72c42c
— Wiseplay
Если требуется получить PSSH для более чем одного типа DRM-системы, нужно повторить строки
<cpix:DRMSystem kid="KEY_ID" systemId="DRM_SYSTEM_ID">
<cpix:URIExtXKey/>
<speke:KeyFormat/>
<speke:KeyFormatVersions/>
</cpix:DRMSystem>
по количеству DRM-систем. При этом
KEY_ID
не должен отличаться от указанного в ContentKeyList
.
Обратите внимание на ограничения, связанные с ключами:
CONTENT_ID
и KEY_ID
не существовал на момент
запроса, то он будет создан и возвращен в теле ответаCONTENT_ID
и KEY_ID
уже существует, он будет
возвращен в теле ответаKEY_ID
не может использоваться вместе с разными
CONTENT_ID
KEY_ID
в cpix:DRMSystem
должен совпадать с атрибутом kid
элемента cpix:ContentKey
KEY_ID
, то будет использоваться
только первый из них, остальные будут игнорироваться.Пример запроса без ротации ключей (получение PSSH для нескольких DRM-систем):
curl -s https://[project].nowdrm.co/drm/speke?token=[token] --data-ascii @speke-request.xml
где speke-request.xml
— XML-файл с содержимым:
<?xml version="1.0" encoding="utf-8"?>
<cpix:CPIX xmlns:cpix="urn:dashif:org:cpix" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc" xmlns:speke="urn:aws:amazon:com:speke" id="newcontentid">
<cpix:ContentKeyList>
<cpix:ContentKey kid="cd3c4139-82cf-4745-b92e-c0752e760acf"/>
</cpix:ContentKeyList>
<cpix:DRMSystemList>
<cpix:DRMSystem kid="cd3c4139-82cf-4745-b92e-c0752e760acf" systemId="9a04f079-9840-4286-ab92-e65be0885f95">
<cpix:URIExtXKey/>
<speke:KeyFormat/>
<speke:KeyFormatVersions/>
</cpix:DRMSystem>
<cpix:DRMSystem kid="cd3c4139-82cf-4745-b92e-c0752e760acf" systemId="9a04f079-9840-4286-ab92-e65be0885f95">
<cpix:URIExtXKey/>
<speke:KeyFormat/>
<speke:KeyFormatVersions/>
</cpix:DRMSystem>
<cpix:DRMSystem kid="cd3c4139-82cf-4745-b92e-c0752e760acf" systemId="9a04f079-9840-4286-ab92-e65be0885f95">
<cpix:URIExtXKey/>
<speke:KeyFormat/>
<speke:KeyFormatVersions/>
</cpix:DRMSystem>
</cpix:DRMSystemList>
</cpix:CPIX>
[project]
— название вашего проекта в личном кабинете cdnnow!
[token]
— секретный ключ доступа к API drmnow! multi-drm. Никому не сообщайте
его.
Пример ответа (успешный):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:CPIX xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:ns2="urn:dashif:org:cpix" xmlns:ns4="http://www.w3.org/2001/04/xmlenc#" xmlns:ns3="urn:ietf:params:xml:ns:keyprov:pskc" id="newcontentid">
<ns2:ContentKeyList>
<ns2:ContentKey explicitIV="xkRFreGAIrzrSCywddIQZg==" kid="cd3c4139-82cf-4745-b92e-c0752e760acf">
<ns2:Data>
<ns3:Secret>
<ns3:PlainValue>Hu3W8C0OkGvMDTzz/yqrkw==</ns3:PlainValue>
</ns3:Secret>
</ns2:Data>
</ns2:ContentKey>
</ns2:ContentKeyList>
<ns2:DRMSystemList>
<ns2:DRMSystem systemId="9a04f079-9840-4286-ab92-e65be0885f95" kid="cd3c4139-82cf-4745-b92e-c0752e760acf">
<ns2:PSSH>AAACwHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAqCgAgAAAQABAJYCPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBPAFUARQA4AHoAYwArAEMAUgBVAGUANQBMAHMAQgAxAEwAbgBZAEsAegB3AD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AEgASwA0AFUARgBqAGcAVwBCAEwASQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGQAZQBtAG8ALgBkAGUAdgAuAG4AbwB3AGQAcgBtAC4AYwBvAC8AdwBpAG4AawAvAHAAbABhAHkAcgBlAGEAZAB5AC8AcgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPAAvAEwAQQBfAFUAUgBMAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=</ns2:PSSH>
<ns2:ContentProtectionData/>
<ns2:URIExtXKey/>
<speke:KeyFormat xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
<speke:KeyFormatVersions xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
<speke:ProtectionHeader xmlns:speke="urn:aws:amazon:com:speke" xmlns:cpix="urn:dashif:org:cpix" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc">PABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBPAFUARQA4AHoAYwArAEMAUgBVAGUANQBMAHMAQgAxAEwAbgBZAEsAegB3AD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AEgASwA0AFUARgBqAGcAVwBCAEwASQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGQAZQBtAG8ALgBkAGUAdgAuAG4AbwB3AGQAcgBtAC4AYwBvAC8AdwBpAG4AawAvAHAAbABhAHkAcgBlAGEAZAB5AC8AcgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPAAvAEwAQQBfAFUAUgBMAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=</speke:ProtectionHeader>
<cpix:HLSSignalingData xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
</ns2:DRMSystem>
<ns2:DRMSystem systemId="edef8ba9-79d6-4ace-a3c8-27dcd51d21ed" kid="cd3c4139-82cf-4745-b92e-c0752e760acf">
<ns2:PSSH>AAAAV3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADcIARIgY2QzYzQxMzk4MmNmNDc0NWI5MmVjMDc1MmU3NjBhY2YaA2NkbiIMbmV3Y29udGVudGlk</ns2:PSSH>
<ns2:ContentProtectionData/>
<ns2:URIExtXKey/>
<speke:KeyFormat xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
<speke:KeyFormatVersions xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
<speke:ProtectionHeader xmlns:speke="urn:aws:amazon:com:speke" xmlns:cpix="urn:dashif:org:cpix" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
<cpix:HLSSignalingData xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
</ns2:DRMSystem>
<ns2:DRMSystem systemId="94ce86fb-07ff-4f43-adb8-93d2fa968ca2" kid="cd3c4139-82cf-4745-b92e-c0752e760acf">
<ns2:ContentProtectionData/>
<ns2:URIExtXKey>bmV3Y29udGVudGlk</ns2:URIExtXKey>
<speke:KeyFormat xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
<speke:KeyFormatVersions xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
<speke:ProtectionHeader xmlns:speke="urn:aws:amazon:com:speke" xmlns:cpix="urn:dashif:org:cpix" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
<cpix:HLSSignalingData xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
</ns2:DRMSystem>
</ns2:DRMSystemList>
</ns2:CPIX>
Здесь ContentKey.Data.Secret.PlainValue
— это base64-закодированный ключ шифрования, explicitIV
— base64-закодированный начальный
вектор ключа шифрования.
Если в запросе среди DRM-систем присутствовал Fairplay, то в ответе SPEKE внутри элемента URIExtXKey
также будет доступен base64-закодированный вариант идентификатора контента. Используйте ContentKey.Data.Secret.PlainValue
в качестве keyBase64
, explicitIV
в качестве ivBase64
, а также опционально URIExtXKey
в качестве contentId
при подготовке видео для Fairplay с Shaka Packager.
Неуспешный ответ имеет JSON-структуру вида
{"status": STATUS, "title": "TITLE", "detail": "DETAIL"}
и HTTP-код 4xx / 5xx. В полях title
и detail
содержится краткая информация
об ошибке.
С помощью SPEKE вы также можете настроить ротацию ключей шифрования, которая может применяться для шифрования разных фрагментов контента разными ключами.
Структура запроса с ротацией ключей имеет вид:
<?xml version='1.0' encoding='UTF-8' ?>
<cpix:CPIX xmlns:cpix="urn:dashif:org:cpix" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc" xmlns:speke="urn:aws:amazon:com:speke" id="CONTENT_ID">
<cpix:ContentKeyList>
<cpix:ContentKey kid="KEY_ID"/>
</cpix:ContentKeyList>
<cpix:DRMSystemList>
<cpix:DRMSystem kid="KEY_ID" systemId="DRM_SYSTEM_ID">
<speke:ProtectionHeader/>
<cpix:URIExtXKey/>
<cpix:PSSH/>
</cpix:DRMSystem>
</cpix:DRMSystemList>
<cpix:ContentKeyPeriodList>
<cpix:ContentKeyPeriod id="PERIOD_ID" index="INDEX"/>
</cpix:ContentKeyPeriodList>
<cpix:ContentKeyUsageRuleList>
<cpix:ContentKeyUsageRule kid="KEY_ID">
<cpix:KeyPeriodFilter periodId="PERIOD_ID"/>
</cpix:ContentKeyUsageRule>
</cpix:ContentKeyUsageRuleList>
</cpix:CPIX>
Обозначения CONTENT_ID
, KEY_ID
, DRM_SYSTEM_ID
аналогичны
предыдущему разделу.
PERIOD_ID
— произвольная строка для обозначения периода.
INDEX
— номер периода ротации.
Обратите внимание на ограничения, связанные с ключами:
CONTENT_ID
и KEY_ID
и PERIOD_ID
не
существовал на момент запроса,
то он будет
создан и возвращен в теле ответа.CONTENT_ID
и KEY_ID
и PERIOD_ID
уже
существует, он будет возвращен
в теле
ответа.KEY_ID
не может использоваться вместе с разными
CONTENT_ID
.KEY_ID
в cpix:DRMSystem
должен совпадать с атрибутом kid
элемента cpix:ContentKey
.
CONTENT_ID
могут использоваться в сценарии
ротации,
однако при
этом не допускается, чтобы один и тот же KEY_ID
использовался с несколькими разными
периодами.Пример запроса с ротацией ключей (получение PSSH для нескольких DRM-систем):
curl -s https://[project].nowdrm.co/drm/speke?token=[token] --data-ascii @speke-request.xml
где speke-request.xml
— XML-файл с содержимым:
<?xml version="1.0" encoding="utf-8"?>
<cpix:CPIX xmlns:cpix="urn:dashif:org:cpix" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc" xmlns:speke="urn:aws:amazon:com:speke" id="newcontentid">
<cpix:ContentKeyList>
<cpix:ContentKey kid="cd3c4139-82cf-4745-b92e-c0752e760acf"/>
</cpix:ContentKeyList>
<cpix:DRMSystemList>
<cpix:DRMSystem kid="cd3c4139-82cf-4745-b92e-c0752e760acf" systemId="9a04f079-9840-4286-ab92-e65be0885f95">
<cpix:URIExtXKey/>
<speke:KeyFormat/>
<speke:KeyFormatVersions/>
</cpix:DRMSystem>
<cpix:DRMSystem kid="cd3c4139-82cf-4745-b92e-c0752e760acf" systemId="9a04f079-9840-4286-ab92-e65be0885f95">
<cpix:URIExtXKey/>
<speke:KeyFormat/>
<speke:KeyFormatVersions/>
</cpix:DRMSystem>
<cpix:DRMSystem kid="cd3c4139-82cf-4745-b92e-c0752e760acf" systemId="9a04f079-9840-4286-ab92-e65be0885f95">
<cpix:URIExtXKey/>
<speke:KeyFormat/>
<speke:KeyFormatVersions/>
</cpix:DRMSystem>
</cpix:DRMSystemList>
<cpix:ContentKeyPeriodList>
<cpix:ContentKeyPeriod id="period_id" index="2"/>
</cpix:ContentKeyPeriodList>
<cpix:ContentKeyUsageRuleList>
<cpix:ContentKeyUsageRule kid="KEY_ID">
<cpix:KeyPeriodFilter periodId="period_id"/>
</cpix:ContentKeyUsageRule>
</cpix:ContentKeyUsageRuleList>
</cpix:CPIX>
[project]
— название вашего проекта в личном кабинете cdnnow!
[token]
— секретный ключ доступа к API drmnow! multi-drm. Никому не сообщайте
его.
Пример ответа (успешный):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:CPIX xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:ns2="urn:dashif:org:cpix" xmlns:ns4="http://www.w3.org/2001/04/xmlenc#" xmlns:ns3="urn:ietf:params:xml:ns:keyprov:pskc" id="newcontentid">
<ns2:ContentKeyList>
<ns2:ContentKey explicitIV="xkRFreGAIrzrSCywddIQZg==" kid="cd3c4139-82cf-4745-b92e-c0752e760acf">
<ns2:Data>
<ns3:Secret>
<ns3:PlainValue>Hu3W8C0OkGvMDTzz/yqrkw==</ns3:PlainValue>
</ns3:Secret>
</ns2:Data>
</ns2:ContentKey>
</ns2:ContentKeyList>
<ns2:DRMSystemList>
<ns2:DRMSystem systemId="9a04f079-9840-4286-ab92-e65be0885f95" kid="cd3c4139-82cf-4745-b92e-c0752e760acf">
<ns2:PSSH>AAACwHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAqCgAgAAAQABAJYCPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBPAFUARQA4AHoAYwArAEMAUgBVAGUANQBMAHMAQgAxAEwAbgBZAEsAegB3AD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AEgASwA0AFUARgBqAGcAVwBCAEwASQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGQAZQBtAG8ALgBkAGUAdgAuAG4AbwB3AGQAcgBtAC4AYwBvAC8AdwBpAG4AawAvAHAAbABhAHkAcgBlAGEAZAB5AC8AcgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPAAvAEwAQQBfAFUAUgBMAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=</ns2:PSSH>
<ns2:ContentProtectionData/>
<ns2:URIExtXKey/>
<speke:KeyFormat xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
<speke:KeyFormatVersions xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
<speke:ProtectionHeader xmlns:speke="urn:aws:amazon:com:speke" xmlns:cpix="urn:dashif:org:cpix" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc">PABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBPAFUARQA4AHoAYwArAEMAUgBVAGUANQBMAHMAQgAxAEwAbgBZAEsAegB3AD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AEgASwA0AFUARgBqAGcAVwBCAEwASQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGQAZQBtAG8ALgBkAGUAdgAuAG4AbwB3AGQAcgBtAC4AYwBvAC8AdwBpAG4AawAvAHAAbABhAHkAcgBlAGEAZAB5AC8AcgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPAAvAEwAQQBfAFUAUgBMAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=</speke:ProtectionHeader>
<cpix:HLSSignalingData xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
</ns2:DRMSystem>
<ns2:DRMSystem systemId="edef8ba9-79d6-4ace-a3c8-27dcd51d21ed" kid="cd3c4139-82cf-4745-b92e-c0752e760acf">
<ns2:PSSH>AAAAV3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADcIARIgY2QzYzQxMzk4MmNmNDc0NWI5MmVjMDc1MmU3NjBhY2YaA2NkbiIMbmV3Y29udGVudGlk</ns2:PSSH>
<ns2:ContentProtectionData/>
<ns2:URIExtXKey/>
<speke:KeyFormat xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
<speke:KeyFormatVersions xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
<speke:ProtectionHeader xmlns:speke="urn:aws:amazon:com:speke" xmlns:cpix="urn:dashif:org:cpix" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
<cpix:HLSSignalingData xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
</ns2:DRMSystem>
<ns2:DRMSystem systemId="94ce86fb-07ff-4f43-adb8-93d2fa968ca2" kid="cd3c4139-82cf-4745-b92e-c0752e760acf">
<ns2:ContentProtectionData/>
<ns2:URIExtXKey>bmV3Y29udGVudGlk</ns2:URIExtXKey>
<speke:KeyFormat xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
<speke:KeyFormatVersions xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
<speke:ProtectionHeader xmlns:speke="urn:aws:amazon:com:speke" xmlns:cpix="urn:dashif:org:cpix" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
<cpix:HLSSignalingData xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"/>
</ns2:DRMSystem>
</ns2:DRMSystemList>
<ns2:ContentKeyPeriodList>
<ns2:ContentKeyPeriod id="period_id" index="2"/>
</ns2:ContentKeyPeriodList>
<ns2:ContentKeyUsageRuleList>
<ns2:ContentKeyUsageRule kid="cd3c4139-82cf-4745-b92e-c0752e760acf">
<ns2:KeyPeriodFilter periodId="period_id"/>
</ns2:ContentKeyUsageRule>
</ns2:ContentKeyUsageRuleList>
</ns2:CPIX>
Получение данных о ключах из ответа делается аналогично предыдущему разделу.
Неуспешный ответ имеет JSON-структуру вида
{"status": STATUS, "title": "TITLE", "detail": "DETAIL"}
и HTTP-код 4xx / 5xx. В полях title
и detail
содержится краткая информация
об ошибке.