Управление пакетами каналов¶
Пакеты каналов — это группы телевизионных каналов, объединённые для продажи абонентам. Пакеты позволяют создавать различные тарифные планы и монетизировать ваш IPTV-сервис.
Что такое пакет каналов¶
Пакет каналов в Catena — это именованная группа телевизионных каналов, которую можно назначить абонентам. Пакеты позволяют:
- Создавать тарифные планы — группировать каналы по темам (спорт, кино, новости) или уровням доступа (базовый, премиум)
- Монетизировать сервис — продавать доступ к пакетам каналов абонентам
- Управлять доступом — предоставлять разным абонентам доступ к разным наборам каналов
- Упрощать администрирование — назначать пакеты вместо управления доступом к каждому каналу отдельно
Важная концепция: Канал сам по себе не доступен абонентам. Доступ к каналу предоставляется только через пакеты, на которые подписан абонент.
Основные параметры пакета¶
Технические параметры¶
Идентификатор пакета (Package ID)
- Автоматически генерируется при создании пакета
- Формат: base64-кодированный Snowflake ID с заменой символов
+/=
на-_.
- Пример:
aKl9SW3AAAE.
- Используется для программного доступа через API
- Не редактируется после создания
Имя пакета (Name)
- Уникальное техническое имя пакета в рамках портала
- Используется в системе для идентификации пакета
- Требования:
- Только латинские буквы, цифры, дефис и подчёркивание:
[a-zA-Z0-9_-]
- Длина от 2 до 20 символов
- Должно быть уникальным в рамках вашего портала
- Примеры:
basic
,premium
,sport-pack
,movies_hd
ID портала (Portal ID)
- Идентификатор портала, к которому принадлежит пакет
- Автоматически устанавливается при создании
Параметры отображения¶
Описание (Description)
- Текстовое описание пакета для администраторов
- Может содержать информацию о содержании пакета, ценообразовании, целевой аудитории
- Не обязательное поле
- Примеры: "Базовый пакет из 30 каналов", "Премиум спортивные каналы в HD качестве"
Состав пакета¶
Список каналов (Channels)
- Поле только для чтения (read-only)
- Содержит имена (name) всех каналов, включённых в пакет
- Обновляется автоматически при добавлении/удалении каналов через API управления связями
- Пример:
["sport1", "sport2", "news", "movies-hd"]
Создание пакета¶
Через веб-интерфейс¶
- Откройте раздел "Пакеты" в панели управления Catena
- Нажмите кнопку "Создать пакет"
-
Заполните обязательные поля:
-
Name — техническое имя пакета (латиницей)
- Description — описание пакета (опционально)
- Сохраните пакет
- Добавьте каналы в пакет через раздел управления составом
После создания пакет получит уникальный ID и будет доступен для назначения абонентам.
Через Management API¶
curl -X POST https://your-catena-domain.com/tv-management/api/v1/packages \
-H "X-Auth-Token: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"name": "premium",
"description": "Премиум пакет с HD каналами"
}'
Ответ:
{
"packageId": "pKl9SW3AAAE.",
"portalId": "portal123",
"name": "premium",
"description": "Премиум пакет с HD каналами",
"channels": []
}
Просмотр списка пакетов¶
Через веб-интерфейс¶
В разделе "Пакеты" отображается таблица со всеми пакетами портала:
- Название — имя пакета (Name)
- Описание — текстовое описание пакета
- Количество каналов — сколько каналов входит в пакет
- Абонентов — количество абонентов с этим пакетом
- Действия — кнопки редактирования и удаления
Через Management API¶
Получить список всех пакетов:
curl -X GET https://your-catena-domain.com/tv-management/api/v1/packages \
-H "X-Auth-Token: your-api-key"
Ответ:
{
"packages": [
{
"packageId": "pKl9SW3AAAE.",
"portalId": "portal123",
"name": "premium",
"description": "Премиум пакет с HD каналами",
"channels": ["sport1", "sport2", "news-hd", "movies-4k"]
},
{
"packageId": "bKl9SW3AAAE.",
"portalId": "portal123",
"name": "basic",
"description": "Базовый пакет каналов",
"channels": ["news", "general"]
}
],
"next": "cursor-for-next-page"
}
Пагинация:
Для получения следующей страницы используйте параметр cursor
:
curl -X GET "https://your-catena-domain.com/tv-management/api/v1/packages?cursor=cursor-for-next-page" \
-H "X-Auth-Token: your-api-key"
Получение информации о пакете¶
Через Management API¶
Получить пакет по ID:
curl -X GET https://your-catena-domain.com/tv-management/api/v1/packages/pKl9SW3AAAE. \
-H "X-Auth-Token: your-api-key"
Ответ:
{
"packageId": "pKl9SW3AAAE.",
"portalId": "portal123",
"name": "premium",
"description": "Премиум пакет с HD каналами",
"channels": ["sport1", "sport2", "news-hd", "movies-4k"]
}
Редактирование пакета¶
Через веб-интерфейс¶
- Откройте список пакетов
- Найдите нужный пакет и нажмите кнопку "Редактировать"
-
Измените параметры:
-
Name — техническое имя (лучше не менять после создания)
- Description — описание пакета
- Сохраните изменения
Примечание: Изменение состава каналов в пакете выполняется отдельно через управление связями каналов и пакетов.
Через Management API¶
curl -X PUT https://your-catena-domain.com/tv-management/api/v1/packages/pKl9SW3AAAE. \
-H "X-Auth-Token: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"name": "premium",
"description": "Премиум пакет с HD и 4K каналами"
}'
Удаление пакета¶
Через веб-интерфейс¶
- Откройте список пакетов
- Найдите пакет для удаления
- Нажмите кнопку "Удалить"
- Подтвердите удаление
Предупреждение: При удалении пакета:
- Все абоненты потеряют доступ к каналам из этого пакета (если у них нет других пакетов с этими каналами)
- Связи между пакетом и каналами будут удалены
- Связи между пакетом и абонентами будут удалены
Через Management API¶
curl -X DELETE https://your-catena-domain.com/tv-management/api/v1/packages/pKl9SW3AAAE. \
-H "X-Auth-Token: your-api-key"
Управление составом пакета¶
Добавление канала в пакет¶
Через Management API:
curl -X POST https://your-catena-domain.com/tv-management/api/v1/channels-packages \
-H "X-Auth-Token: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"channelId": "cKl9SW3AAAE.",
"packageId": "pKl9SW3AAAE.",
"portalId": "portal123"
}'
Ответ:
{
"channelId": "cKl9SW3AAAE.",
"packageId": "pKl9SW3AAAE.",
"portalId": "portal123"
}
После добавления:
- Канал будет отображаться в поле
channels
пакета - Пакет будет отображаться в поле
packages
канала - Все абоненты с этим пакетом получат доступ к добавленному каналу
Удаление канала из пакета¶
Через Management API:
curl -X DELETE https://your-catena-domain.com/tv-management/api/v1/channels-packages \
-H "X-Auth-Token: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"channelId": "cKl9SW3AAAE.",
"packageId": "pKl9SW3AAAE.",
"portalId": "portal123"
}'
Важно: Удаление канала из пакета не удаляет сам канал из системы, только разрывает связь между каналом и пакетом.
Массовое управление каналами¶
Для добавления нескольких каналов в пакет используйте последовательные вызовы API:
# Добавить канал 1
curl -X POST https://your-catena-domain.com/tv-management/api/v1/channels-packages \
-H "X-Auth-Token: your-api-key" \
-H "Content-Type: application/json" \
-d '{"channelId": "channel1", "packageId": "premium", "portalId": "portal123"}'
# Добавить канал 2
curl -X POST https://your-catena-domain.com/tv-management/api/v1/channels-packages \
-H "X-Auth-Token: your-api-key" \
-H "Content-Type: application/json" \
-d '{"channelId": "channel2", "packageId": "premium", "portalId": "portal123"}'
Назначение пакетов абонентам¶
Подробнее о назначении пакетов абонентам см. в разделе Управление подписками.
Добавление пакета абоненту¶
curl -X POST https://your-catena-domain.com/tv-management/api/v1/packages-subscribers \
-H "X-Auth-Token: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"packageId": "pKl9SW3AAAE.",
"subscriberId": "sKl9SW3AAAE.",
"portalId": "portal123"
}'
После назначения пакета абоненту:
- Абонент получит доступ ко всем каналам из этого пакета
- Пакет отобразится в списке пакетов абонента
- Доступ будет предоставлен во всех клиентских приложениях
Удаление пакета у абонента¶
curl -X DELETE https://your-catena-domain.com/tv-management/api/v1/packages-subscribers \
-H "X-Auth-Token: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"packageId": "pKl9SW3AAAE.",
"subscriberId": "sKl9SW3AAAE.",
"portalId": "portal123"
}'
Бесплатные пакеты¶
Бесплатные пакеты — это пакеты, которые автоматически доступны всем абонентам портала без необходимости явного назначения.
Принцип работы¶
Бесплатные пакеты настраиваются на уровне портала:
- Администратор добавляет пакет в список бесплатных пакетов портала
- Все абоненты автоматически получают доступ к каналам из бесплатных пакетов
- Не требуется явное назначение пакета каждому абоненту
Типичное использование:
- Пробный период — предоставить базовый набор каналов всем новым абонентам
- Бесплатные каналы — открытые каналы, доступные всем (новости, общественные каналы)
- Демонстрационный контент — показать возможности сервиса до покупки подписки
Добавление пакета в список бесплатных¶
curl -X POST https://your-catena-domain.com/tv-management/api/v1/portal/free-packages/pKl9SW3AAAE. \
-H "X-Auth-Token: your-api-key"
После добавления в список бесплатных:
- Все существующие и новые абоненты получат доступ к каналам этого пакета
- Пакет будет отображаться как бесплатный в настройках портала
Удаление пакета из списка бесплатных¶
curl -X DELETE https://your-catena-domain.com/tv-management/api/v1/portal/free-packages/pKl9SW3AAAE. \
-H "X-Auth-Token: your-api-key"
Важно: Удаление пакета из бесплатных не удаляет сам пакет, только убирает автоматический доступ для всех абонентов.
Типичные сценарии использования¶
Создание базовой тарифной сетки¶
Задача: Создать три уровня подписки: Базовый, Стандарт, Премиум
Шаги:
-
Создайте три пакета:
-
basic
— 30 основных каналов standard
— 50 каналов (базовые + развлекательные)-
premium
— 80 каналов (все + спорт и кино в HD) -
Наполните пакеты каналами:
-
Базовый: новости, общие, музыка
- Стандарт: базовые + сериалы, документальные
-
Премиум: стандарт + спорт HD, кино 4K, эксклюзив
-
Настройте бесплатный пакет:
-
Создайте пакет
trial
с 5 открытыми каналами -
Добавьте его в список бесплатных пакетов портала
-
Назначайте пакеты абонентам в зависимости от их подписки
Тематические пакеты¶
Задача: Создать тематические дополнительные пакеты
Примеры пакетов:
sport-package
— все спортивные каналыkids-package
— детские каналыmovies-package
— киноканалыnews-package
— новостные каналы
Преимущества:
- Абонент может докупить интересующие темы к базовой подписке
- Более гибкая монетизация
- Персонализация предложения
Региональные пакеты¶
Задача: Предоставлять разные наборы каналов для разных регионов
Решение:
-
Создайте региональные пакеты:
-
region-moscow
— московские региональные каналы region-spb
— петербургские каналы-
region-south
— каналы юга России -
Назначайте соответствующий региональный пакет при регистрации абонента
-
Абонент получит базовый пакет + региональный
Временные акции¶
Задача: Провести промо-акцию с расширенным доступом
Шаги:
- Создайте временный пакет
promo-may
- Добавьте в него премиум-каналы
- Назначьте пакет всем активным абонентам
- По окончании акции удалите пакет у всех абонентов
Лучшие практики¶
Планирование структуры пакетов¶
Рекомендации по именованию:
- Используйте понятные технические имена:
basic
,premium
,sport-hd
- Избегайте использования версий в имени: не
premium-v2
, а создайте новый пакет - Используйте префиксы для группировки:
addon-sport
,addon-kids
,addon-movies
Структура тарифной сетки:
- Базовый уровень — минимальный набор для начала использования сервиса
- Средний уровень — оптимальное соотношение цена/количество каналов
- Премиум уровень — максимальный набор со всеми доступными каналами
- Дополнительные пакеты — тематические надстройки к основным пакетам
Управление изменениями¶
При изменении состава пакета:
- Информируйте абонентов о добавлении новых каналов
- Заранее предупреждайте об удалении каналов из пакета
- Ведите документацию по составу каждого пакета
- Сохраняйте историю изменений для аналитики
При изменении ценообразования:
- Не меняйте техническое имя пакета при изменении цены
- Используйте систему биллинга для управления ценами
- Обеспечьте плавный переход для существующих абонентов
Мониторинг и аналитика¶
Отслеживайте метрики:
- Количество абонентов на каждом пакете
- Популярность каналов внутри пакетов
- Конверсию из бесплатного пакета в платные
- Отток абонентов при изменении состава пакета
Используйте данные для оптимизации:
- Формируйте пакеты на основе популярности каналов
- Тестируйте разные комбинации каналов
- Корректируйте состав пакетов по результатам аналитики
Интеграция с биллингом¶
Рекомендации:
- Используйте техническое имя пакета (name) как идентификатор в биллинговой системе
- Синхронизируйте назначение/удаление пакетов с платежами через API
- Автоматизируйте блокировку доступа при неоплате
- Настройте webhook для уведомлений об изменении подписок
Устранение проблем¶
Абонент не видит каналы из пакета¶
Возможные причины:
- Пакет не назначен абоненту
- В пакете нет каналов (пустой пакет)
- Проблемы с синхронизацией данных в клиентском приложении
Решение:
- Проверьте список пакетов абонента через API
- Убедитесь, что пакет содержит каналы
- Проверьте, что каналы правильно настроены на стриминг-сервере
- Перезапустите клиентское приложение для обновления данных
Каналы дублируются в списке абонента¶
Причина: Канал входит в несколько пакетов, назначенных абоненту
Это нормальное поведение:
- Абонент может иметь несколько пакетов
- Канал может входить в несколько пакетов одновременно
- Клиентское приложение должно дедуплицировать список каналов
Решение: Убедитесь, что клиентское приложение корректно обрабатывает дубликаты.
Ошибка при добавлении канала в пакет¶
Возможные причины:
- Неверный
channelId
илиpackageId
- Канал уже есть в этом пакете
- Канал или пакет принадлежат другому порталу
Решение:
- Проверьте существование канала и пакета
- Убедитесь, что
portalId
совпадает для канала, пакета и запроса - Проверьте, не добавлен ли уже этот канал в пакет
Пакет не удаляется¶
Возможные причины:
- Пакет назначен абонентам
- Пакет находится в списке бесплатных пакетов портала
- Недостаточно прав для удаления
Решение:
- Сначала удалите пакет у всех абонентов
- Удалите пакет из списка бесплатных (если он там есть)
- Затем удалите сам пакет
Бесплатный пакет не работает¶
Возможные причины:
- Пакет не добавлен в список бесплатных пакетов портала
- Абонент явно заблокирован или не активирован
- Пакет пустой (не содержит каналов)
Решение:
- Проверьте список бесплатных пакетов в настройках портала
- Убедитесь, что абонент активен
- Проверьте наличие каналов в пакете
См. также¶
- Управление каналами — создание и настройка телевизионных каналов
- Управление абонентами — регистрация и управление подписчиками
- Управление подписками — назначение пакетов абонентам
- Настройки портала — управление бесплатными пакетами
- API Reference — полная документация по API пакетов