5. Интеграция Smarty с внешними системами и сервисами

5.1. API для разработчиков

Актуальная документация по API-методам в базе знаний продукта на сайте: https://microimpuls.com/docs/smarty/extra/api

5.1.1. Примеры кода

Примечание

Смотрите также другие дополнительные инструменты

5.2. Интеграция с биллинговой системой

Актуальная документация о возможностях интеграции с внешним биллингом оператора в базе знаний продукта на сайте https://microimpuls.com/docs/smarty/external-billing-integration

5.3. Встраивание модулей в сайт

Актуальная документация по интеграции виджетов на сайт: https://microimpuls.com/docs/smarty/extra-services-integration/site-widgets

5.4. Интеграция с популярными видео-серверами

5.4.1. Интеграция с Astra

Для интеграции механизма авторизации видеопотоков (стриминг-сервисов) с Astra используется механизм генерации одноразовых токенов для ссылок на поток на стороне сервера Smarty. Astra в момент разбора HTTP Request от абонентского устройства выделяет токен и проверяет его на сервере Smarty на валидность.

Для генерации токена необходимо в маске URL стриминг-сервиса в Smarty добавить переменную $token в маску URL, например:

http://streamer.example.com:8080/mychannel/?token=$token

5.4.2. Интеграция с Flussonic

Для интеграции механизма авторизации видеопотоков (стриминг-сервисов) с Flussonic используется механизм генерации одноразовых токенов для ссылок на поток на стороне сервера Smarty. Flussonic в момент разбора HTTP Request от абонентского устройства выделяет токен и проверяет его на сервере Smarty на валидность.

Для генерации токена необходимо в маске URL стриминг-сервиса в Smarty добавить переменную $token в маску URL, например:

http://streamer.example.com:8080/mychannel/?token=$token

На стороне Flussonic необходимо настроить авторизационный бекенд, указав адрес API-метода StreamServiceTokenCheck на стороне Smarty:

auth_backend main {
    backend https://smarty.example.com/tvmiddleware/api/streamservice/token/check/;
}

и в свойствах канала прописать параметр auth:

stream example {
    url hls://example.com/channel/index.m3u8;
    title "Channel Name";
    auth auth://main;
}

5.4.2.1. Настройка маски URL для архивных записей

Для корректной работы функционала постановки Live-трансляций на паузу и перемотки назад из Live необходимо использовать следующий шаблон URL:

http://<host>/$cid/video-$flpbt-$flpdur.m3u8?token=$token

5.5. Интеграция с онлайн-кинотеатрами

5.5.1. Интеграция с MEGOGO

Smarty содержит модуль для интеграции с онлайн-кинотеатром MEGOGO, который включает в себя следующий функционал:

  • Синхронизация фильмов и сериалов MEGOGO со встроенной видеотекой Smarty (наименования, описание, жанры, обложки и т.д.)
  • Модель подписки (SVOD)
  • Модель покупки отдельных фильмов и сериалов (TVOD)
  • Все стандартные функции встроенной видеотеки Smarty (поиск, фильтрация, сортировка, группировка по жанрам и т.д.)
  • Прозрачная интеграция в стандартные приложения Microimpuls на разных устройствах - единый интерфейс просмотра ТВ и VOD и других сервисов, привычный для абонента

5.5.1.1. Настройка модуля megogo

