Skip to content

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

Телевизионные каналы — это основная единица контента в системе Catena. Каждый канал представляет собой отдельный поток видеоконтента, который доставляется абонентам через клиентские приложения.

Что такое канал в Catena

Канал в Catena — это сущность, которая объединяет:

  • Технические параметры — уникальный идентификатор и имя для стриминг-сервера
  • Визуальное представление — отображаемое название и логотип для пользователей
  • Программу передач — связь с источником EPG (Electronic Program Guide)
  • Тарификацию — включение в пакеты каналов для продажи абонентам

Важно понимать, что Catena не занимается непосредственной доставкой видеопотока — это задача стриминг-сервера (например, Flussonic Media Server). Catena управляет метаданными каналов и правами доступа к ним.

Основные параметры канала

Технические параметры

Идентификатор канала (Channel ID)

  • Автоматически генерируется при создании канала
  • Формат: base64-кодированный Snowflake ID с заменой символов +/= на -_.
  • Пример: aKl9SW3AAAE.
  • Используется для программного доступа через API
  • Не редактируется после создания

Имя для стриминга (Name)

  • Уникальное техническое имя канала в рамках портала
  • Используется стриминг-сервером для идентификации потока
  • Требования:
  • Только латинские буквы, цифры, дефис и подчёркивание: [a-zA-Z0-9_-]
  • Длина от 2 до 20 символов
  • Должно быть уникальным в рамках вашего портала
  • Примеры: sport1, news-hd, first_channel

Параметры отображения

Название для пользователей (Title)

  • Локализованное название канала, которое видят зрители
  • Может содержать любые символы, включая кириллицу
  • Примеры: Первый канал, Спорт HD, Новости 24

Логотип (Logo)

  • Изображение канала для отображения в клиентских приложениях
  • Формат: PNG, рекомендуется прозрачный фон
  • Загружается как binary data (base64)
  • Доступен через отдельный эндпоинт: GET /channels/{channelId}/logo
  • Оптимальный размер: 300x300 пикселей

Интеграция с EPG

Имя источника EPG (EPG Source Name)

  • Название источника электронной программы передач
  • Ссылается на ранее созданный EPG Source в системе
  • Один источник EPG может использоваться для множества каналов

Имя канала в EPG (EPG Channel Name)

  • Идентификатор канала внутри источника EPG
  • Используется для сопоставления вашего канала с программой передач из EPG-файла
  • Должен точно соответствовать названию канала в XML EPG

Пример связи: Если в вашем EPG-файле канал называется perviy-kanal, то в поле EPG Channel Name нужно указать именно perviy-kanal, даже если в Catena у вас канал называется first_channel.

Создание канала

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

  1. Откройте раздел "Каналы" в панели управления Catena
  2. Нажмите кнопку "Создать канал"
  3. Заполните обязательные поля:
  4. Name — техническое имя для стриминг-сервера (латиницей)
  5. Title — название для отображения пользователям
  6. Заполните дополнительные поля (опционально):
  7. Логотип — загрузите изображение канала (PNG)
  8. EPG Source Name — выберите источник программы передач
  9. EPG Channel Name — укажите имя канала в EPG-источнике
  10. Сохраните канал

После создания канал получит уникальный ID и будет доступен для добавления в пакеты.

Через Management API

curl -X POST https://your-catena-domain.com/tv-management/api/v1/channels \
  -H "X-Auth-Token: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "sport1",
    "title": "Спорт HD",
    "epgSourceName": "main-epg",
    "epgChannelName": "sport-channel-1"
  }'

Ответ:

{
  "channelId": "aKl9SW3AAAE.",
  "portalId": "pKl9SW3AAAE.",
  "name": "sport1",
  "title": "Спорт HD",
  "epgSourceName": "main-epg",
  "epgChannelName": "sport-channel-1",
  "packages": []
}

Просмотр списка каналов

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

В разделе "Каналы" отображается таблица со всеми каналами портала:

  • Логотип — миниатюра логотипа канала
  • Название — отображаемое название (Title)
  • Техническое имя — имя для стриминга (Name)
  • Пакеты — список пакетов, в которые входит канал
  • EPG — информация о подключённом источнике программы передач
  • Действия — кнопки редактирования и удаления

