encrypt video

Интеграция drmnow! с Fairplay

Если вы хотите подготовить видео для Fairplay для интеграции с drmnow!, вам понадобятся [project] и [token] параметры от cdnnow! Подробнее это описано в разделе «Начало работы».

Содержание статьи:

Вид запроса

Адрес для запроса лицензий — https://[project].nowdrm.co/fairplay.
HTTP-метод — POST.

Запрос лицензии должен соответствовать одному из следующих форматов:

{
    "fairplay-streaming-request":
    {
        "version": 1,
        "streaming-keys":
        [
            {
                "id": "[keyid]",
                "uri": "[contentid]",
                "spc": "[spcbase64]"
            }
        ]
    }
}

либо

{
    "fairplay-streaming-request":
    {
        "version": 1,
        "streaming-keys":
        [
            {
                "id": "",
                "uri": "[contentid]~[keyid]",
                "spc": "[spcbase64]"
            }
        ]
    }
}

где

  • [contentid] — идентификатор контента (например bigbuckbunny). Не может содержать символ "~" (зарезервирован).
  • [keyid] — идентификатор ключа (например 4729f055d1af003ef31cb98afeab1111). Должен иметь длину 32 и состоять из символов 0-9, a-f, регистр не важен.
  • [spcbase64] — закодированный в base64 запрос лицензии, который генерируется ОС.

Устранение проблем

Если используемый вами запаковщик видео не указывает идентификатор ключа в HLS-манифесте, и/или используемый вами плеер не парсит идентификатор ключа из HLS-манифеста, то используйте другой формат:

{
    "content_id": "[contentid]",
    "spc_message": "[spcbase64]"
}

Если используемый вами плеер отправляет запрос лицензии в виде бинарных данных без кодирования в base64 и формирования JSON, используйте следующий адрес для запроса лицензий:

https://[project].nowdrm.co/fairplay?contentId=[contentid]

При этом при наличии keyid его также следует указать:

https://[project].nowdrm.co/fairplay?contentId=[contentid]&keyId=[keyid]

Вид ответа

В случае успешного выполнения запроса сервер вернет HTTP-код 200 и JSON-ответ следующего вида:

{
    "fairplay-streaming-response":
    {
        "streaming-keys":
        [
            "[ckcbase64]"
        ]
    }
}
  • [ckcbase64] — закодированная в base64 лицензия.

В случае неуспешного выполнения запроса сервер вернет

  • HTTP-код 404 и ответ в виде
{
    "status": 400,
    "title": "Getkeys request error",
    "detail": "Keys not found ([project])"
}

если ключи для данного [contentid] в проекте [projectname] не найдены.

  • HTTP-код 400 и ответ в виде
{
    "fairplay-streaming-response":
    {
        "streaming-keys": []
    }
}

если запрос лицензии поврежден (например, подписан неверным сертификатом).

Устранение проблем

  • Если для запроса лицензии был использован формат запроса:
{
    "content_id": "[contentid]",
    "spc_message": "[spcbase64]"
}

то ответ будет иметь вид

{
	"operation_status_code": [statuscode],
	"ckc_message": "[ckcbase64]"
}

[statuscode] — числовой статус выполнения запроса лицензии. 0 означает успешное выполнение запроса, иные значения — неуспешное выполнение запроса.

Если ваш плеер не поддерживает вышеописанные форматы вывода ответа, вы можете дополнительно указать формат вывода ответа в адресе запроса лицензии https://[project].nowdrm.co/fairplay?responseType=[responsetype], где [responsetype] может иметь следующие значения:

  • rawckc — лицензия будет передаваться будет в виде бинарных данных
  • base64ckc — лицензия будет передаваться в виде base64-строки
  • rawckctag — аналогично rawckc, но данные заключены между тэгами <ckc></ckc>
  • base64ckctag — аналогично base64ckc, но данные заключены между тегами <ckc></ckc>

Опции вывода ответа могут быть скомбинированы с параметрами для [contentid] и [keyid] из раздела «Вид запроса -> Устранение проблем».

Читайте также

Воспроизведение зашифрованного DRM видео.

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

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

Напишите нам