encrypt video

SPEKE

SPEKE (Secure Packager и Encoder Key Exchange) — это протокол защищенного обмена ключами между упаковщиком и кодировщиком, разработанный AWS. Он основан на спецификации информационного обмена для защиты контента (CPIX), разработанной DASH Industry Forum (DASH-IF). Протокол SPEKE используется для получения информации о ключах шифрования и последующей ее передачи в упаковщики контента (например, Shaka Packager).

Основные данные, которые нужны для запросов SPEKE:

  • Идентификатор контента (content id)
  • Идентификатор ключа для контента (key id)
  • Один или более тип DRM-системы, для которой нужно сгенерировать PSSH
  • Признак использования ротации ключей
  • Номер периода ротации ключей, если таковая используется

В ответ сервис вернет информацию о ключе шифрования и PSSH (Protection System Specific Header). Ключ шифрования будет использован для шифрования видео, PSSH будет включен в плейлист и будет передаваться при запросе лицензии.

Ниже представлены примеры запросов к SPEKE, которые помогут вам быстро начать работу с нашим multi-drm-решением.

Использование 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">
        <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 с ротацией ключей

С помощью 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 содержится краткая информация об ошибке.

↑ Наверх
Оставьте заявку

если вас заинтересовал наш сервис или есть вопросы

Напишите нам