SAPI: различия между версиями

Материал из OTV
 
(не показаны 23 промежуточные версии этого же участника)
Строка 37: Строка 37:
<pre>http://ott.st/logos/<channel_id>.png</pre>
<pre>http://ott.st/logos/<channel_id>.png</pre>
Где '''<channel_id>''' - ID канала.
Где '''<channel_id>''' - ID канала.
=Флаги стран=
Получить флаг страны можно по следующим URL:
<pre>http://ott.st/flags/<country_code>.svg - Формат SVG
http://ott.st/flags/21_15/<country_code>.png - Формат PNG, размер 21x15
http://ott.st/flags/42_30/<country_code>.png - Формат PNG, размер 42x30
http://ott.st/flags/63_45/<country_code>.png - Формат PNG, размер 63x45
</pre>
Где '''<country_code>''' - двухбуквенный код страны в нижнем регистре.


=Методы=
=Методы=
Строка 166: Строка 175:


===Формат запроса===
===Формат запроса===
<pre>httр://sapi.ott.st/v2.4/xml/channel_list2?token=sessiontoken</pre>
<pre>http://sapi.ott.st/v2.4/xml/channel_list2?token=sessiontoken</pre>
{| class="wikitable"
{| class="wikitable"
|+ Параметры запроса
|+ Параметры запроса
Строка 174: Строка 183:
| '''show_favorites''' || Нет || 1 - Отображать категорию Избранное
| '''show_favorites''' || Нет || 1 - Отображать категорию Избранное
|}
|}


===Формат ответа===
===Формат ответа===
Строка 229: Строка 237:


===Описание метода===
===Описание метода===
Возвращает список каналов в категории.
Возвращает список каналов в категории gid.


===Формат запроса===
===Формат запроса===
Строка 238: Строка 246:
! Параметр !! Обязательный !! Описание
! Параметр !! Обязательный !! Описание
|-
|-
| '''gid''' || Да || ID категории каналов
| '''gid''' || Да || ID категории каналов. ID=100 для вывода избранного как группы
|}
|}


===Формат ответа===
===Формат ответа===
Строка 418: Строка 425:
|-
|-
| '''time''' || Нет || Время начала программы передач в формате unixtime. Если параметр не указан, берется текущее время.
| '''time''' || Нет || Время начала программы передач в формате unixtime. Если параметр не указан, берется текущее время.
|}
===Формат ответа===
<pre class="pr">
<?xml version="1.0" encoding="utf-8"?>
<response>
  <epg>
  <item>
    <title>[название передачи]</title>
    <description>[описание передачи]</description>
    <start>[время начала передачи]</start>
    <end>[время окончания передачи]</end>
    <have_archive>[флаг наличия архива передачи 1/0]</have_archive>
  </item>
  <item>
    <title>Вечерний Unplugged</title>
    <description>
    Акустический проект "Вечерний Unplugged" станет крупнейшей концертной площадкой в стране на то время, пока мы все сидим дома и попасть на живой концерт невозможно. Гарик Сукачев, Баста, Валерий Сюткин, Uma2rman, Полина Гагарина, Евгений Маргулис, Дима Билан, Пелагея, Петр Налич и другие артисты порадуют зрителей Первого в самоизоляции.
    </description>
    <start>1641593100</start>
    <end>1641595800</end>
    <have_archive>1</have_archive>
  </item>
  ...
  <servertime>[время сервера]</servertime>
</response>
</pre>
== [epg5] EPG для канала на несколько передач ==
===Описание метода===
Возвращает EPG для канала cid на несколько передач начиная с текущей.
===Формат запроса===
<pre>http://sapi.ott.st/v2.4/xml/epg5?cid=<channel_id>&num=<number>&token=sessiontoken</pre>
{| class="wikitable"
|+ Параметры запроса
|-
! Параметр !! Обязательный !! Описание
|-
| '''cid''' || Да || ID канала
|-
| '''number''' || Нет || Число, количество выводимых программ начиная с текущей. По умолчанию 10.
|}
|}


