В этом посте я попробую подробно расписать как защититься от кражи видеоконтента. Для начала нужно определиться с ОС и сервером. Мой выбор пал на Ubuntu. Нам потребуется 2 http сервера: один — Apache, другой — Lighttpd. В качестве web-оболочки выбираем свой любимый двигатель CMS. На примере буду рассматривать datalife engine (DLE).
Предполагается уже установленная ОС, apache2, lighttpd и CMS. В datalife engine создана первая новость. Для привязки материала и видеоролика используем дополнительное поле для новости, назовём к его idvideo.
В lighttpd нам потребуются несколько модулей (mod_secdownload, mod_flv_streaming, mod_evasive).
Чтобы наши сервера не пересекались на портах меняем в lighttpd.conf порт на:
В этом же файле дописываем в конце:
Вписываем переменные:
Вычисляем timestamp:
Склеиваем ссылку:
Ссылка для видеоплеера будет выглядеть так(http://mysite.com — заменить на свой):
Если же у вас имеется несколько серверов хранения материала, тогда применяем парсирование php. Подключаем файл к базе. Используем GET запросы или же на ваш вкус. Php файл готов к работе.
Для аккуратности и помещения нашего php файла я использовал thickbox. В шаблоне нашей CMS подключил всё необходимое для наших библиотек:
В месте предполагаемого запуска плеера нарисовал кнопку и вставил код:
У меня получилось так:

Настройка
Предполагается уже установленная ОС, apache2, lighttpd и CMS. В datalife engine создана первая новость. Для привязки материала и видеоролика используем дополнительное поле для новости, назовём к его idvideo.
Настройка lighttpd
В lighttpd нам потребуются несколько модулей (mod_secdownload, mod_flv_streaming, mod_evasive).
- mod_evasive — ограничение кол-во соединений с 1 ip(Осторожно, не все провайдеры выдают каждому отдельный IP)
- mod_secdownload — для предотвращения хотлинкинга
- mod_flv_streaming — позволяет искать файлы FLV в использовании высокой производительности инфраструктуры в Lighttpd
Чтобы наши сервера не пересекались на портах меняем в lighttpd.conf порт на:
server.port = 81
В этом же файле дописываем в конце:
flv-streaming.extensions = ( ".flv" ) //маска файлов которые будем защищать;
secdownload.secret = "Ваш ключ" //уникальный ключ для доступа к видео архиву;
secdownload.document-root = "/var/www/video/" //папка с видео архивом(можно использовать подпапки);
secdownload.uri-prefix = "/films2/" //префикс для ссылок по которым обращаться к видео;
secdownload.timeout = 12 //длительность жизни ссылки(в секундах).
Готовим php файл для генерации ссылки
Вписываем переменные:
$id = (isset($_GET['id'])) ? strval($_GET['id']) : 2;
$secret = "Ваш ключ";
$uri_prefix = "/films2/";
Вычисляем timestamp:
$f = "$path/$file";
$t = time();
$t_hex = sprintf("%08x", $t);
md5($secret.$f.$t_hex);
Склеиваем ссылку:
$url = sprintf('%s%s/%s%s', $uri_prefix, $m, $t_hex, $f, $f);
Ссылка для видеоплеера будет выглядеть так(http://mysite.com — заменить на свой):
http ://mysite.com:81$url
Если же у вас имеется несколько серверов хранения материала, тогда применяем парсирование php. Подключаем файл к базе. Используем GET запросы или же на ваш вкус. Php файл готов к работе.
Для аккуратности и помещения нашего php файла я использовал thickbox. В шаблоне нашей CMS подключил всё необходимое для наших библиотек:
<script type="text/javascript" src="path-to-file/jquery.js"></script>
<script type="text/javascript" src="path-to-file/thickbox.js"></script>
<style type="text/css" media="all">@import "path-to-file/thickbox.css";</style>
В месте предполагаемого запуска плеера нарисовал кнопку и вставил код:
</img src="ссыка к кнопке">
У меня получилось так:
