Skip to content

Управление пакетами каналов

Пакеты каналов — это группы телевизионных каналов, объединённые для продажи абонентам. Пакеты позволяют создавать различные тарифные планы и монетизировать ваш 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"]

Создание пакета

Через веб-интерфейс

  1. Откройте раздел "Пакеты" в панели управления Catena
  2. Нажмите кнопку "Создать пакет"
  3. Заполните обязательные поля:

  4. Name — техническое имя пакета (латиницей)

  5. Description — описание пакета (опционально)
  6. Сохраните пакет
  7. Добавьте каналы в пакет через раздел управления составом

После создания пакет получит уникальный 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"]
}

Редактирование пакета

Через веб-интерфейс

  1. Откройте список пакетов
  2. Найдите нужный пакет и нажмите кнопку "Редактировать"
  3. Измените параметры:

  4. Name — техническое имя (лучше не менять после создания)

  5. Description — описание пакета
  6. Сохраните изменения

Примечание: Изменение состава каналов в пакете выполняется отдельно через управление связями каналов и пакетов.

Через 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 каналами"
  }'

Удаление пакета

Через веб-интерфейс

  1. Откройте список пакетов
  2. Найдите пакет для удаления
  3. Нажмите кнопку "Удалить"
  4. Подтвердите удаление

Предупреждение: При удалении пакета:

  • Все абоненты потеряют доступ к каналам из этого пакета (если у них нет других пакетов с этими каналами)
  • Связи между пакетом и каналами будут удалены
  • Связи между пакетом и абонентами будут удалены

Через 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"

Важно: Удаление пакета из бесплатных не удаляет сам пакет, только убирает автоматический доступ для всех абонентов.

Типичные сценарии использования

Создание базовой тарифной сетки

Задача: Создать три уровня подписки: Базовый, Стандарт, Премиум

Шаги:

  1. Создайте три пакета:

  2. basic — 30 основных каналов

  3. standard — 50 каналов (базовые + развлекательные)
  4. premium — 80 каналов (все + спорт и кино в HD)

  5. Наполните пакеты каналами:

  6. Базовый: новости, общие, музыка

  7. Стандарт: базовые + сериалы, документальные
  8. Премиум: стандарт + спорт HD, кино 4K, эксклюзив

  9. Настройте бесплатный пакет:

  10. Создайте пакет trial с 5 открытыми каналами

  11. Добавьте его в список бесплатных пакетов портала

  12. Назначайте пакеты абонентам в зависимости от их подписки

Тематические пакеты

Задача: Создать тематические дополнительные пакеты

Примеры пакетов:

  • sport-package — все спортивные каналы
  • kids-package — детские каналы
  • movies-package — киноканалы
  • news-package — новостные каналы

Преимущества:

  • Абонент может докупить интересующие темы к базовой подписке
  • Более гибкая монетизация
  • Персонализация предложения

Региональные пакеты

Задача: Предоставлять разные наборы каналов для разных регионов

Решение:

  1. Создайте региональные пакеты:

  2. region-moscow — московские региональные каналы

  3. region-spb — петербургские каналы
  4. region-south — каналы юга России

  5. Назначайте соответствующий региональный пакет при регистрации абонента

  6. Абонент получит базовый пакет + региональный

Временные акции

Задача: Провести промо-акцию с расширенным доступом

Шаги:

  1. Создайте временный пакет promo-may
  2. Добавьте в него премиум-каналы
  3. Назначьте пакет всем активным абонентам
  4. По окончании акции удалите пакет у всех абонентов

Лучшие практики

Планирование структуры пакетов

Рекомендации по именованию:

  • Используйте понятные технические имена: basic, premium, sport-hd
  • Избегайте использования версий в имени: не premium-v2, а создайте новый пакет
  • Используйте префиксы для группировки: addon-sport, addon-kids, addon-movies

Структура тарифной сетки:

  • Базовый уровень — минимальный набор для начала использования сервиса
  • Средний уровень — оптимальное соотношение цена/количество каналов
  • Премиум уровень — максимальный набор со всеми доступными каналами
  • Дополнительные пакеты — тематические надстройки к основным пакетам

Управление изменениями

При изменении состава пакета:

  • Информируйте абонентов о добавлении новых каналов
  • Заранее предупреждайте об удалении каналов из пакета
  • Ведите документацию по составу каждого пакета
  • Сохраняйте историю изменений для аналитики

При изменении ценообразования:

  • Не меняйте техническое имя пакета при изменении цены
  • Используйте систему биллинга для управления ценами
  • Обеспечьте плавный переход для существующих абонентов

Мониторинг и аналитика

Отслеживайте метрики:

  • Количество абонентов на каждом пакете
  • Популярность каналов внутри пакетов
  • Конверсию из бесплатного пакета в платные
  • Отток абонентов при изменении состава пакета

Используйте данные для оптимизации:

  • Формируйте пакеты на основе популярности каналов
  • Тестируйте разные комбинации каналов
  • Корректируйте состав пакетов по результатам аналитики

Интеграция с биллингом

Рекомендации:

  • Используйте техническое имя пакета (name) как идентификатор в биллинговой системе
  • Синхронизируйте назначение/удаление пакетов с платежами через API
  • Автоматизируйте блокировку доступа при неоплате
  • Настройте webhook для уведомлений об изменении подписок

Устранение проблем

Абонент не видит каналы из пакета

Возможные причины:

  • Пакет не назначен абоненту
  • В пакете нет каналов (пустой пакет)
  • Проблемы с синхронизацией данных в клиентском приложении

Решение:

  1. Проверьте список пакетов абонента через API
  2. Убедитесь, что пакет содержит каналы
  3. Проверьте, что каналы правильно настроены на стриминг-сервере
  4. Перезапустите клиентское приложение для обновления данных

Каналы дублируются в списке абонента

Причина: Канал входит в несколько пакетов, назначенных абоненту

Это нормальное поведение:

  • Абонент может иметь несколько пакетов
  • Канал может входить в несколько пакетов одновременно
  • Клиентское приложение должно дедуплицировать список каналов

Решение: Убедитесь, что клиентское приложение корректно обрабатывает дубликаты.

Ошибка при добавлении канала в пакет

Возможные причины:

  • Неверный channelId или packageId
  • Канал уже есть в этом пакете
  • Канал или пакет принадлежат другому порталу

Решение:

  1. Проверьте существование канала и пакета
  2. Убедитесь, что portalId совпадает для канала, пакета и запроса
  3. Проверьте, не добавлен ли уже этот канал в пакет

Пакет не удаляется

Возможные причины:

  • Пакет назначен абонентам
  • Пакет находится в списке бесплатных пакетов портала
  • Недостаточно прав для удаления

Решение:

  1. Сначала удалите пакет у всех абонентов
  2. Удалите пакет из списка бесплатных (если он там есть)
  3. Затем удалите сам пакет

Бесплатный пакет не работает

Возможные причины:

  • Пакет не добавлен в список бесплатных пакетов портала
  • Абонент явно заблокирован или не активирован
  • Пакет пустой (не содержит каналов)

Решение:

  1. Проверьте список бесплатных пакетов в настройках портала
  2. Убедитесь, что абонент активен
  3. Проверьте наличие каналов в пакете

См. также