Подключить к ForkPlayer архив телепрограмм в плейлисте

Подключение архива к ForkPlayer

Для того, чтобы подключить к ForkPlayer ваш архив телепрограмм, в плейлисте необходимо указать следующие атрибуты:

  • catchup — определяет тип используемого архива (см. Поддерживаемые форматы).
  • catchup-source — определяет ссылку api, которую приложение использует для получения архивных телепрограмм. Данный атрибут не является обязательным, его следует использовать только в том случае, если ссылку получения архивной телепрограммы невозможно получить из основной ссылки live-потока.
  • catchup-days — определяет длину архива в днях. Данный атрибут не является обязательным, значение по умолчанию — 3 дня.

Вы можете указать эти атрибуты при директиве #EXTM3U, в этом случае атрибуты будут применены ко всем элементам плейлиста:

#EXTM3U catchup="default" catchup-days="5"

Либо указать эти атрибуты для конкретных каналов при директиве #EXTINF:

#EXTINF: 0 catchup="default" catchup-days="5", Disney Channel

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

http://example.com/playlist.m3u#catchup=default&catchup-days=5

Переменные шаблона

Для создания шаблона обращения к API архива используются переменные, вместо которых приложение подставляет динамические значения:

  • ${start} — время начала архивного потока в формате UNIX Time Stamp
  • ${timestamp} — текущее время в формате UNIX Time Stamp
  • ${offset} — смещение времени начала архивного потока относительно текущего времени в секундах

Поддерживаемые форматы

Default. Для создания запроса к API архива используется только шаблон, созданный на основе преобразования url-основного потока, либо из атрибута catchup-source:

#EXTINF: 0 catchup="default", Disney Channel
http://example.com/stream1_${offset}.m3u8

Приведенный пример указывает приложению, что для получения текущей трансляции и архивной используется один и тот же шаблон с указанием смещения. Т.о. текущую трансляцию приложение будет запрашивать по ссылке http://example.com/stream1_0.m3u8, а трансляцию, с началом 10 минут назад — по ссылке http://example.com/stream1_600.m3u8.
Если ссылки для текущей и архивных трансляций имеют принципиально разную структуру, вы можете воспользоваться атрибутом catchup-source:

#EXTINF: 0 catchup="default" catchup-source="http://example.com/archive/?start=${start}"
http://example.com/stream1.m3u8

В приведенном примере приложение обратится за текущей трансляцией по ссылке http://example.com/stream1.m3u8, а за телепрограммой с началом 4 апреля 2017 г. в 15:30 — по ссылке http://example.com/archive/?start=1491395400
Append Аналогично как и Default, только в catchup-source указывается относительный адрес

#EXTINF: 0 catchup="append" catchup-source="?start=${start}"
http://example.com/stream1.m3u8

В приведенном примере приложение обратится за текущей трансляцией по ссылке http://example.com/stream1.m3u8, а за телепрограммой с началом 4 апреля 2017 г. в 15:30 — по ссылке http://example.com/stream1.m3u8?start=1491395400
Shift. Архивные телепрограммы запрашиваются через добавление параметров utc и lutc к ссылке текущей трансляции (либо к ссылке в catchup-source), где utc — время начала запрашиваемой трансляции, lutc — текущее время:

#EXTINF: 0 catchup="shift", Disney Channel
http://example.com/stream1.m3u8

В этом случае для запроса архивной трансляции будет сформирована ссылка примерно такого вида: http://example.com/stream1.m3u8?utc=1491395400&lutc=1491808183