Управление телевизионными каналами¶
Телевизионные каналы — это основная единица контента в системе 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
.
Создание канала¶
Через веб-интерфейс¶
- Откройте раздел "Каналы" в панели управления Catena
- Нажмите кнопку "Создать канал"
- Заполните обязательные поля:
- Name — техническое имя для стриминг-сервера (латиницей)
- Title — название для отображения пользователям
- Заполните дополнительные поля (опционально):
- Логотип — загрузите изображение канала (PNG)
- EPG Source Name — выберите источник программы передач
- EPG Channel Name — укажите имя канала в EPG-источнике
- Сохраните канал
После создания канал получит уникальный 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"
Редактирование канала¶
Через веб-интерфейс¶
- Откройте список каналов
- Найдите нужный канал и нажмите кнопку "Редактировать"
- Измените параметры:
- Title — можно изменить отображаемое название
- Логотип — загрузить новое изображение
- EPG Source Name / EPG Channel Name — изменить связь с программой передач
- Сохраните изменения
Важно: Поле 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 можно использовать в клиентских приложениях для отображения логотипа.
Удаление канала¶
Через веб-интерфейс¶
- Откройте список каналов
- Найдите канал для удаления
- Нажмите кнопку "Удалить"
- Подтвердите удаление
Предупреждение: При удалении канала он будет автоматически удалён из всех пакетов, в которые был включён.
Через 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¶
- Создайте источник EPG в разделе EPG Sources
- Укажите URL XML-файла с программой передач
- Запустите синхронизацию EPG-данных
- В настройках канала укажите:
epgSourceName
— имя созданного источника EPGepgChannelName
— имя канала, как оно указано в 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)
После этого программа передач будет автоматически доступна для этого канала в клиентских приложениях.
Типичные сценарии использования¶
Запуск нового канала¶
Задача: Добавить новый спортивный канал в сервис
Шаги:
- Создайте канал в Catena с именем
sport-premium
- Загрузите логотип канала
- Настройте связь с EPG (если доступна программа передач)
- Добавьте канал в один или несколько пакетов
- Настройте соответствующий поток на стриминг-сервере с именем
sport-premium
Массовое добавление каналов¶
Задача: Добавить 50 каналов из нового контент-провайдера
Решение через API:
- Подготовьте CSV или JSON с данными каналов
- Создайте скрипт для автоматического создания каналов через API
- Загрузите логотипы для каждого канала
- Настройте EPG сопоставление
- Сгруппируйте каналы в тематические пакеты
Обновление EPG для каналов¶
Задача: Сменить источник EPG для группы каналов
Шаги:
- Создайте новый EPG Source с актуальными данными
- Обновите каналы, указав новый
epgSourceName
- Проверьте корректность сопоставления
epgChannelName
- Запустите обновление EPG
Ребрендинг канала¶
Задача: Изменить название и логотип канала
Шаги:
- Откройте редактирование канала
- Обновите поле
title
с новым названием - Загрузите новый логотип
- Сохраните изменения
- Изменения автоматически появятся в клиентских приложениях при следующем обновлении данных
Лучшие практики¶
Именование каналов¶
- 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
Это обеспечит корректную работу токенов доступа и аналитики просмотров.
Устранение проблем¶
Канал не отображается в приложении¶
Возможные причины:
- Канал не включён ни в один пакет
- У абонента нет подписки на пакет с этим каналом
- Не настроено соответствующее вещание на стриминг-сервере
Решение:
- Проверьте, что канал добавлен в пакет
- Убедитесь, что абонент подписан на этот пакет
- Проверьте, что стриминг-сервер отдаёт поток с соответствующим именем
EPG не отображается для канала¶
Возможные причины:
- Неверно указано
epgChannelName
- EPG Source не обновлялся или содержит ошибки
- В EPG XML нет данных для этого канала
Решение:
- Откройте XML EPG и найдите правильный идентификатор канала
- Обновите
epgChannelName
в настройках канала - Запустите принудительное обновление EPG
- Проверьте логи обновления EPG на наличие ошибок
Ошибка "Name must be unique"¶
Причина: Канал с таким техническим именем уже существует в вашем портале
Решение:
- Используйте другое техническое имя
- Или удалите существующий канал с таким именем (если он больше не нужен)
Не загружается логотип¶
Возможные причины:
- Файл слишком большой
- Неподдерживаемый формат изображения
- Ошибка кодирования в base64
Решение:
- Используйте PNG формат
- Сожмите изображение до размера < 100 КБ
- Проверьте корректность base64-кодирования
См. также¶
- Управление пакетами каналов — группировка каналов для продажи
- Управление EPG — настройка электронной программы передач
- Управление абонентами — предоставление доступа к каналам
- API Reference — полная документация по API каналов