Подключение архива — различия между версиями
Mentos (обсуждение | вклад) (Новая страница: «==== Подключение архива к ForkPlayer ==== Для того, чтобы подключить к ForkPlayer ваш архив телепрогра…») (Метка: visualeditor) |
Mentos (обсуждение | вклад) |
||
(не показано 7 промежуточных версий 4 участников) | |||
Строка 1: | Строка 1: | ||
− | ==== Подключение архива к ForkPlayer ==== | + | ====Подключение архива к ForkPlayer==== |
Для того, чтобы подключить к ForkPlayer ваш архив телепрограмм, в плейлисте необходимо указать следующие атрибуты: | Для того, чтобы подключить к ForkPlayer ваш архив телепрограмм, в плейлисте необходимо указать следующие атрибуты: | ||
− | * '''catchup''' - определяет тип используемого архива (см. Поддерживаемые форматы). | + | *'''catchup''' - определяет тип используемого архива (см. Поддерживаемые форматы). |
− | * '''catchup-source''' - определяет ссылку api, которую приложение использует для получения архивных телепрограмм. Данный атрибут не является обязательным, его следует использовать только в том случае, если ссылку получения архивной телепрограммы невозможно получить из основной ссылки live-потока. | + | *'''catchup-source''' - определяет ссылку api, которую приложение использует для получения архивных телепрограмм. Данный атрибут не является обязательным, его следует использовать только в том случае, если ссылку получения архивной телепрограммы невозможно получить из основной ссылки live-потока. |
− | * '''catchup-days''' - определяет длину архива в днях. Данный атрибут не является обязательным, значение по умолчанию - 3 дня. | + | *'''catchup-days''' - определяет длину архива в днях. Данный атрибут не является обязательным, значение по умолчанию - 3 дня. |
Вы можете указать эти атрибуты при директиве '''#EXTM3U''', в этом случае атрибуты будут применены ко всем элементам плейлиста: | Вы можете указать эти атрибуты при директиве '''#EXTM3U''', в этом случае атрибуты будут применены ко всем элементам плейлиста: | ||
Строка 10: | Строка 10: | ||
Либо указать эти атрибуты для конкретных каналов при директиве '''#EXTINF''': | Либо указать эти атрибуты для конкретных каналов при директиве '''#EXTINF''': | ||
#EXTINF: 0 catchup="default" catchup-days="5", Disney Channel | #EXTINF: 0 catchup="default" catchup-days="5", Disney Channel | ||
− | + | Кроме того, можно не указывать эти атрибуты в плейлисте, а передать их в качестве параметра в ссылке на плейлист, после решетки. В этом случае атрибуты также будут применены ко всему плейлисту: | |
<nowiki>http://example.com/playlist.m3u#catchup=default&catchup-days=5</nowiki> | <nowiki>http://example.com/playlist.m3u#catchup=default&catchup-days=5</nowiki> | ||
---- | ---- | ||
− | ==== Переменные шаблона ==== | + | ====Переменные шаблона==== |
Для создания шаблона обращения к API архива используются переменные, вместо которых приложение подставляет динамические значения: | Для создания шаблона обращения к API архива используются переменные, вместо которых приложение подставляет динамические значения: | ||
− | * '''${start}''' - время начала архивного потока в формате UNIX Time Stamp | + | *'''${start}''' - время начала архивного потока в формате UNIX Time Stamp |
− | * '''${timestamp}''' - текущее время в формате UNIX Time Stamp | + | *'''${timestamp}''' - текущее время в формате UNIX Time Stamp |
− | * '''${offset}''' - смещение времени начала архивного потока относительно текущего времени в секундах | + | *'''${offset}''' - смещение времени начала архивного потока относительно текущего времени в секундах |
---- | ---- | ||
− | + | ===Поддерживаемые форматы=== | |
− | '''Default | + | |
+ | ===='''Default'''==== | ||
+ | Для создания запроса к API архива используется только шаблон, созданный на основе преобразования url-основного потока, либо из атрибута catchup-source: | ||
#EXTINF: 0 catchup="default", Disney Channel | #EXTINF: 0 catchup="default", Disney Channel | ||
<nowiki>http://example.com/stream1_${offset}.m3u8</nowiki> | <nowiki>http://example.com/stream1_${offset}.m3u8</nowiki> | ||
Строка 34: | Строка 36: | ||
В приведенном примере приложение обратится за текущей трансляцией по ссылке <nowiki>http://example.com/stream1.m3u8</nowiki>, а за телепрограммой с началом 4 апреля 2017 г. в 15:30 - по ссылке <nowiki>http://example.com/archive/?start=1491395400</nowiki> | В приведенном примере приложение обратится за текущей трансляцией по ссылке <nowiki>http://example.com/stream1.m3u8</nowiki>, а за телепрограммой с началом 4 апреля 2017 г. в 15:30 - по ссылке <nowiki>http://example.com/archive/?start=1491395400</nowiki> | ||
− | '''Append''' Аналогично как и '''Default''', только в catchup-source указывается относительный адрес | + | ===='''Append'''==== |
+ | Аналогично как и '''Default''', только в catchup-source указывается относительный адрес | ||
#EXTINF: 0 catchup="append" catchup-source="?start=${start}" | #EXTINF: 0 catchup="append" catchup-source="?start=${start}" | ||
<nowiki>http://example.com/stream1.m3u8</nowiki> | <nowiki>http://example.com/stream1.m3u8</nowiki> | ||
В приведенном примере приложение обратится за текущей трансляцией по ссылке <nowiki>http://example.com/stream1.m3u8</nowiki>, а за телепрограммой с началом 4 апреля 2017 г. в 15:30 - по ссылке <nowiki>http://example.com/stream1.m3u8?start=1491395400</nowiki> | В приведенном примере приложение обратится за текущей трансляцией по ссылке <nowiki>http://example.com/stream1.m3u8</nowiki>, а за телепрограммой с началом 4 апреля 2017 г. в 15:30 - по ссылке <nowiki>http://example.com/stream1.m3u8?start=1491395400</nowiki> | ||
− | '''Shift | + | ===='''Shift'''==== |
+ | Архивные телепрограммы запрашиваются через добавление параметров '''utc''' и '''lutc''' к ссылке текущей трансляции (либо к ссылке в catchup-source), где utc - время начала запрашиваемой трансляции, lutc - текущее время: | ||
#EXTINF: 0 catchup="shift", Disney Channel | #EXTINF: 0 catchup="shift", Disney Channel | ||
<nowiki>http://example.com/stream1.m3u8</nowiki> | <nowiki>http://example.com/stream1.m3u8</nowiki> | ||
В этом случае для запроса архивной трансляции будет сформирована ссылка примерно такого вида: <nowiki>http://example.com/stream1.m3u8?utc=1491395400&lutc=1491808183</nowiki> | В этом случае для запроса архивной трансляции будет сформирована ссылка примерно такого вида: <nowiki>http://example.com/stream1.m3u8?utc=1491395400&lutc=1491808183</nowiki> | ||
− | < | + | |
+ | ====Flussonic==== | ||
+ | Использует API Flussonic для доступа к архивным телепрограммам. Данный формат архива не подразумевает использование атрибута catchup-source, поскольку используется метод преобразования ссылки текущего стрима регулярным выражения "<nowiki>http://example.com/stream1.m3u8</nowiki>".replace(/([^\?]*\/)([^\?]*?)(\.|\?|$)(.*)/,"$1$2-"+$start_timestamp+"-10800$3$4"); | ||
+ | |||
+ | Ниже все 4 записи канала эквивалентны друг другу | ||
+ | #EXTINF: 0 catchup="flussonic", Disney Channel | ||
+ | <nowiki>http://example.com/stream1.m3u8</nowiki> | ||
+ | #EXTINF: 0 catchup="fs", Disney Channel | ||
+ | <nowiki>http://example.com/stream1.m3u8</nowiki> | ||
+ | #EXTINF: 0 catchup-type="flussonic", Disney Channel | ||
+ | <nowiki>http://example.com/stream1.m3u8</nowiki> | ||
+ | #EXTINF: 0 catchup-type="flussonic-hls", Disney Channel | ||
+ | <nowiki>http://example.com/stream1.m3u8</nowiki> |
Текущая версия на 13:57, 9 августа 2023
Содержание
Подключение архива к 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
Flussonic[править]
Использует API Flussonic для доступа к архивным телепрограммам. Данный формат архива не подразумевает использование атрибута catchup-source, поскольку используется метод преобразования ссылки текущего стрима регулярным выражения "http://example.com/stream1.m3u8".replace(/([^\?]*\/)([^\?]*?)(\.|\?|$)(.*)/,"$1$2-"+$start_timestamp+"-10800$3$4");
Ниже все 4 записи канала эквивалентны друг другу
#EXTINF: 0 catchup="flussonic", Disney Channel http://example.com/stream1.m3u8 #EXTINF: 0 catchup="fs", Disney Channel http://example.com/stream1.m3u8 #EXTINF: 0 catchup-type="flussonic", Disney Channel http://example.com/stream1.m3u8 #EXTINF: 0 catchup-type="flussonic-hls", Disney Channel http://example.com/stream1.m3u8