Строка 459: Строка 509:
| '''cid''' || Да || ID канала
| '''cid''' || Да || ID канала
|-
|-
| '''time''' || Нет || Если параметр указан, будет возвращен URL для архивной записи с временем начала записи time.
| '''time''' || Нет || Если параметр указан, будет возвращен URL для архивной записи с временем начала записи time. Так же используется для перемотки.
|-
|-
| '''aslive''' || Нет || Не принимает никакого значения. Если параметр указан, архивная запись будет идти не прерываясь, бесшовно, как эфир. Иначе URL генерируется для одной программы передач по EPG.
| '''aslive''' || Нет || Не принимает никакого значения. Если параметр указан, архивная запись будет идти не прерываясь, бесшовно, как эфир. Иначе URL генерируется для одной программы передач по EPG.
|-
| '''code''' || Нет || 4 цифры - код родительского контроля. Если канал защищен, а код не передан, либо передан неверный код, то в тэге <url> возвращается "protected" вместо ссылки на поток.
|}
|}


Строка 472: Строка 524:
</response>
</response>
</pre>
</pre>


== [favorites] Список избранного ==  
== [favorites] Список избранного ==  
Строка 510: Строка 560:
|-
|-
| '''cid''' || Да || ID канала
| '''cid''' || Да || ID канала
|-
| '''pos''' || Нет || Позиция канала в списке избранного. Отсчет начинается от 1. Если параметр не указан или равен 0, то cid удаляется из списка избранного клиента. Может принимать следующие значения:
* [0-9]+ - позиция в которую нужно переместить\вставить канал в списке;
* 0 или del - удалить канал из списка;
* first - переместить\вставить канал в начало списка;
* last - переместить\вставить канал в конец списка;
|}
|}


Строка 520: Строка 576:
   <set>[1/0, 1-добавлен, 0-удален]</set>
   <set>[1/0, 1-добавлен, 0-удален]</set>
   </favorites>
   </favorites>
<servertime>[время сервера]</servertime>
</response>
</pre>
== [favorites_set2] Работа с группой каналов списка избранного ==
===Описание метода===
Добавляет или удаляет каналы из списка избранного. Список каналов и их позиций передается как пара ключ-значение - <channel_id>=<position>.
Возвращает измененный список избранного.
===Формат запроса===
<pre>http://sapi.ott.st/v2.4/xml/favorites_set2?<channel_id>=<position>&<channel_id>=<position>...&<channel_id>=<position>&token=sessiontoken</pre>
===Пример===
<pre>http://sapi.ott.st/v2.4/json/favorites_set2?510=7&5=0&1=2&token=5760d</pre>
В данном примере последовательно произведены следующие действия:<br>
1) Для channel_id 510 установлена 7-я позиция в списке.<br>
2) Удален из списка channel_id 5<br>
3) Для channel_id 1 установлена 2я позиция в списке.<br>
{| class="wikitable"
|+ Параметры запроса
|-
! Параметр !! Обязательный !! Описание
|-
| '''<channel_id>=<position>''' || Да || Множества пары чисел, где ключом является channel_id, а значением его новая позиция в списке избранного. Отсчет позиций начинается от 1. Если позиция равна 0, channel_id удаляется из списка избранного.
|}
===Формат ответа===
<pre class="pr">
<?xml version="1.0" encoding="utf-8"?>
<response>
<favorites>
  <list>[favorites_list]</list>
  </favorites>
<servertime>[время сервера]</servertime>
</response>
</pre>
== [settings] Текущие настройки ==
===Описание метода===
Возвращает текущие настройки и список возможных значений
===Формат запроса===
<pre>http://sapi.ott.st/v2.4/xml/settings?sessiontoken</pre>
===Формат ответа===
<pre class="pr">
<?xml version="1.0" encoding="utf-8"?>
<response>
<settings>
  <current>
    <server_id>1</server_id>
    <server_name>Server 1</server_name>
    <quality>1</quality>
    <timezone>Europe/Berlin</timezone>
    <audio_track>eng</audio_track>
  </current>
  <lists>
    <servers>
    <item>
      <id>1</id>
      <name>Server 1</name>
    </item>
    <item>
    <id>2</id>
    <name>Server 2</name>
    </item>
    ...
    </servers>
    <quality>
    <item>
      <id>1</id>
      <name>Original</name>
    </item>
    <item>
      <id>2</id>
      <name>Standart</name>
    </item>
    </quality>
    <timezones>
      <item>
        <id>Pacific/Midway</id>
        <gmt>-11:00</gmt>
      </item>
      <item>
        <id>[timezone_name]</id>
        <gmt>[GMT/UTC offset]</gmt>
      </item>
      ...
    </timezones>
    <audio_tracks>
      <item>
        <id>rus</id>
        <name>Русский</name>
        <flag>ru</flag>
      </item>
      <item>
        <id>[audio_track_code]</id>
        <name>[lang_name]</name>
        <flag>[country_code]</flag>
      </item>
      ...
    <audio_tracks>
  </lists>
