Перейти к содержимому
Продукты

Получение превью MP4 из архива через API

Когда в настройках Хранилища включена опция Save Preview, Alta сохраняет короткие превью-клипы в формате MP4 для записанного архива. В этой статье описано, как получить список превью-файлов канала и скачать их с помощью curl.

  • Для канала назначено Хранилище, и в хранилище включена опция Save Preview.
  • Канал использует видео H.264 или H.265.
  • Запросы отправляются на API Server (порт по умолчанию 8100), а не на OTT Server. Подробнее в разделе HTTP-сервер.
  • API требует HTTP Basic-аутентификации от имени пользователя веб-интерфейса Alta. Подробнее в разделе Пользователи.

Оба запроса используют параметр id с путём канала в формате <channel_name>/<variant>, например discovery/hd.

URL:

Окно терминала
GET /api/ott/channel/storage/preview?id=<channel_name>/<variant>

или с необязательным параметром:

Окно терминала
GET /api/ott/channel/storage/preview?id=<channel_name>/<variant>&start=<time>
  • id: Путь канала.
  • start (необязательный): Unix-время. Возвращает файлы начиная с этого момента.

Alta не поддерживает параметр end. Чтобы ограничить результат по времени окончания, отфильтруйте список на стороне клиента.

Пример:

Окно терминала
curl -sS -u 'USER:PASSWORD' \
'http://alta.example.com:8100/api/ott/channel/storage/preview?id=discovery/hd&start=1747485787'

Ответ:

["1747485787.mp4", "1747485797.mp4", "1747485807.mp4"]

Ответ представляет собой JSON-массив имён файлов. Имя каждого файла — это Unix-время начала сегмента.

URL:

Окно терминала
GET /api/ott/channel/storage/preview?id=<channel_name>/<variant>&name=<file>
  • id: Путь канала.
  • name: Имя файла из списка, например 1747485787.mp4.

Пример:

Окно терминала
curl -sS -f -u 'USER:PASSWORD' \
-o preview.mp4 \
'http://alta.example.com:8100/api/ott/channel/storage/preview?id=discovery/hd&name=1747485787.mp4'

Тело ответа — это MP4-файл. Опция -f заставляет curl завершаться с ошибкой при HTTP-ошибках, а не сохранять страницу с ошибкой в файл.

КодОписание
200Успешно
404Превью-файлы для канала или диапазона времени не найдены, либо файл не существует
  • Проверьте, что в хранилище включена опция Save Preview и идёт запись канала.
  • Проверьте путь канала. Он должен включать вариант, например discovery/hd.
  • Удалите параметр start или уменьшите его значение. Превью-файлы доступны только в пределах длительности архива хранилища.

Проверьте, что вы используете порт API Server, а не OTT Server. Проверьте соединение:

Окно терминала
curl -v http://alta.example.com:8100/