Через Management API

Получить список всех каналов:

curl -X GET https://your-catena-domain.com/tv-management/api/v1/channels \
  -H "X-Auth-Token: your-api-key"

Ответ:

{
  "channels": [
    {
      "channelId": "aKl9SW3AAAE.",
      "portalId": "pKl9SW3AAAE.",
      "name": "sport1",
      "title": "Спорт HD",
      "packages": ["basic", "premium"],
      "epgSourceName": "main-epg",
      "epgChannelName": "sport-channel-1"
    }
  ],
  "next": "cursor-for-next-page"
}

Пагинация: Для получения следующей страницы используйте параметр cursor:

curl -X GET "https://your-catena-domain.com/tv-management/api/v1/channels?cursor=cursor-for-next-page" \
  -H "X-Auth-Token: your-api-key"

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

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

  1. Откройте список каналов
  2. Найдите нужный канал и нажмите кнопку "Редактировать"
  3. Измените параметры:
  4. Title — можно изменить отображаемое название
  5. Логотип — загрузить новое изображение
  6. EPG Source Name / EPG Channel Name — изменить связь с программой передач
  7. Сохраните изменения

Важно: Поле name (техническое имя) нельзя изменить после создания канала. Если нужно изменить техническое имя, создайте новый канал и удалите старый.

Через Management API

curl -X PUT https://your-catena-domain.com/tv-management/api/v1/channels/aKl9SW3AAAE. \
  -H "X-Auth-Token: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "sport1",
    "title": "Спорт Full HD",
    "epgSourceName": "new-epg-source",
    "epgChannelName": "sport-hd-channel"
  }'

Загрузка логотипа через API

При создании или обновлении канала логотип передаётся в поле logo как base64-строка:

curl -X PUT https://your-catena-domain.com/tv-management/api/v1/channels/aKl9SW3AAAE. \
  -H "X-Auth-Token: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "sport1",
    "title": "Спорт HD",
    "logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
  }'

Получение логотипа

Логотип доступен через отдельный эндпоинт:

curl -X GET https://your-catena-domain.com/tv-management/api/v1/channels/aKl9SW3AAAE./logo \
  -H "X-Auth-Token: your-api-key" \
  --output channel-logo.png

Этот URL можно использовать в клиентских приложениях для отображения логотипа.

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

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

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

Предупреждение: При удалении канала он будет автоматически удалён из всех пакетов, в которые был включён.

Через Management API

curl -X DELETE https://your-catena-domain.com/tv-management/api/v1/channels/aKl9SW3AAAE. \
  -H "X-Auth-Token: your-api-key"

Связь каналов с пакетами

Канал сам по себе не доступен абонентам. Чтобы предоставить доступ к каналу, его нужно включить в пакет каналов.

Поле packages в канале (read-only): При получении информации о канале поле packages содержит список имён пакетов, в которые включён канал. Это поле только для чтения и обновляется автоматически при добавлении/удалении канала в пакеты через API управления связями каналов и пакетов.

Пример:

{
  "channelId": "aKl9SW3AAAE.",
  "name": "sport1",
  "title": "Спорт HD",
  "packages": ["basic", "premium", "sport-package"]
}

Связь каналов с EPG

Как работает интеграция с EPG

  1. Создайте источник EPG в разделе EPG Sources
  2. Укажите URL XML-файла с программой передач
  3. Запустите синхронизацию EPG-данных
  4. В настройках канала укажите:
  5. epgSourceName — имя созданного источника EPG
  6. epgChannelName — имя канала, как оно указано в XML EPG

Сопоставление каналов

Пример структуры EPG XML:

<tv>
  <channel id="perviy-kanal">
    <display-name>Первый канал</display-name>
  </channel>
  <programme start="20241015120000" stop="20241015130000" channel="perviy-kanal">
    <title lang="ru">Новости</title>
  </programme>
</tv>

В Catena укажите:

  • EPG Source Name: main-epg (имя источника, который вы создали)
  • EPG Channel Name: perviy-kanal (значение атрибута id или display-name из XML)