</settings>
<servertime>[время сервера]</servertime>
</response>
</pre>
== [settings_set] Изменение настроек ==
===Описание метода===
Устанавливает текущие настройки и возвращает список успешно измененных значений
===Формат запроса===
<pre>http://sapi.ott.st/v2.4/xml/settings_set?server=<server_id>&timezone=<timezone>&token=sessiontoken</pre>
{| class="wikitable"
|+ Параметры запроса
|-
! Параметр !! Обязательный !! Описание
|-
| '''server''' || Нет || ID сервера из списка возможных значений в settings
|-
| '''timezone''' || Нет || Часовой пояс из списка возможных значений в settings
|-
| '''quality''' || Нет || Качество вещания. 1 - original, 2 - standart
|-
| '''old_code''' и '''new_code''' || Нет || Используются в паре для смены PIN-кода. '''old_code''' - текущий PIN-код. '''new_code''' - новый PIN-код состоящий их 4х цифр.
|-
| '''audio_track''' || Нет || Код приоритетной аудиодорожки. Принимает любое значение id из списка audio_tracks. Предназначено для хранения значения приоритетной языковой дорожки на сервере. Не переключает аудиодорожку в стриме.
|}
===Формат ответа===
<pre class="pr">
<?xml version="1.0" encoding="utf-8"?>
<response>
<settings>
  <item>
    <name>timezone</name>
    <value>Pacific/Midway</value>
  </item>
  <item>
    <name>server</name>
    <value>1</value>
  </item>
</settings>
<servertime>[время сервера]</servertime>
</response>
</pre>
== [group_list] Список категорий ==
===Описание метода===
Возвращает список доступных ТВ категорий
===Формат запроса===
<pre>http://sapi.ott.st/v2.4/xml/group_list?token=sessiontoken</pre>
===Формат ответа===
<pre class="pr">
<?xml version="1.0" encoding="utf-8"?>
<response>
<groups>
  <item>
    <id>100</id>
    <title>Favorites</title>
  </item>
  <item>
    <id>1</id>
    <title>Main</title>
  </item>
  ...
</groups>
<servertime>[время сервера]</servertime>
</response>
</pre>
== [server_list] Список серверов ==
===Описание метода===
Возвращает список доступных серверов вещания
===Формат запроса===
<pre>http://sapi.ott.st/v2.4/xml/server_list?token=sessiontoken</pre>
===Формат ответа===
<pre class="pr">
<?xml version="1.0" encoding="utf-8"?>
<response>
<servers>
  <item>
    <id>1</id>
    <name>Server 1</name>
  </item>
  <item>
    <id>2</id>
    <name>Server 2</name>
  </item>
  <servertime>[время сервера]</servertime>
  <servertime>[время сервера]</servertime>
</response>
</response>
</pre>
</pre>

Текущая версия на 15:59, 30 июня 2022

Описание

В данной статье описывается возможное взаимодействие между клиентом и сервером API.

Договоренности

  • Все временные метки только в формате Unixtime
  • Boolean значение имеет следующее обозначение: положительное - 1, отрицательное - 0»
  • Кодировка UTF8.

Все запросы к API формируются по специально сформированному URL и имеют следующий вид:

httр://sapi.ott.st/v<api_version>/<type>/<method>?param1=value&param2=value&token=<token>
Обозначения
<api_version> Версия API. Текущая версия 2.4
<type> Формат ответа API. Может принимать следующие параметры:
  • json - ответ в формате JSON
  • xml - ответ в формате XML
  • array - сериализованный массив
  • jsonp - Возврат пакета в формате json c callback функцией.
