http://forkplayer.tv/w/api.php?action=feedcontributions&user=Tony5576&feedformat=atomБраузер Fork - Wiki - Вклад участника [ru]2024-03-29T08:55:16ZВклад участникаMediaWiki 1.31.1http://forkplayer.tv/w/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B0%D1%80%D1%85%D0%B8%D0%B2%D0%B0&diff=1000Подключение архива2020-11-22T20:05:03Z<p>Tony5576: </p>
<hr />
<div>[[Файл:[[Медиа:Пример.jpg]]]]====Подключение архива к ForkPlayer====<br />
[[Для]] того, чтобы подключить к ForkPlayer ваш архив телепрограмм, в плейлисте необходимо указать следующие атрибуты:<br />
<br />
*'''catchup''' - определяет тип используемого архива (см. Поддерживаемые форматы).<br />
*'''catchup-source''' - определяет ссылку api, которую приложение использует для получения архивных телепрограмм. Данный атрибут не является обязательным, его следует использовать только в том случае, если ссылку получения архивной телепрограммы невозможно получить из основной ссылки live-потока.<br />
*'''catchup-days''' - определяет длину архива в днях. Данный атрибут не является обязательным, значение по умолчанию - 3 дня.<br />
<br />
Вы можете указать эти атрибуты при директиве '''#EXTM3U''', в этом случае атрибуты будут применены ко всем элементам плейлиста:<br />
#EXTM3U catchup="default" catchup-days="5"<br />
Либо указать эти атрибуты для конкретных каналов при директиве '''#EXTINF''':<br />
#EXTINF: 0 catchup="default" catchup-days="5", Disney Channel<br />
Кроме того, можно не указывать эти атрибуты в плейлисте, а передать их в качестве параметра в ссылке на плейлист, после решетки. В этом случае атрибуты также будут применены ко всему плейлисту:<br />
<nowiki>http://example.com/playlist.m3u#catchup=default&catchup-days=5</nowiki><br />
----<br />
<br />
====Переменные шаблона====<br />
Для создания шаблона обращения к API архива используются переменные, вместо которых приложение подставляет динамические значения:<br />
<br />
*'''${start}''' - время начала архивного потока в формате UNIX Time Stamp<br />
*'''${timestamp}''' - текущее время в формате UNIX Time Stamp<br />
*'''${offset}''' - смещение времени начала архивного потока относительно текущего времени в секундах<br />
<br />
----<br />
<br />
===Поддерживаемые форматы===<br />
<br />
===='''Default'''====<br />
Для создания запроса к API архива используется только шаблон, созданный на основе преобразования url-основного потока, либо из атрибута catchup-source:<br />
#EXTINF: 0 catchup="default", Disney Channel<br />
<nowiki>http://example.com/stream1_${offset}.m3u8</nowiki><br />
Приведенный пример указывает приложению, что для получения текущей трансляции и архивной используется один и тот же шаблон с указанием смещения. Т.о. текущую трансляцию приложение будет запрашивать по ссылке <nowiki>http://example.com/stream1_0.m3u8</nowiki>, а трансляцию, с началом 10 минут назад - по ссылке <nowiki>http://example.com/stream1_600.m3u8</nowiki>.<br />
<br />
Если ссылки для текущей и архивных трансляций имеют принципиально разную структуру, вы можете воспользоваться атрибутом '''catchup-source''':<br />
#EXTINF: 0 catchup="default" catchup-source="<nowiki>http://example.com/archive/?start=${start}</nowiki>"<br />
<nowiki>http://example.com/stream1.m3u8</nowiki><br />
В приведенном примере приложение обратится за текущей трансляцией по ссылке <nowiki>http://example.com/stream1.m3u8</nowiki>, а за телепрограммой с началом 4 апреля 2017 г. в 15:30 - по ссылке <nowiki>http://example.com/archive/?start=1491395400</nowiki><br />
<br />
===='''Append'''====<br />
Аналогично как и '''Default''', только в catchup-source указывается относительный адрес<br />
#EXTINF: 0 catchup="append" catchup-source="?start=${start}"<br />
<nowiki>http://example.com/stream1.m3u8</nowiki><br />
В приведенном примере приложение обратится за текущей трансляцией по ссылке <nowiki>http://example.com/stream1.m3u8</nowiki>, а за телепрограммой с началом 4 апреля 2017 г. в 15:30 - по ссылке <nowiki>http://example.com/stream1.m3u8?start=1491395400</nowiki><br />
<br />
===='''Shift'''====<br />
Архивные телепрограммы запрашиваются через добавление параметров '''utc''' и '''lutc''' к ссылке текущей трансляции (либо к ссылке в catchup-source), где utc - время начала запрашиваемой трансляции, lutc - текущее время:<br />
#EXTINF: 0 catchup="shift", Disney Channel<br />
<nowiki>http://example.com/stream1.m3u8</nowiki><br />
В этом случае для запроса архивной трансляции будет сформирована ссылка примерно такого вида: <nowiki>http://example.com/stream1.m3u8?utc=1491395400&lutc=1491808183</nowiki><br />
<br />
====Flussonic====<br />
Использует API Flussonic для доступа к архивным телепрограммам. Данный формат архива не подразумевает использование атрибута catchup-source, поскольку используется метод преобразования ссылки текущего стрима регулярным выражения "<nowiki>http://example.com/stream1.m3u8</nowiki>".replace(/([^\?]*\/)([^\?]*?)(\.|\?|$)(.*)/,"$1$2-"+$start_timestamp+"-10800$3$4");<br />
<br />
Ниже все 4 записи канала эквивалентны друг другу<br />
#EXTINF: 0 catchup="flussonic", Disney Channel<br />
<nowiki>http://example.com/stream1.m3u8</nowiki><br />
#EXTINF: 0 catchup="fs", Disney Channel<br />
<nowiki>http://example.com/stream1.m3u8</nowiki><br />
#EXTINF: 0 catchup-type="flussonic", Disney Channel<br />
<nowiki>http://example.com/stream1.m3u8</nowiki><br />
#EXTINF: 0 catchup-type="flussonic-hls", Disney Channel<br />
<nowiki>http://example.com/stream1.m3u8</nowiki></div>Tony5576