IPTV плагин
Во Flussonic Media Server есть встроенная простейшая Middleware. Основные возможности:
- авторизация пользователей по уникальному токену;
- ограничение одновременных подключений;
- генерация m3u плейлиста для HLS и HTTP MPEG-TS;
- управление пользователями через API;
- скоро: пакетирование каналов (разделение доступа).
Управление осуществляется через административный интерфейс Flussonic Media Server, а база данных хранится в sqlite файле.
IPTV плагин подходит как для организации сервиса для многих сотен клиентов, так и раздачи потоков друзьям и партнерам.
Включение и настройка
В административном интерфейсе Flussoniс Media Server откройте вкладку «IPTV», на этой странице нужно указать путь к базе данных (или оставить значение по умолчению, это нормально).
Нажмите кнопку «Enable IPTV».
В конфигурационном файле /etc/flussonic/flussonic.conf
включение IPTV плагина выглядит так:
erlang
# Plugins:
plugin iptv {
database sqlite:///opt/flussonic/priv/iptv.db;
}
После включения плагина, откроется интерфейс администратора с его настройками. В боковом меню можно выбрать каналы, доступные для пользователей, а основную часть экрана занимает список пользователей.
Для каждого пользователя можно задать лимит одновременных подключений, токен генерируется автоматически.
Для включения каналов достаточно просто нажать на их имя в списке.
Для генерации и экспорта m3u плейлистов для HLS и HTTP MPEG-TS нажмите кнопки HLS и MPEG-TS.
Работа с API
С помощью API можно управлять пользователями: создавать, обновлять, удалять, просматривать список.
API предельно простое и интегрировать с вашим сайтом не составит труда. Ниже примеры запросов и ответов сервера.
Список пользователей
Запрос:
curl -u flussonic:letmein 127.0.0.1/tv/api/users
Ответ:
{"host":"http://127.0.0.1","users":[{"created_at":null,"email":"user1@example.com","id":13,"key":"RLSxaTkbq1","max_sessions":1,"name":"user1","packages":null,"updated_at":null},{"created_at":null,"email":"user2@example.com","id":14,"key":"lyAcdcYcs1","max_sessions":99,"name":"user2","packages":null,"updated_at":null}],"users_count":2,"users_total":2}
Создание пользователя
Запрос:
curl -u flussonic:letmein --data-binary '{"name":"flussonic","email":"support1@erlyvideo.org","max_sessions":"3"}' 127.0.0.1/tv/api/user_create
Ответ:
{"created_at":null,"email":"support1@erlyvideo.org","id":10,"key":"r5Z2KTpsp3","max_sessions":3,"name":"flussonic","packages":[],"updated_at":null}
Изменение пользователя
Запрос:
curl -u flussonic:letmein --data-binary '{"created_at":null,"email":"support3@erlyvideo.org","id":10,"key":"newtoken","max_sessions":3,"name":"support","packages":null,"updated_at":null}' 127.0.0.1/tv/api/user_update
Ответ:
{"created_at":null,"email":"support3@erlyvideo.org","id":10,"key":"newtoken","max_sessions":3,"name":"support","packages":[],"updated_at":null}
Удаление
Запрос:
curl -u flussonic:letmein --data-binary '{"created_at":null,"email":"user1@example.com","id":11,"key":"mPSfFitQl3","max_sessions":1,"name":"user1","packages":[],"updated_at":null}' 127.0.0.1/tv/api/user_delete
Ответ:
true
Мульти-авторизация
Плагин является частным случаем авторизационного бэкенда. Про механизм авторизации сессий во Flussonic Media Server можно прочитать по ссылке.
Это означает, что он совместим с другими http-бэкендами, например, Stalker. Подробнее про мультиавторизации можно прочитать на странице, адрес плагина http://127.0.0.1/tv/auth.