<method> Метод API, описания которых предоставлены ниже.
<token> Уникальный ключ авторизации. Всегда равен md5(strtolower($login) . md5($password)) (пример на PHP)


Пример запроса к API:

httр://sapi.ott.st/v2.4/json/get_url?cid=1&token=sessiontoken

Логотипы каналов

Получить логотип канала можно по следующему URL:

http://ott.st/logos/<channel_id>.png

Где <channel_id> - ID канала.

Флаги стран

Получить флаг страны можно по следующим URL:

http://ott.st/flags/<country_code>.svg - Формат SVG
http://ott.st/flags/21_15/<country_code>.png - Формат PNG, размер 21x15
http://ott.st/flags/42_30/<country_code>.png - Формат PNG, размер 42x30
http://ott.st/flags/63_45/<country_code>.png - Формат PNG, размер 63x45

Где <country_code> - двухбуквенный код страны в нижнем регистре.

Методы

[account] Аккаунт

Описание метода

Выводит информацию об аккаунте.

Формат запроса

httр://sapi.ott.st/v2.4/xml/account?token=sessiontoken

Формат ответа

<?xml version="1.0" encoding="utf-8"?>
<response>
 <account>
  <login>[логин]</login>
  <tz>[таймзона]</tz>
  <first_name>[имя]</first_name>
  <last_name>[фамилия]</last_name>
  <city>[имя]</city>
  <country>[имя]</country>
  <packages>
    <item>
      <id>[id слуги]</id>
      <type>[тип услуги]</type>
      <name>[название услуги]</name>
      <expire>[время окончания подписки]</expire>
    </item>
    <item>
      <id>2</id>
      <type>1</type>
      <name>Базовый</name>
      <expire>1673108501</expire>
    </item>
    <item>
      <id>3</id>
      <type>1</type>
      <name>Взрослый</name>
      <expire>1523115026</expire>
    </item>
    ...
  </packages>
 </account>
 <servertime>[время сервера]</servertime>
</response>

[channel_list] Список категорий и каналов

Описание метода

Возвращает список категорий и каналов в формате "категория -> каналы".

Формат запроса

httр://sapi.ott.st/v2.4/xml/channel_list?token=sessiontoken
Параметры запроса
Параметр Обязательный Описание
show_favorites Нет 1 - Отображать категорию Избранное


Формат ответа

<?xml version="1.0" encoding="utf-8"?>
<response>
  <groups>
    <item>
      <id>[идентификатор группы]</id>
      <name>[название группы]</name>
      <channels>
       <item>
         <id>[идентификатор канала]</id>
         <name>[Название канала]</name>
         <protected>[флаг защищенного видео 0/1, 1 - род. контроль]</protected>
         <timeshift>[кол-во часов архива, 0 - без архива]</timeshift>
         <favorite>[флаг наличия канала в избранном 0/1]</favorite>
         <epg>
           <title>[название текущей телепередачи]</title>
           <description>[описание телепередачи]</description>
           <start>[время начала передачи]</start>
           <end>[время окончания передачи]</end>
         </epg>
      </item>
      <item>
        <id>2</id>
        <name>Первый HD</name>
        <protected>0</protected>
        <timeshift>336</timeshift>
        <favorite>1</favorite>
        <epg>
         <title>Наедине со всеми</title>
         <description>
          Взгляд на судьбы людей через призму наиболее известных, серьезных и важных событий их жизни. Очень личный разговор Юлии Меньшовой с людьми, которые всем интересны.
         </description>
         <start>1641595800</start>
         <end>1641598500</end>
        </epg>
       </item>
     ...
    </channels>
  </item>
  ...
</groups>
<servertime>[время сервера]</servertime>
</response>

[channel_list2] Список категорий и каналов

Описание метода

Возвращает список категорий и каналов в формате "категории, каналы".

Формат запроса

http://sapi.ott.st/v2.4/xml/channel_list2?token=sessiontoken
Параметры запроса
Параметр Обязательный Описание
show_favorites Нет 1 - Отображать категорию Избранное

Формат ответа

