Видеостатистика в MiStats
В релизе Smarty 2.12 — обновлена интеграция с START: она переходит на новый API, добавлен полнотекстовый умный поиск фильмов и сериалов и быстрая авторизация Smart TV по QR-коду, и наконец, мы готовы представить новый модуль MiStats для анализа смотрения видеотеки 🙂
Графики и выгрузки, как мы и обещали, уехали в отдельную админку, а вот в Smarty теперь можно создавать подборки популярных фильмов и сериалов на основании данных из MiStats c помощью команды create_video_selection_by_popularity.

Видеотека
⚠️ START переехал на новые API ⚠️
До конца года API-интерфейс START, с помощью которого интеграция работала в предыдущих релизах, будет помечен как устаревший и отключен. В этом релизе интеграция переведена на новый интерфейс, в связи с чем настоятельно рекомендуем обновиться на него всем операторам, использующим START.
В настройках интеграции после обновления нужно будет добавить следующие параметры:
- «Partner catalog API URL»
- «Доступный регион»
С продуктовой точки зрения новая интеграция:
- теперь не содержит блока «Похожие» для фильмов;
- имеет статичный список генерируемых подборок: «Премьеры», «Новое в подписке», «Оригинальные сериалы START», «Оригинальные фильмы START» и «Топ-10».
Все изменения отразили в документации.
Мета для фильмов
- Добавлена поддержка нового источника меты видеокаталога Poiskkino.
- При импорте меты из Кинопоиска и TMDB теперь заполняется флаг «Является сериалом».
- Добавлена менеджмент-команда
video_update_ratingsдля обновления рейтингов Кинопоиска и IMDb у фильмов с заполненнымkinopoisk_id.
Категории фильмов
Добавлена новая менеджмент-команда assign_video_categories для назначения VOD-категорий по жанру, возрастному рейтингу и флагу сериальности фильмам внутри каталога оператора — необходимый инструмент для нового экрана каталога шаблона Titanium:

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

Другое
- Команда
make_vodpvrтеперь точнее определяет сериалы, если в источнике EPG нет специальных параметров для сезонов и эпизодов: сериальность можно задать названиями категорий EPG в опцииTVMIDDLEWARE_VODPVR_SERIES_EPG_CATEGORIES. А также на странице видео добавлена кнопка «Преобразовать в сериал».

- В форме массового создания ассетов ограничение задаётся опцией
TVMIDDLEWARE_VIDEOFILE_CREATE_MULTIPLE_MAX_COUNT(по умолчанию 100), в форме массового создания сезонов —TVMIDDLEWARE_SEASON_CREATE_MULTIPLE_MAX_COUNT(по умолчанию 1000). - В команду
cache_video_country_listдобавлена опцияTVMW_CACHE_VIDEO_COUNTRY_LIST_EXCLUDED_COUNTRIES— список названий стран, которые не попадают в кэш и не возвращаются методами в интерфейсы.
🔍 Умный поиск фильмов и сериалов
В этом релизе у Smarty появился новый микросервис smart_search на базе Manticore Search, который позволяет заменить обычный поиск фильмов по подстроке в названии на полнотекстовый поиск по разным полям фильма:
- умный поиск прощает опечатки (что особенно полезно при голосовом вводе);
- фильмы ищутся по жанрам, актёрам и другой мете;
- поиск реже выдаёт пустые результаты — абоненту предлагается больше вариантов контента;
- умный поиск шустрее обычного 🙂
Новый поиск уже интегрирован в интерфейс Titanium:

И ещё одна интересная фича, созданная с помощью уже имеющегося микросервиса WindyCast: механизм простой и быстрой авторизации телевизора с уже авторизованного мобильного устройства по следующему сценарию:
- абонент скачивает приложение на Smart TV;
- в момент первой авторизации абоненту показывается возможность войти по QR-коду или числовому коду через мобильное приложение или мобильную веб-версию;

- абонент сканирует код и телевизор автоматически авторизовывается в аккаунт, в котором абонент ранее уже был авторизован на мобильном устройстве

На данный момент механизм интегрируется в шаблон Titanium и мобильную веб-версию, в будущих релизах планируем добавить его в мобильное приложение и остальные интерфейсы по запросу.
Обновления в админке
- Для лент дашборда с типом «Телеканалы» добавлены поля «Категория ТВ» и «Тип отображения».

- На странице списка тарифов добавлены фильтры: только нескрытые, только скрытые, только архивные, только тарифы для неактивных аккаунтов, а также фильтр по типу доступа.