Для подключения интеграции с MEGOGO необходимо проделать следующие шаги:

  • Подключить модуль megogo в конфигурации Smarty в секции INSTALLED_APPS, перезагрузить Smarty и выполнить миграцию данных.
  • Создать скрытый тарифный пакет, который будет использоваться для возможности доступа абонентов к каталогу и покупке TVOD или подписке SVOD. Этот тарифный пакет будет автоматически включаться для всех импортированных фильмов для того, чтобы фильм был виден абоненту в каталоге.
  • Создать тарифный пакет, который будет использоваться для подписки на пакет фильмов. При покупке SVOD-подписки этот пакет будет подключаться абоненту в Smarty, а при отключении пакета - будет происходить отписка от пакета SVOD.
  • В панели администратора в разделе «Общие настройки» -> «Интеграция с API внешних систем» создать новую внешнюю систему:
    • указать название (например, MEGOGO)
    • выбрать из выпадающего списка класс API megogo_api_client
    • выбрать тарифный пакет, созданный на втором шаге. Абоненты, у которых подключен данный тарифный пакет, будут видеть фильмы в видеотеке и иметь возможность их купить (по подписке или транзакционно, в зависимости от параметров фильма в MEGOGO)
  • Указать дополнительные аттрибуты внешней системы:
    • mobile_private_key - закрытый ключ для мобильных устройств (предоставляется MEGOGO)
    • mobile_public_key - открытый ключ для мобильных устройств (предоставляется MEGOGO)
    • smart_tv_private_key - закрытый ключ для Smart TV (предоставляется MEGOGO)
    • smart_tv_public_key - открытый ключ для Smart TV (предоставляется MEGOGO)
    • stb_private_key - закрытый ключ для STB (предоставляется MEGOGO)
    • stb_public_key - открытый ключ для STB (предоставляется MEGOGO)
    • partner_id - идентификатор партнера (предоставляется MEGOGO)
    • salt - ключ, используемый для формирования запроса авторизации в биллинге (предоставляется MEGOGO)
    • svod_service_id - идентификаторы сервиса SVOD, используемый для оформления услуги пользователю (предоставляется MEGOGO)
    • available_tvod_collection_id - идентификатор коллекции для получения доступных TVOD-обьектов (предоставляется MEGOGO)
    • tariff_id - идентификатор тарифного пакета, созданного на 3 шаге, который будет подключен абоненту при активации подписки. Подключенность этого пакета означает наличие подписки на соответствующий пакет SVOD в MEGOGO. При отключении данного пакета у абонента/аккаунта в Smarty, будет автоматически вызван метод отписки от SVOD в MEGOGO.
    • additional_tariffs_ids - идентификаторы смешанных тарифных пакетов (объединящих телеканалы и подписку MEGOGO), через запятую. При подключении одного из таких тарифов будет произведена подписка на MEGOGO также, как и для tariff_id. При отключении всех таких пакетов будет произведена отписка от MEGOGO также, как и для tariff_id.
    • ignore_customer_balance_check - при значении 1 при покупке контента не будет проверяться баланс абонента. Необходимо при интеграции покупок с внешней биллинговой системой оператора.
    • typhoid_comment_category_id - идентификатор жанра-категории, присваиваемый фильму, если он является фильмом с тифлокомментариями. Если данный атрибут указан и фильм имеет тифлокомментарии, то другие категории для него указаны не будут.
    • sign_language_category_id - идентификатор жанра-категории, присваиваемый фильму, если он является фильмом с сурдопереводом. Если данный атрибут указан и фильм имеет сурдоперевод, то другие категории для него указаны не будут.

После выполнения всех шагов необходимо произвести синхронизацию конента с помощью management-команды:

python manage.py megogo_sync_content --settings=settings.<settings filename>

Первая синхронизация может занять около получаса в связи со скачиванием обложек, последующие синхронизации проходят быстрее. Для регулярной синхронизации фильмов необходимо добавить вызов команды в crontab. Помимо синхронизации фильмов эта команда также создает подборки контента из базы MEGOGO для импортированных фильмов.

Для команды megogo_sync_content можно указать флаг --load_actor_info для загрузки данных об актёрах со стороны сервиса MEGOGO, однако это потребует больше времени для синхронизации.

После первой синхронизации будут созданы жанры фильмов MEGOGO. Затем необходимо выполнить финальный шаг:

  • Создать требуемые жанры видеотеки в Smarty и произвести маппинг жанров MEGOGO к жанрам Smarty в служебной панели администратора по адресу http://smarty.example.com/admin/megogo/megogogenremap/.

При последующей синхронизации фильмов произойдет привязка жанров.

Примечание

Для возможности покупки фильмов, доступных в TVOD, для каждого ключа должна быть подключена данная услуга на стороне MEGOGO.

5.5.2. Интеграция с tvzavr (deprecated)

Примечание

Кинотеатр tvzavr более недоступен в рамках Smarty по причине его официального закрытия.

Smarty содержит модуль для интеграции с онлайн-кинотеатром tvzavr, который включает в себя следующий функционал:

  • Синхронизация фильмов и сериалов tvzavr.ru со встроенной видеотекой Smarty (наименования, описание, жанры, обложки и т.д.)
  • Модель подписки (SVOD)
  • Все стандартные функции встроенной видеотеки Smarty (поиск, фильтрация, сортировка, группировка по жанрам и т.д.)
  • Прозрачная интеграция в стандартные приложения Microimpuls на разных устройствах - единый интерфейс просмотра ТВ и VOD и других сервисов, привычный для абонента

5.5.2.1. Настройка модуля tvzavr