<?xml version="1.0" encoding="utf-8"?>
<response>
  <groups>
    <item>
      <id>[идентификатор группы]</id>
      <name>[название группы]</name>
    </item>
    <item>
     <id>1</id>
     <name>Main</name>
    </item>
    ...
  </groups>
  <channels>
   <item>
     <id>[идентификатор канала]</id>
     <name>[Название канала]</name>
     <protected>[флаг защищенного видео 0/1, 1 - род. контроль]</protected>
     <timeshift>[кол-во часов архива, 0 - без архива]</timeshift>
     <favorite>[флаг наличия канала в избранном 0/1]</favorite>
     <epg>
       <title>[название текущей телепередачи]</title>
       <description>[описание телепередачи]</description>
       <start>[время начала передачи]</start>
       <end>[время окончания передачи]</end>
     </epg>
   </item>
   <item>
     <id>2</id>
     <name>Первый HD</name>
     <protected>0</protected>
     <timeshift>336</timeshift>
     <favorite>1</favorite>
     <epg>
       <title>Наедине со всеми</title>
       <description>
          Взгляд на судьбы людей через призму наиболее известных, серьезных и важных событий их жизни. Очень личный разговор Юлии Меньшовой с людьми, которые всем интересны.
       </description>
       <start>1641595800</start>
       <end>1641598500</end>
     </epg>
    </item>
     ...
    </channels>
<servertime>[время сервера]</servertime>
</response>

[channel_list3] Список каналов в категории

Описание метода

Возвращает список каналов в категории gid.

Формат запроса

httр://sapi.ott.st/v2.4/xml/channel_list3?gid=<group_id>&token=sessiontoken
Параметры запроса
Параметр Обязательный Описание
gid Да ID категории каналов. ID=100 для вывода избранного как группы

Формат ответа

<?xml version="1.0" encoding="utf-8"?>
<response>
  <channels>
   <item>
     <id>[идентификатор канала]</id>
     <name>[Название канала]</name>
     <protected>[флаг защищенного видео 0/1, 1 - род. контроль]</protected>
     <timeshift>[кол-во часов архива, 0 - без архива]</timeshift>
     <favorite>[флаг наличия канала в избранном 0/1]</favorite>
     <epg>
       <title>[название текущей телепередачи]</title>
       <description>[описание телепередачи]</description>
       <start>[время начала передачи]</start>
       <end>[время окончания передачи]</end>
     </epg>
   </item>
   <item>
     <id>2</id>
     <name>Первый HD</name>
     <protected>0</protected>
     <timeshift>336</timeshift>
     <favorite>1</favorite>
     <epg>
       <title>Наедине со всеми</title>
       <description>
          Взгляд на судьбы людей через призму наиболее известных, серьезных и важных событий их жизни. Очень личный разговор Юлии Меньшовой с людьми, которые всем интересны.
       </description>
       <start>1641595800</start>
       <end>1641598500</end>
     </epg>
    </item>
     ...
    </channels>
<servertime>[время сервера]</servertime>
</response>

[get_channel] Информация о канале

Описание метода

Возвращает информацию о канале.

Формат запроса

httр://sapi.ott.st/v2.4/xml/get_channel?сid=<channel_id>&token=sessiontoken
Параметры запроса
Параметр Обязательный Описание
cid Да ID канала


Формат ответа

<?xml version="1.0" encoding="utf-8"?>
<response>
  <channel>
     <id>[идентификатор канала]</id>
     <name>[Название канала]</name>
     <protected>[флаг защищенного видео 0/1, 1 - род. контроль]</protected>
     <timeshift>[кол-во часов архива, 0 - без архива]</timeshift>
     <favorite>[флаг наличия канала в избранном 0/1]</favorite>
     <epg>
       <title>[название текущей телепередачи]</title>
       <description>[описание телепередачи]</description>
       <start>[время начала передачи]</start>
       <end>[время окончания передачи]</end>
     </epg>
    </channel>
<servertime>[время сервера]</servertime>
</response>

[epg] EPG для канала на день

Описание метода

Возвращает EPG для канала cid на определенный день day

Формат запроса

http://sapi.ott.st/v2.4/xml/epg?cid=<channel_id>&day=<DDMMYY>&token=sessiontoken
Параметры запроса
Параметр Обязательный Описание
cid Да ID канала
day Да День в формате DDMMYY. Например 080122 для 8 января 2022 г.

Формат ответа