После этого программа передач будет автоматически доступна для этого канала в клиентских приложениях.

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

Запуск нового канала

Задача: Добавить новый спортивный канал в сервис

Шаги:

  1. Создайте канал в Catena с именем sport-premium
  2. Загрузите логотип канала
  3. Настройте связь с EPG (если доступна программа передач)
  4. Добавьте канал в один или несколько пакетов
  5. Настройте соответствующий поток на стриминг-сервере с именем sport-premium

Массовое добавление каналов

Задача: Добавить 50 каналов из нового контент-провайдера

Решение через API:

  1. Подготовьте CSV или JSON с данными каналов
  2. Создайте скрипт для автоматического создания каналов через API
  3. Загрузите логотипы для каждого канала
  4. Настройте EPG сопоставление
  5. Сгруппируйте каналы в тематические пакеты

Обновление EPG для каналов

Задача: Сменить источник EPG для группы каналов

Шаги:

  1. Создайте новый EPG Source с актуальными данными
  2. Обновите каналы, указав новый epgSourceName
  3. Проверьте корректность сопоставления epgChannelName
  4. Запустите обновление EPG

Ребрендинг канала

Задача: Изменить название и логотип канала

Шаги:

  1. Откройте редактирование канала
  2. Обновите поле title с новым названием
  3. Загрузите новый логотип
  4. Сохраните изменения
  5. Изменения автоматически появятся в клиентских приложениях при следующем обновлении данных

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

Именование каналов

  • Name (техническое имя):
  • Используйте короткие, понятные имена: sport1, news, movies-hd
  • Избегайте спецсимволов, кроме дефиса и подчёркивания
  • Добавляйте суффиксы для HD/SD версий: sport-hd, sport-sd

  • Title (отображаемое название):

  • Используйте полные, понятные названия: "Спорт HD", "Новости 24"
  • Можно использовать любые символы и эмодзи
  • Укажите качество в названии: "4K", "HD", "SD" (если важно)

Организация каналов

  • Группируйте каналы логически по темам, используя пакеты
  • Используйте единый стиль для логотипов (размер, фон, формат)
  • Поддерживайте актуальность EPG-данных
  • Документируйте техническое сопоставление каналов

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

  • Размер: оптимально 300x300 пикселей
  • Формат: PNG с прозрачным фоном
  • Вес файла: не более 100 КБ для быстрой загрузки
  • Единый стиль: используйте одинаковый стиль для всех логотипов

Интеграция со стриминг-сервером

Помните, что техническое имя канала в Catena должно совпадать с именем потока на стриминг-сервере:

  • Catena: name: "sport1"
  • Flussonic: поток должен называться sport1

Это обеспечит корректную работу токенов доступа и аналитики просмотров.

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

Канал не отображается в приложении

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

  • Канал не включён ни в один пакет
  • У абонента нет подписки на пакет с этим каналом
  • Не настроено соответствующее вещание на стриминг-сервере

Решение:

  1. Проверьте, что канал добавлен в пакет
  2. Убедитесь, что абонент подписан на этот пакет
  3. Проверьте, что стриминг-сервер отдаёт поток с соответствующим именем

EPG не отображается для канала

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

  • Неверно указано epgChannelName
  • EPG Source не обновлялся или содержит ошибки
  • В EPG XML нет данных для этого канала

Решение:

  1. Откройте XML EPG и найдите правильный идентификатор канала
  2. Обновите epgChannelName в настройках канала
  3. Запустите принудительное обновление EPG
  4. Проверьте логи обновления EPG на наличие ошибок

Ошибка "Name must be unique"

Причина: Канал с таким техническим именем уже существует в вашем портале

Решение:

  • Используйте другое техническое имя
  • Или удалите существующий канал с таким именем (если он больше не нужен)

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

  • Файл слишком большой
  • Неподдерживаемый формат изображения
  • Ошибка кодирования в base64

Решение:

  • Используйте PNG формат
  • Сожмите изображение до размера < 100 КБ
  • Проверьте корректность base64-кодирования

См. также