Чтобы защитить контент от нежелательных загрузок, воспользуйтесь опцией Secure Token в настройках CDN-ресурса.
Принцип работы
Мы получаем незащищенный стрим или VOD, транскодируем полученный контент и раздаем через сеть CDN серверов. Токен добавляется в URL VOD или live трансляции после транскодирования. Ссылки на защищаемый контент выглядят так:
https://cdn.example.com/streams/10_14/WG99BSGMdZIwKy/1552551429/playlist.m3u8 (live трансляция)
https://cdn.example.com/videos/44_aJ0o71wfUwJvFDklkjlcu/master.m3u8 (VOD)
Настройки в личном кабинете
Перейдите в раздел «CDN-ресурсы». Напротив нужного CDN-ресурса нажмите «Настройки» -> «Дополнительные настройки», в разделе «Безопасность» разверните список опций в меню «Добавить опцию» и выберите Secure Token.
Активируйте опцию, в появившемся окне введите желаемый ключ подписи и сохраните настройки. Ключ должен содержать от 6 до 32 символов.
При генерации токена учитываются 3 параметра:
- время истечения ссылки,
- исходная ссылка на файл,
- ключ.
Оставьте чек-бокс «Добавить 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-скрипт для VOD
<?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 — секретный ключ,
- $vhost — доменное имя для CDN-ресурса,
- $video_id — slug, индивидуальный параметр в URL видео. Его можно найти в прямой ссылке на видео (Настройки -> Экспорт -> URL-страницы) после ID вашего аккаунта. Например, в URL https://cdn.example.com/videos/123_gnhWeEAA6LT, gnhWeEAA6LT - это slug
- $expires — время жизни ссылки (в секундах),
- $link — строка для генерации токена с учетом необходимых параметров хеш-ключа,
- $url — ссылка на файл.