<?xml version="1.0" encoding="utf-8"?>
<response>
  <epg>
   <item>
    <title>[название передачи]</title>
    <description>[описание передачи]</description>
    <start>[время начала передачи]</start>
    <end>[время окончания передачи]</end>
    <have_archive>[флаг наличия архива передачи 1/0]</have_archive>
   </item>
   <item>
    <title>Вечерний Unplugged</title>
    <description>
     Акустический проект "Вечерний Unplugged" станет крупнейшей концертной площадкой в стране на то время, пока мы все сидим дома и попасть на живой концерт невозможно. Гарик Сукачев, Баста, Валерий Сюткин, Uma2rman, Полина Гагарина, Евгений Маргулис, Дима Билан, Пелагея, Петр Налич и другие артисты порадуют зрителей Первого в самоизоляции.
    </description>
    <start>1641593100</start>
    <end>1641595800</end>
    <have_archive>1</have_archive>
   </item>
   ...
  <servertime>[время сервера]</servertime>
</response>

[epg2] EPG для канала на весь доступный период

Описание метода

Возвращает EPG для канала cid на весь доступный период. От -14 до +5 дней от текущей даты.

Формат запроса

http://sapi.ott.st/v2.4/xml/epg2?cid=<channel_id>&token=sessiontoken
Параметры запроса
Параметр Обязательный Описание
cid Да ID канала

Формат ответа

<?xml version="1.0" encoding="utf-8"?>
<response>
  <epg>
   <item>
    <title>[название передачи]</title>
    <description>[описание передачи]</description>
    <start>[время начала передачи]</start>
    <end>[время окончания передачи]</end>
    <have_archive>[флаг наличия архива передачи 1/0]</have_archive>
   </item>
   <item>
    <title>Вечерний Unplugged</title>
    <description>
     Акустический проект "Вечерний Unplugged" станет крупнейшей концертной площадкой в стране на то время, пока мы все сидим дома и попасть на живой концерт невозможно. Гарик Сукачев, Баста, Валерий Сюткин, Uma2rman, Полина Гагарина, Евгений Маргулис, Дима Билан, Пелагея, Петр Налич и другие артисты порадуют зрителей Первого в самоизоляции.
    </description>
    <start>1641593100</start>
    <end>1641595800</end>
    <have_archive>1</have_archive>
   </item>
   ...
  <servertime>[время сервера]</servertime>
</response>


[epg4] EPG для канала на 24 часа

Описание метода

Возвращает EPG для канала cid на 24 часа от указанного времени time.

Формат запроса

http://sapi.ott.st/v2.4/xml/epg4?cid=<channel_id>&time=<start_time>&token=sessiontoken
Параметры запроса
Параметр Обязательный Описание
cid Да ID канала
time Нет Время начала программы передач в формате unixtime. Если параметр не указан, берется текущее время.

Формат ответа

<?xml version="1.0" encoding="utf-8"?>
<response>
  <epg>
   <item>
    <title>[название передачи]</title>
    <description>[описание передачи]</description>
    <start>[время начала передачи]</start>
    <end>[время окончания передачи]</end>
    <have_archive>[флаг наличия архива передачи 1/0]</have_archive>
   </item>
   <item>
    <title>Вечерний Unplugged</title>
    <description>
     Акустический проект "Вечерний Unplugged" станет крупнейшей концертной площадкой в стране на то время, пока мы все сидим дома и попасть на живой концерт невозможно. Гарик Сукачев, Баста, Валерий Сюткин, Uma2rman, Полина Гагарина, Евгений Маргулис, Дима Билан, Пелагея, Петр Налич и другие артисты порадуют зрителей Первого в самоизоляции.
    </description>
    <start>1641593100</start>
    <end>1641595800</end>
    <have_archive>1</have_archive>
   </item>
   ...
  <servertime>[время сервера]</servertime>
</response>

[epg5] EPG для канала на несколько передач

Описание метода

Возвращает EPG для канала cid на несколько передач начиная с текущей.

Формат запроса

http://sapi.ott.st/v2.4/xml/epg5?cid=<channel_id>&num=<number>&token=sessiontoken
Параметры запроса
Параметр Обязательный Описание
cid Да ID канала
number Нет Число, количество выводимых программ начиная с текущей. По умолчанию 10.

Формат ответа

