Что такое Secure token и как он работает
Чтобы защитить контент от нежелательных загрузок, воспользуйтесь опцией Secure Token в настройках CDN-ресурса. Подробнее об этой опции рассказываем в статье «Secure token. Обзор функции».
Как мы защищаем потоки с помощью Secure Token:
1. Стриминговая платформа получает от вас незащищённый Live поток или видео без токена.
2. Стриминговая платформа транскодирует полученный контент и раздаёт через сеть CDN-серверов.
3. Токен добавляется в URL видео или Live потока после транскодирования. Ссылки на защищаемый контент выглядят так:
https://cdn.example.com/streams/10_14/WG99BSGMdZIwKy/1552551429/playlist.m3u8 (Live поток)
https://cdn.example.com/videos/44_aJ0o71wfUwJvFDklkjlcu/master.m3u8 (видео)
Настроить защиту по временным ссылкам
Включить опцию Secure token
1. Перейдите в раздел CDN-ресурсы и перейдите к настройкам ресурса, который используется для стриминга.
2. Спуститесь в раздел Безопасность и включите опцию Secure Token.
3. В появившемся окне введите желаемый ключ подписи и сохраните настройки. Ключ должен содержать от 6 до 32 символов. Оставьте чек-бокс «Добавить IP-адрес к токену» пустым.
Сохраните настройки.
Сгенерировать токен
Если вы хотите самостоятельно сгенерировать защищенные ссылки, воспользуйтесь следующими php-скриптами.
PHP-скрипт для Live потока
<?php $secret = 'W39Hd509SeReT41p'; $vhost = 'cdn.example.com'; $client_id = '10'; $stream_id = '14'; $expires = time() + 10000; $link = "{$client_id}_{$stream_id}_${secret}_${expires}_"; $md5 = md5($link, true); $md5 = base64_encode($md5); $md5 = strtr($md5, '+/', '-_'); $md5 = str_replace('=', '', $md5); $url = "https://{$vhost}/streams/{$client_id}_${stream_id}/${md5}/${expires}/playlist.m3u8"; echo $url; echo "\n";
PHP-скрипт для видео
<?php $secret = 'W39Hd509SeReT41p'; $vhost = 'cdn.example.com'; $client_id = '44'; $video_id = 'aJ0o71wfUwJvFcu'; $expires = time() + 10000; $link = "{$client_id}_{$video_id}_${secret}_${expires}_"; $md5 = md5($link, true); $md5 = base64_encode($md5); $md5 = strtr($md5, '+/', '-_'); $md5 = str_replace('=', '', $md5); $url = "https://{$vhost}/videos/{$client_id}_${video_id}/${md5}/${expires}/master.m3u8"; echo $url; echo "\n";
Где:
$secret — секретный ключ, который вы добавили на 3 шаге этой инструкции.
$vhost — доменное имя для CDN-ресурса
$video_id — slug, индивидуальный параметр в URL видео. Его можно найти в прямой ссылке на видео (Настройки → Экспорт → URL-страницы) после ID вашего аккаунта. Например, в URL https://cdn.example.com/videos/123_gnhWeEAA6LT,
gnhWeEAA6LT — это slug$expires — время жизни ссылки (в секундах)
$link — строка для генерации токена с учетом необходимых параметров хеш-ключа
$url — ссылка на файл