SAPI: различия между версиями
| Admin (обсуждение | вклад) | Admin (обсуждение | вклад)  | ||
| (не показано 45 промежуточных версий этого же участника) | |||
| Строка 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>''' - двухбуквенный код страны в нижнем регистре. | |||
| =Методы= | =Методы= | ||
| Строка 54: | Строка 63: | ||
| <style> | <style> | ||
| .pr { | .pr { | ||
| 	font-size: 12px; | |||
| 	line-height: 110%; | |||
| 	font-family: monospace; | |||
| 	color: #fff; | |||
| 	background: #000; | |||
| } | } | ||
| </style> | </style> | ||
| Строка 113: | Строка 124: | ||
| ===Формат ответа=== | ===Формат ответа=== | ||
| <pre> | <pre class="pr"> | ||
| <?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
| <response> | <response> | ||
| Строка 154: | Строка 165: | ||
|    ... |    ... | ||
| </groups> | </groups> | ||
| <servertime> | <servertime>[время сервера]</servertime> | ||
| </response> | </response> | ||
| </pre> | </pre> | ||
| == [channel_list2] Список категорий и каналов ==   | == [channel_list2] Список категорий и каналов ==   | ||
| Строка 166: | Строка 175: | ||
| ===Формат запроса=== | ===Формат запроса=== | ||
| <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 - Отображать категорию Избранное | ||
| |} | |} | ||
| ===Формат ответа=== | ===Формат ответа=== | ||
| <pre> | <pre class="pr"> | ||
| <?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
| <response> | <response> | ||
| Строка 222: | Строка 230: | ||
|       ... |       ... | ||
|      </channels> |      </channels> | ||
| <servertime> | <servertime>[время сервера]</servertime> | ||
| </response> | </response> | ||
| </pre> | </pre> | ||
| == [channel_list3] Список каналов в категории ==   | == [channel_list3] Список каналов в категории ==   | ||
| ===Описание метода=== | ===Описание метода=== | ||
| Возвращает список каналов в категории. | Возвращает список каналов в категории gid. | ||
| ===Формат запроса=== | ===Формат запроса=== | ||
| Строка 240: | Строка 246: | ||
| ! Параметр !! Обязательный !! Описание | ! Параметр !! Обязательный !! Описание | ||
| |- | |- | ||
| | '''gid''' || Да || ID категории каналов | | '''gid''' || Да || ID категории каналов. ID=100 для вывода избранного как группы | ||
| |} | |} | ||
| ===Формат ответа=== | ===Формат ответа=== | ||
| <pre> | <pre class="pr"> | ||
| <?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
| <response> | <response> | ||
| Строка 279: | Строка 284: | ||
|       ... |       ... | ||
|      </channels> |      </channels> | ||
| <servertime> | <servertime>[время сервера]</servertime> | ||
| </response> | </response> | ||
| </pre> | </pre> | ||
| == [get_channel] Информация о канале ==   | == [get_channel] Информация о канале ==   | ||
| Строка 301: | Строка 305: | ||
| ===Формат ответа=== | ===Формат ответа=== | ||
| <pre> | <pre class="pr"> | ||
| <?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
| <response> | <response> | ||
| Строка 317: | Строка 321: | ||
|       </epg> |       </epg> | ||
|      </channel> |      </channel> | ||
| <servertime> | <servertime>[время сервера]</servertime> | ||
| </response> | |||
| </pre> | |||
| == [epg] EPG для канала на день ==  | |||
| ===Описание метода=== | |||
| Возвращает EPG для канала cid на определенный день day | |||
| ===Формат запроса=== | |||
| <pre>http://sapi.ott.st/v2.4/xml/epg?cid=<channel_id>&day=<DDMMYY>&token=sessiontoken</pre> | |||
| {| class="wikitable" | |||
| |+ Параметры запроса | |||
| |- | |||
| ! Параметр !! Обязательный !! Описание | |||
| |- | |||
| | '''cid''' || Да || ID канала | |||
| |- | |||
| | '''day''' || Да || День в формате DDMMYY. Например 080122 для 8 января 2022 г. | |||
| |} | |||
| ===Формат ответа=== | |||
| <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> | |||
| == [epg2] EPG для канала на весь доступный период==  | |||
| ===Описание метода=== | |||
| Возвращает EPG для канала cid на весь доступный период. От -14 до +5 дней от текущей даты. | |||
| ===Формат запроса=== | |||
| <pre>http://sapi.ott.st/v2.4/xml/epg2?cid=<channel_id>&token=sessiontoken</pre> | |||
| {| class="wikitable" | |||
| |+ Параметры запроса | |||
| |- | |||
| ! Параметр !! Обязательный !! Описание | |||
| |- | |||
| | '''cid''' || Да || ID канала | |||
| |} | |||
| ===Формат ответа=== | |||
| <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> | |||
| == [epg4] EPG для канала на 24 часа ==  | |||
| ===Описание метода=== | |||
| Возвращает EPG для канала cid на 24 часа от указанного времени time. | |||
| ===Формат запроса=== | |||
| <pre>http://sapi.ott.st/v2.4/xml/epg4?cid=<channel_id>&time=<start_time>&token=sessiontoken</pre> | |||
| {| class="wikitable" | |||
| |+ Параметры запроса | |||
| |- | |||
| ! Параметр !! Обязательный !! Описание | |||
| |- | |||
| | '''cid''' || Да || ID канала | |||
| |- | |||
| | '''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. | |||
| |} | |||
| ===Формат ответа=== | |||
| <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> | |||
| == [get_url] Получение URL для прямой трансляции или записи ==  | |||
| ===Описание метода=== | |||
| Возвращает URL для канала cid на прямую трансляцию (live) или архивную запись (timeshift), есть указан параметр time. | |||
| ===Формат запроса=== | |||
| <pre>http://sapi.ott.st/v2.4/xml/get_url?cid=<channel_id>&time=<start_time>&aslive&token=sessiontoken</pre> | |||
| {| class="wikitable" | |||
| |+ Параметры запроса | |||
| |- | |||
| ! Параметр !! Обязательный !! Описание | |||
| |- | |||
| | '''cid''' || Да || ID канала | |||
| |- | |||
| | '''time''' || Нет || Если параметр указан, будет возвращен URL для архивной записи с временем начала записи time. Так же используется для перемотки. | |||
| |- | |||
| | '''aslive''' || Нет || Не принимает никакого значения. Если параметр указан, архивная запись будет идти не прерываясь, бесшовно, как эфир. Иначе URL генерируется для одной программы передач по EPG. | |||
| |- | |||
| | '''code''' || Нет || 4 цифры - код родительского контроля. Если канал защищен, а код не передан, либо передан неверный код, то в тэге <url> возвращается "protected" вместо ссылки на поток. | |||
| |} | |||
| ===Формат ответа=== | |||
| <pre class="pr"> | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <response> | |||
|   <url>[URL потока]</url> | |||
|   <servertime>[время сервера]</servertime> | |||
| </response> | |||
| </pre> | |||
| == [favorites] Список избранного ==  | |||
| ===Описание метода=== | |||
| Возвращает список ID избранных каналов. | |||
| ===Формат запроса=== | |||
| <pre>http://sapi.ott.st/v2.4/xml/favorites?token=sessiontoken</pre> | |||
| ===Формат ответа=== | |||
| <pre class="pr"> | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <response> | |||
|  <favorites> | |||
|    <item>2</item> | |||
|    <item>164</item> | |||
|    ... | |||
|  </favorites> | |||
|  <servertime>[время сервера]</servertime> | |||
| </response> | |||
| </pre> | |||
| == [favorites_set] Работа со списком избранного ==  | |||
| ===Описание метода=== | |||
| Добавляет или удаляет канал cid из списка избранного | |||
| ===Формат запроса=== | |||
| <pre>http://sapi.ott.st/v2.4/xml/favorites_set?cid=<channel_id>token=sessiontoken</pre> | |||
| {| class="wikitable" | |||
| |+ Параметры запроса | |||
| |- | |||
| ! Параметр !! Обязательный !! Описание | |||
| |- | |||
| | '''cid''' || Да || ID канала | |||
| |- | |||
| | '''pos''' || Нет || Позиция канала в списке избранного. Отсчет начинается от 1. Если параметр не указан или равен 0, то cid удаляется из списка избранного клиента. Может принимать следующие значения: | |||
| * [0-9]+ - позиция в которую нужно переместить\вставить канал в списке; | |||
| * 0 или del - удалить канал из списка; | |||
| * first - переместить\вставить канал в начало списка; | |||
| * last - переместить\вставить канал в конец списка; | |||
| |} | |||
| ===Формат ответа=== | |||
| <pre class="pr"> | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <response> | |||
|  <favorites> | |||
|    <channel_id>[id канала]</channel_id> | |||
|    <set>[1/0, 1-добавлен, 0-удален]</set> | |||
|   </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> | |||
| </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¶m2=value&token=<token>
| <api_version> | Версия API. Текущая версия 2.4 | 
| <type> | Формат ответа API. Может принимать следующие параметры: 
 | 
| <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 удаляется из списка избранного клиента. Может принимать следующие значения: 
 | 
Формат ответа
<?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>