Для подключения интеграции с tvzavr необходимо проделать следующие шаги:

  • Подключить модуль tvzavr в конфигурации Smarty в секции INSTALLED_APPS, перезагрузить Smarty и выполнить миграцию данных.
  • Создать скрытый тарифный пакет, который будет использоваться для возможности доступа абонентов к каталогу SVOD. Этот тарифный пакет будет автоматически включаться для всех импортированных фильмов для того, чтобы фильм был виден абоненту в каталоге.
  • Создать тарифный пакет, который будет использоваться для подписки на пакет фильмов. При покупке SVOD-подписки этот пакет будет подключаться абоненту в Smarty, а при отключении пакета - будет происходить отписка от пакета SVOD.
  • В панели администратора в разделе «Общие настройки» -> «Интеграция с API внешних систем» создать новую внешнюю систему:
    • указать название (например, tvzavr)
    • выбрать из выпадающего списка класс API tvzavr_api_client
    • выбрать тарифный пакет, созданный на втором шаге. Абоненты, у которых подключен данный тарифный пакет, будут видеть фильмы в видеотеке и иметь возможность купить подписку на них.
  • Указать дополнительные аттрибуты внешней системы:
    • tvzavr_tariff_id - значение этого параметра выдаёт tvzavr
    • plf - значение этого параметра выдаёт tvzavr
    • secret - значение этого параметра выдаёт tvzavr
    • subscription_tariff_id - идентификатор тарифного пакета, созданного на 3 шаге, который будет подключен абоненту при активации подписки. Подключенность этого пакета означает наличие подписки на соответствующий пакет SVOD в tvzavr. При отключении данного пакета у абонента/аккаунта в Smarty, будет автоматически вызван метод отписки от SVOD в tvzavr.

После выполнения всех шагов необходимо произвести синхронизацию конента с помощью management-команды:

python manage.py tvzavr_sync_content --settings=settings.<settings filename>

Первая синхронизация может занять около получаса в связи со скачиванием обложек, последующие синхронизации проходят быстрее. Для регулярной синхронизации фильмов необходимо добавить вызов команды в crontab.

После первой синхронизации будут созданы жанры фильмов tvzavr. Затем необходимо выполнить финальный шаг:

  • Создать требуемые жанры видеотеки в Smarty и произвести маппинг жанров tvzavr к жанрам Smarty в служебной панели администратора по адресу http://smarty.example.com/admin/tvzavr/tvzavrgenremap/.

При последующей синхронизации фильмов произойдет привязка жанров.

Примечание

Для того, чтобы оформленные подписки продлевались на стороне сервера tvzavr, необходимо также по расписанию вызывать команду check_accounts.

5.5.3. Интеграция со Start

Актуальная документация: https://micro.im/docs/smarty/external-vod-integration/start

5.5.3. Интеграция со PREMIER

Актуальная документация: https://micro.im/docs/smarty/external-vod-integration/premier

5.6. Интеграция с CAS CMS

Smarty поддерживает интеграцию с некоторыми системами CAS по модели единой системы управления подписками, при этом портальные приложения и клиенты для приставок и других устройств поддерживают работу с любыми CAS, которые поддерживаются конкретным устройством.

5.6.1. Интеграция с Irdeto

Настройки интеграции задаются в файле конфигурации Smarty:

IRDETO_NATIONALITY str
Значение по умолчанию: „RUS“
IRDETO_REGION_TAG str
Значение по умолчанию: „MO“
IRDETO_HOST str
Адрес сервера Irdeto с SOAP API, по умолчанию „http://127.0.0.1:80

5.7 Интеграция с платежными системами

Актуальная документация: https://microimpuls.com/docs/smarty/payments-integration

5.7.1. Интеграция с Payture

Актуальная документация: https://microimpuls.com/docs/smarty/payments-integration/payture

5.8. Дополнительные инструменты

Скрипт миграции данных smarty между БД по client_id
https://github.com/microimpuls/admin-tools/tree/master/smarty_migrate_tool
Скрипт миграции с OFT Middleware на Microimpuls Middleware
https://github.com/microimpuls/admin-tools/tree/master/oft_db_migrate_tool
Скрипт миграции аккаунтов и MAC-адресов с Hydra Billing в Microimpuls Middleware
https://github.com/microimpuls/admin-tools/tree/master/hydra_migrate
Скрипт массового создания аккаунтов через Billing API
https://github.com/microimpuls/admin-tools/tree/master/mass_customer_creator

Примечание

Другие полезные скрипты и утилиты см. в репозитории Microimpuls на Github: https://github.com/microimpuls/admin-tools