- Переработаны виджеты во вкладке динамики абонентов:
- виджет «Абоненты сегодня» заменён на «График онлайна» — данные заполняются командой
cache_max_online: за день шаг 1 час (максимальный онлайн за час), за неделю и месяц шаг 1 сутки; - виджет «Оплаты сегодня» показывает успешные, неуспешные и необработанные оплаты, привязанные и отвязанные карты, автоплатежи;
- в виджет «Платящие абоненты» добавлены флаги «Оплаты, сделанные впервые» и «Оплаты „вернувшихся“ абонентов».
- виджет «Абоненты сегодня» заменён на «График онлайна» — данные заполняются командой
- В отчёте по действиям абонента теперь учитывается локализация пользователя админки, а в колонке абонента рядом с именем выводится его
id. В списке действий появился отдельный источник «Списание за активацию аккаунта(ов)» — например, при подключении тарифа неактивному аккаунту с последующей активацией. Для действий, созданных до обновления, источник не меняется.
- Сортировка списков в админке одинаково обрабатывает пустые значения и
NULLна PostgreSQL и MySQL: при сортировке по возрастанию пустые значения идут в начале списка.
- Добавлена опция
TVMW_SHOW_MESSAGES_ON_TV— на какие системные сообщения ставить флаг «На экран телевизора»: пополнение баланса, окончание подписки и ручное отключение тарифа.
- В форме стриминг-сервиса для типа маршрутизации «Python-скрипт» в списке переменных поля «Код скрипта» указан
authkey— ключ авторизации абонента в Smarty. В скрипте переменная подставляется в URL.
Новые опции
- Опция
TVMW_IGNORE_CLEAR_SESSION_FOR_TARIFFSзадаёт идентификаторы тарифов, для которых флаг Client «Очищать сессии при активации аккаунта» не действует.
- Лимит финансовых операций
TVMW_LIMIT_TRANSACTION_COUNTможно обойти для отдельных IP и абонентов:TVMW_LIMIT_TRANSACTION_IGNORE_IPSиTVMW_LIMIT_TRANSACTION_IGNORE_CUSTOMERS.
Billing API
- В методе
AccountModifyисправлена некорректная обработка поляsubnets. - В ответ метода
CustomerInfoдобавлены поляfirstname,lastnameиmiddlename. - В ответ метода
AccountInfoдобавлено полеallowed_device_groups.
TVMW API
- В ответ метода
NoAuthVideoEpisodeListдобавлено полеfilesсо списком ассетов эпизода. - В ответ методов
PortalDashboardList/NoAuthPortalDashboardListдобавлено полеdescription, в атрибуты ленты — поляcontent_typeиcategory_id(фильтр «Категория ТВ» для лент типа «Телеканалы»). Полеdisplay_typeтеперь возвращается также для лент типа «Телеканалы». - Добавлен новый метод
NoAuthProgramList— список телепередач за заданный промежуток времени без авторизации. - Добавлен новый метод
NoAuthProgramCategoryChannelList— список телеканалов с передачами в заданной категории без авторизации. - В ответ метода
ChannelInfoV2добавлено полеmeta. - В ответ метода
NoAuthPortalClientChannelListдобавлено полеmeta. - В ответ метода
CustomerInfoV2добавлено полеerror. Еслиemailне задан, возвращается пустая строка. - В ответ методов
CategoryList/NoAuthCategoryListдобавлено полеdescription. - Добавлен новый метод
NoAuthPortalDashboardChannelList— список каналов ленты дашборда без авторизации. - Добавлен новый метод
NoAuthProgramCategoryList— список категорий передач без авторизации. - Добавлен новый метод
SendParentCodeBySmsдля отправки ПИН-кода абоненту по SMS. - В методах
VideoList/NoAuthVideoListв параметрtariffможно передать несколько значений через запятую, добавлен входной параметрexclude_tariff_id. Добавлены фильтры по рейтингу Кинопоиска (kinopoisk_rating_from,kinopoisk_rating_to) и IMDb (imdb_rating_from,imdb_rating_to), диапазон 0–10. - В метод
ChannelProgramsдобавлен заголовокCache-Control. - Добавлен новый метод
GenerateQRLoginдля генерации QR-сессии входа на ТВ. - Добавлен новый метод
SyncQRLoginдля завершения QR-входа с авторизованного мобильного устройства по цифровому кодуlogin_code. - В методе
ProgramListполеhas_recordбольше не обнуляется, если на технических работах только часть PVR-сервисов канала. Глубина архива считается по доступным PVR-сервисам, а не по стримеру с наибольшей глубиной, если он недоступен. - В методе
ChannelDetailполеactionsучитывает местоположение абонента так же, как список тарифов вCustomerTariffList. Если у тарифа в «Параметрах доступности» заданы страна или город, вactionsканала он попадает только при совпадении гео. - Добавлены методы
VideoSmartSearch/NoAuthVideoSmartSearch— поиск видео через модульsmart_search. - В ответ метода
PaymentListдобавлено полеis_autopayment— флаг, является ли транзакция автоплатежом (0или1). - В методе
VideoUrlадрес потока выбирается с учётом доступности стриминг-сервиса для устройства абонента. - В методе
SettingsSaveисправлена ошибка Duplicate entry при параллельном сохранении настроек профиля.
Content API
- Добавлен новый метод
EPGChannelIconUploadдля загрузки иконок EPG-каналов. - Добавлен новый метод
ChannelModifyдля редактирования канала. - Добавлен новый метод
EPGChannelListдля получения списка EPG-каналов. - В метод
ChannelCreateдобавлено полеmeta.
Другое
- В общих настройках Client в блоке «Значения по умолчанию» добавлено поле устройства по умолчанию.
- На странице Client в админке рядом с опцией «Проверять IP адрес в TVMW API запросах с AuthKey» добавлено поле «Не проводить проверку IP адресов». В нём через точку с запятой перечисляются IP, с которых проверка не выполняется даже при включённой опции.
- Добавлен новый парсер EPG из VitrinaTV.
- Исправлено двойное начисление баланса, если команда
check_payment_statusи уведомление платёжного шлюза одновременно обрабатывали одну транзакцию.
