Подключение архива — различия между версиями

Материал из Браузер Fork - Wiki
Перейти к: навигация, поиск
(Новая страница: «==== Подключение архива к ForkPlayer ==== Для того, чтобы подключить к ForkPlayer ваш архив телепрогра…»)
(Метка: visualeditor)
 
 
(не показано 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.''' Для создания запроса к API архива используется только шаблон, созданный на основе преобразования url-основного потока, либо из атрибута catchup-source:
+
 
 +
===='''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.''' Архивные телепрограммы запрашиваются через добавление параметров '''utc''' и '''lutc''' к ссылке текущей трансляции (либо к ссылке в catchup-source), где utc - время начала запрашиваемой трансляции, lutc - текущее время:
+
===='''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>
<br />
+
 
 +
====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