<?xml version="1.0" encoding="utf-8"?>
<response>
  <epg>
   <item>
    <title>[название передачи]</title>
    <description>[описание передачи]</description>
    <start>[время начала передачи]</start>
    <end>[время окончания передачи]</end>
    <have_archive>[флаг наличия архива передачи 1/0]</have_archive>
   </item>
   <item>
    <title>Вечерний Unplugged</title>
    <description>
     Акустический проект "Вечерний Unplugged" станет крупнейшей концертной площадкой в стране на то время, пока мы все сидим дома и попасть на живой концерт невозможно. Гарик Сукачев, Баста, Валерий Сюткин, Uma2rman, Полина Гагарина, Евгений Маргулис, Дима Билан, Пелагея, Петр Налич и другие артисты порадуют зрителей Первого в самоизоляции.
    </description>
    <start>1641593100</start>
    <end>1641595800</end>
    <have_archive>1</have_archive>
   </item>
   ...
  <servertime>[время сервера]</servertime>
</response>

[get_url] Получение URL для прямой трансляции или записи

Описание метода

Возвращает URL для канала cid на прямую трансляцию (live) или архивную запись (timeshift), есть указан параметр time.

Формат запроса

http://sapi.ott.st/v2.4/xml/get_url?cid=<channel_id>&time=<start_time>&aslive&token=sessiontoken
Параметры запроса
Параметр Обязательный Описание
cid Да ID канала
time Нет Если параметр указан, будет возвращен URL для архивной записи с временем начала записи time. Так же используется для перемотки.
aslive Нет Не принимает никакого значения. Если параметр указан, архивная запись будет идти не прерываясь, бесшовно, как эфир. Иначе URL генерируется для одной программы передач по EPG.
code Нет 4 цифры - код родительского контроля. Если канал защищен, а код не передан, либо передан неверный код, то в тэге <url> возвращается "protected" вместо ссылки на поток.

Формат ответа

<?xml version="1.0" encoding="utf-8"?>
<response>
  <url>[URL потока]</url>
  <servertime>[время сервера]</servertime>
</response>

[favorites] Список избранного

Описание метода

Возвращает список ID избранных каналов.

Формат запроса

http://sapi.ott.st/v2.4/xml/favorites?token=sessiontoken

Формат ответа

<?xml version="1.0" encoding="utf-8"?>
<response>
 <favorites>
   <item>2</item>
   <item>164</item>
   ...
 </favorites>
 <servertime>[время сервера]</servertime>
</response>

[favorites_set] Работа со списком избранного

Описание метода

Добавляет или удаляет канал cid из списка избранного

Формат запроса

http://sapi.ott.st/v2.4/xml/favorites_set?cid=<channel_id>token=sessiontoken
Параметры запроса
Параметр Обязательный Описание
cid Да ID канала
pos Нет Позиция канала в списке избранного. Отсчет начинается от 1. Если параметр не указан или равен 0, то cid удаляется из списка избранного клиента. Может принимать следующие значения:
  • [0-9]+ - позиция в которую нужно переместить\вставить канал в списке;
  • 0 или del - удалить канал из списка;
  • first - переместить\вставить канал в начало списка;
  • last - переместить\вставить канал в конец списка;

Формат ответа

<?xml version="1.0" encoding="utf-8"?>
<response>
 <favorites>
   <channel_id>[id канала]</channel_id>
   <set>[1/0, 1-добавлен, 0-удален]</set>
  </favorites>
 <servertime>[время сервера]</servertime>
</response>

[favorites_set2] Работа с группой каналов списка избранного

Описание метода

Добавляет или удаляет каналы из списка избранного. Список каналов и их позиций передается как пара ключ-значение - <channel_id>=<position>. Возвращает измененный список избранного.

Формат запроса

http://sapi.ott.st/v2.4/xml/favorites_set2?<channel_id>=<position>&<channel_id>=<position>...&<channel_id>=<position>&token=sessiontoken

Пример

http://sapi.ott.st/v2.4/json/favorites_set2?510=7&5=0&1=2&token=5760d

В данном примере последовательно произведены следующие действия:
1) Для channel_id 510 установлена 7-я позиция в списке.
2) Удален из списка channel_id 5
3) Для channel_id 1 установлена 2я позиция в списке.

Параметры запроса
Параметр Обязательный Описание
<channel_id>=<position> Да Множества пары чисел, где ключом является channel_id, а значением его новая позиция в списке избранного. Отсчет позиций начинается от 1. Если позиция равна 0, channel_id удаляется из списка избранного.

Формат ответа

<?xml version="1.0" encoding="utf-8"?>
<response>
 <favorites>
   <list>[favorites_list]</list>
  </favorites>
 <servertime>[время сервера]</servertime>
</response>

[settings] Текущие настройки

Описание метода

Возвращает текущие настройки и список возможных значений

Формат запроса

http://sapi.ott.st/v2.4/xml/settings?sessiontoken

Формат ответа

<?xml version="1.0" encoding="utf-8"?>
<response>
 <settings>
   <current>
    <server_id>1</server_id>
    <server_name>Server 1</server_name>
    <quality>1</quality>
    <timezone>Europe/Berlin</timezone>
    <audio_track>eng</audio_track>
   </current>
   <lists>
    <servers>
     <item>
      <id>1</id>
      <name>Server 1</name>
    </item>
    <item>
     <id>2</id>
     <name>Server 2</name>
    </item>
    ...
    </servers>
    <quality>
     <item>
      <id>1</id>
      <name>Original</name>
     </item>
     <item>
      <id>2</id>
      <name>Standart</name>
     </item>
    </quality>
    <timezones>
      <item>
        <id>Pacific/Midway</id>
        <gmt>-11:00</gmt>
      </item>
      <item>
        <id>[timezone_name]</id>
        <gmt>[GMT/UTC offset]</gmt>
      </item>
      ...
    </timezones>
    <audio_tracks>
      <item>
        <id>rus</id>
        <name>Русский</name>
        <flag>ru</flag>
      </item>
      <item>
        <id>[audio_track_code]</id>
        <name>[lang_name]</name>
        <flag>[country_code]</flag>
      </item>
      ...
    <audio_tracks>
   </lists>
 </settings>
 <servertime>[время сервера]</servertime>
</response>

[settings_set] Изменение настроек

Описание метода

Устанавливает текущие настройки и возвращает список успешно измененных значений

Формат запроса

http://sapi.ott.st/v2.4/xml/settings_set?server=<server_id>&timezone=<timezone>&token=sessiontoken
Параметры запроса
Параметр Обязательный Описание
server Нет ID сервера из списка возможных значений в settings
timezone Нет Часовой пояс из списка возможных значений в settings
quality Нет Качество вещания. 1 - original, 2 - standart
old_code и new_code Нет Используются в паре для смены PIN-кода. old_code - текущий PIN-код. new_code - новый PIN-код состоящий их 4х цифр.
audio_track Нет Код приоритетной аудиодорожки. Принимает любое значение id из списка audio_tracks. Предназначено для хранения значения приоритетной языковой дорожки на сервере. Не переключает аудиодорожку в стриме.

Формат ответа

<?xml version="1.0" encoding="utf-8"?>
<response>
 <settings>
  <item>
    <name>timezone</name>
    <value>Pacific/Midway</value>
  </item>
  <item>
    <name>server</name>
    <value>1</value>
  </item>
 </settings>
 <servertime>[время сервера]</servertime>
</response>

[group_list] Список категорий

Описание метода

Возвращает список доступных ТВ категорий

Формат запроса

http://sapi.ott.st/v2.4/xml/group_list?token=sessiontoken

Формат ответа

<?xml version="1.0" encoding="utf-8"?>
<response>
 <groups>
   <item>
     <id>100</id>
     <title>Favorites</title>
   </item>
   <item>
     <id>1</id>
     <title>Main</title>
   </item>
   ...
 </groups>
 <servertime>[время сервера]</servertime>
</response>


[server_list] Список серверов

Описание метода

Возвращает список доступных серверов вещания

Формат запроса

http://sapi.ott.st/v2.4/xml/server_list?token=sessiontoken

Формат ответа

<?xml version="1.0" encoding="utf-8"?>
<response>
 <servers>
   <item>
    <id>1</id>
    <name>Server 1</name>
   </item>
   <item>
    <id>2</id>
    <name>Server 2</name>
   </item>
 <servertime>[время сервера]</servertime>
</response>