API — различия между версиями
TVclub (обсуждение | вклад) (→[auth] Авторизация) |
TVclub (обсуждение | вклад) (→Формат полученных данных) |
||
| Строка 174: | Строка 174: | ||
<account> | <account> | ||
<info> | <info> | ||
| + | <id><USER_ID></id> | ||
<login><USER_LOGIN></login> | <login><USER_LOGIN></login> | ||
<mail><USER_EMAIL></mail> | <mail><USER_EMAIL></mail> | ||
<name><USER_NAME></name> | <name><USER_NAME></name> | ||
| + | <balance><USER_BALANCE></balance> | ||
</info> | </info> | ||
<options> | <options> | ||
| Строка 211: | Строка 213: | ||
"account": { | "account": { | ||
"info": { | "info": { | ||
| + | "id": <USER_ID>, | ||
"login": <USER_LOGIN>, | "login": <USER_LOGIN>, | ||
"mail": <USER_EMAIL>, | "mail": <USER_EMAIL>, | ||
| − | "name": <USER_NAME> | + | "name": <USER_NAME>, |
| + | "balance": <USER_BALANCE>, | ||
}, | }, | ||
"options": { | "options": { | ||
Версия 01:04, 24 июля 2017
Содержание
- 1 Изменения
- 2 Описание
- 3 Требования
- 4 Договоренности
- 5 Общие обозначения
- 6 Постраничный вывод
- 7 Логотипы каналов
- 8 Методы
- 8.1 [auth] Авторизация
- 8.2 [account] Аккаунт
- 8.3 [logout] Закрытие сессии
- 8.4 [groups] Список ТВ категорий
- 8.5 [channels] Список каналов в группе
- 8.6 [servers] Список доступных серверов
- 8.7 [live] Получение ссылки на прямую трансляцию
- 8.8 [rec] Получение ссылки на запись
- 8.9 [epg] Работа с телепрограммой
- 8.10 [settings] Текущие настройки
- 8.11 [set] Изменение текущих настроек
- 8.12 [favorites] Избранное
- 8.13 [set_favorites] Работа со списком избранного
- 8.14 [news] Новости сервиса
- 8.15 [error_codes] Коды ошибок
Изменения
01.05.2017
- В метод set_favorites добавлен параметр set. В качестве аргумента могут выступать:
- a) Список ID каналов через запятую для установки нового списка избранного состоящего из указанных каналов в указанном порядке.
- b) 0 - для полной очистки списка избранного.
- a) Список ID каналов через запятую для установки нового списка избранного состоящего из указанных каналов в указанном порядке.
21.03.2017
- В методе channels параметр gid может быть равным 100 (gid=100) для вывода списка избранного как группы.
20.02.2017
- В метод channels добавлен параметр filter_cname - фильтр по названию канала.
- В метод epg -> channels -> epg добавлены значения:
- recorded - указатель наличия архива передачи.
- live - 1 если передача идет на текущий момент, отсутствует если иначе.
Описание
В данной статье описывается возможное взаимодействие между клиентом и сервером API сервиса TVclub.us. Данное API проходит стадию тестирования, может изменяться и дополняться без предварительного уведомления. По всем вопросам, просьбам и предложениям пишите на почту support@tvclub.us.
При использовании данного API, сервис TVClub.us оставляет за собой право размещения ссылки и/или архива файлов (плагинов, приложений, виджетов и прочего ПО) использующих данное API с указанием разработчика.
Требования
- Поддержка HTTP 1.0
- Поддержка HTTP redirect (301,302)
- Поддержка XML или JSON форматов данных
- Поддержка видео-кодека H.264, аудио-кодека AAC, контейнеров mpeg-ts и mp4
Договоренности
- Все временные метки только в формате Unixtime
- Boolean значение имеет следующее обозначение: положительное - 1, отрицательное - 0»
- Кодировка UTF8.
Общие обозначения
- <FORMAT_TYPE> - формат возврата ответа от сервера. Доступны формат XML и JSON.
- <API_VERSION> - Версия API. Текущая версия 0.8
- <SERVERTIME> - Текущее время на сервере.
- <TOKEN_ID> - Уникальный ключ token полученный в результате авторизации.
- <TOKEN_EXPIRE> - время до которого ключ token будет актуален.
Постраничный вывод
Возврат некоторых ответов от сервера может иметь постраничный вывод. При этом действуют общие правила манипуляцией вывода с помощью следующих параметров:
- limit - лимит количества записей для одной выборки для опорной единицы. Например - количество каналов метода epg. Значение может быть от 1 до 200.
- start - номер элемента опорной единицы с которого производится выборка. Параметр не учитывается, если сипользуется параметр page.
- page - номер страницы для постраничного вывода.
Пример запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/<API_METHOD>?hash=<HASH>&limit=14&page=3
Формат полученных данных
<response> <info> <limit><ITEMS_LIMIT></limit> <count><ITEMS_COUNT></count> <pages><ITEMS_PAGES></pages> <page><ITEMS_CURRENT_PAGE></page> </info> <API_METHOD> ... </API_METHOD> <session> <token><TOKEN_ID></token> <expire><TOKEN_EXPIRE></expire> <now><SERVERTIME></now> </session> </response> |
{
"info": {
"limit": <ITEMS_LIMIT>,
"count": <ITEMS_COUNT>,
"pages": <ITEMS_PAGES>,
"page": <ITEMS_CURRENT_PAGE>
},
<API_METHOD>: {
...
},
"session": {
"token": <TOKEN_ID>,
"expire": <TOKEN_EXPIRE>,
"now": <SERVERTIME>
}
}
|
- info - информация о постраничном выводе
- ITEMS_LIMIT - общее количество записей
- ITEMS_COUNT - количество единиц на текущей странице
- ITEMS_PAGES - общее количество страниц
- ITEMS_CURRENT_PAGE - номер текущей страницы
Логотипы каналов
Доступны несколько размеров и форматов логотипов.
Получить иконку для канала с ID = CH_ID и в формате LOGO_FORMAT можно с помощью ссылки
http://tvclub.us/logo/<LOGO_FORMAT>/<CH_ID>.png
Доступные форматы:
- original - 490x280 без рамки
- 490_280_1 - 490x280 с рамкой
- 36_36_0 - 36x36 без рамки
- 36_36_1 - 36x36 с рамкой
- 48_48_0 - 48x48 без рамки
- 48_48_1 - 48x48 с рамкой
- 72_72_0 - 72x72 без рамки
- 72_72_1 - 72x72 с рамкой
- 90_50_0 - 90x50 без рамки
- 90_50_1 - 90x50 с рамкой
- 96_96_0 - 96x96 без рамки
- 96_96_1 - 96x96 с рамкой
- 200_115_0 - 200x115 без рамки
- 200_115_1 - 200x115 с рамкой
- 300_170_0 - 300x170 без рамки
- 300_170_1 - 300x170 с рамкой
Методы
[auth] Авторизация
Внимание!
06.01.2017 были внесены изменения в алгоритм авторизации. Token теперь всегда равен MD5(<USER_LOGIN> + MD5(<USER_PASSWORD>)).
Таким образом в этапе авторизации теперь нет необходимости и этот шаг можно пропустить.
Описание метода
(ДО 06.01.2017!!!) Самым первым запросом на сервер API всегда должен быть запрос на авторизацию клиента. В случае успеха, сервер вернет информацию о аккаунте клиента и информации о созданной сессии в которой содержится уникальный ключ - token, для доступа к остальным методам API. Без этого ключа вызов других методов API невозможен.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/auth?hash=<HASH>
HASH - это MD5-хеш полученный в результате конкатенации логина пользователя и MD5-хеша пароля пользователя - MD5(<USER_LOGIN> + MD5(<USER_PASSWORD>))
Примеры запроса
PHP
$data=file_get_contents('http://api.iptv.so/0.8/xml/auth?hash='.MD5($login.MD5($password)));
Формат полученных данных
<response>
<account>
<info>
<id><USER_ID></id>
<login><USER_LOGIN></login>
<mail><USER_EMAIL></mail>
<name><USER_NAME></name>
<balance><USER_BALANCE></balance>
</info>
<options>
<OPTION_NAME>1|0</OPTION_NAME>
...
</options>
<services>
<item>
<id><SERVICE_ID></id>
<expire><SERVICE_EXPIRE></expire>
<name><SERVICE_NAME></name>
<type><SERVICE_TYPE></type>
</item>
...
</services>
<settings>
<server_id><SERVER_ID></server_id>
<server_name><SERVER_NAME></server_name>
<tz_name><TZ_NAME></tz_name>
<tz_gmt><TZ_GMT></tz_gmt>
</settings>
</account>
<session>
<token><TOKEN_ID></token>
<expire><TOKEN_EXPIRE></expire>
<now><SERVERTIME></now>
</session>
</response>
|
{
"account": {
"info": {
"id": <USER_ID>,
"login": <USER_LOGIN>,
"mail": <USER_EMAIL>,
"name": <USER_NAME>,
"balance": <USER_BALANCE>,
},
"options": {
<OPTION_NAME>: 1|0,
...
},
"services": [
{
"id": <SERVICE_ID>,
"expire": <SERVICE_EXPIRE>,
"name": <SERVICE_NAME>,
"type": <SERVICE_TYPE>
},
...
],
"settings": {
"server_id": <SERVER_ID>,
"server_name": <SERVER_NAME>,
"tz_name": <TZ_NAME>,
"tz_gmt": <TZ_GMT>
}
},
"session": {
"token": <TOKEN_ID>,
"expire": <TOKEN_EXPIRE>,
"now": <SERVERTIME>
}
}
|
Описание полученных данных
account - содержит в себе
- info - информация о аккаунте клиента
- USER_LOGIN - логин клиента
- USER_EMAIL - e-mail клиента
- USER_NAME - имя клиента
- options - список доступных
- OPTION_NAME - имя опции, может принимать значение 1 - доступно или 0 - недоступно для клиента.
- services - список доступных для клиента сервисов, может содержать несколько вложенных элементов item удовлетворяющих следующему описанию:
- SERVICE_ID - уникальный ID сервиса
- SERVICE_EXPIRE - срок истечения подписки на сервис
- SERVICE_NAME - имя сервиса
- SERVICE_TYPE - тип сервиса [пакет каналов, опция, плейлист]
- settings - текущие настройки клиента
- SERVER_ID - ID сервера вещания
- SERVER_NAME - отображаемое имя сервера вещания
- TZ_NAME - имя временной зоны
- TZ_GMT - смещение временной зоны относительно Гринвича
- info - информация о аккаунте клиента
session - описание текущей сессии
- TOKEN_ID - ключ доступа который используется для вызова всех остальных методов API
- TOKEN_EXPIRE - время до которого действителен текущий ключ доступа. При каждом успешном запросе срок жизни ключа продлевается до 24-х часов с текущей даты.
- SERVERTIME - текущее время на сервере
[account] Аккаунт
Описание метода
Возвращает ту же информацию, что и метод auth. Может использоваться для получения текущей информации об аккаунте без повторной авторизации.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/account?token=<TOKEN_ID>
[logout] Закрытие сессии
Описание метода
Метод уничтожает текущую сессию и все данные хранящиеся в ней.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/logout?token=<TOKEN_ID>
Формат полученных данных
<response>
<session>
<destroyed>1</destroyed>
<now><SERVERTIME></now>
</session>
</response>
|
{
"session": {
"destroyed": 1,
"now": <SERVERTIME>
}
}
|
[groups] Список ТВ категорий
Описание метода
Возвращает полный список доступных для клиента ТВ категорий.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/groups?token=<TOKEN_ID>
Формат полученных данных
<response>
<groups>
<item>
<name_ru><GROUP_ID></name_ru>
<name_ru><GROUP_NAME_RU></name_ru>
<name_en><GROUP_NAME_EN></name_en>
<count><GROUP_CHANNELS_COUNT></count>
</item>
...
</groups>
<session>
<token><TOKEN_ID></token>
<expire><TOKEN_EXPIRE></expire>
<now><SERVERTIME></now>
</session>
</response>
|
{
"groups": [
{
"id": <GROUP_ID>,
"name_ru": <GROUP_NAME_RU>,
"name_en": <GROUP_NAME_EN>,
"count": <GROUP_CHANNELS_COUNT>
},
...
],
"session": {
"token": <TOKEN_ID>,
"expire": <TOKEN_EXPIRE>,
"now": <SERVERTIME>
}
}
|
Описание полученных данных
groups - содержит в себе
- GROUP_ID - ID группы
- GROUP_NAME_RU - Имя группы на русском языке
- GROUP_NAME_EN - Имя группы на английском языке
- GROUP_CHANNELS_COUNT - Количество каналов доступных для клиента в этой группе
[channels] Список каналов в группе
Описание метода
Возвращает постраничный список доступных для клиента каналов в определенной категории.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/channels?token=<TOKEN_ID>&gid=<GROUP_ID>&sort=1&limit=20&page=1
- Обязательные параметры:
- gid - ID группы каналов. gid=100 для вывода избранного как группы каналов.
- Необязательные параметры:
- sort - способ сортировки. Доступные значения: 1 - сортировка по умолчанию, 2 - по ID канала, 3 - по имени канала.
- filter_cname - фильтр по названию канала.
Формат полученных данных
<response>
<channels>
<item>
<info>
<id><CH_ID></id>
<name><CH_NAME></name>
<groups><CH_GROUPS></groups>
<protected><CH_PROTECTED_FLAG></protected>
<records><CH_REC_HOURS></records>
<favorite><CH_IS_FAVORITE></favorite>
</info>
<epg>
<text><CH_PROG_TEXT></text>
<start><CH_PROG_START></start>
<end><CH_PROG_END></end>
<description><CH_PROG_DESC></description>
</epg>
</item>
...
</channels>
<session>
<token><TOKEN_ID></token>
<expire><TOKEN_EXPIRE></expire>
<now><SERVERTIME></now>
</session>
</response>
|
{
"channels": [
{
"info": {
"id": <CH_ID>,
"name": <CH_NAME>,
"groups": <CH_GROUPS>,
"protected": <CH_PROTECTED_FLAG>,
"records": <CH_REC_HOURS>,
"favorite": <CH_IS_FAVORITE>,
},
"epg": [
"text": <CH_PROG_TEXT>,
"start": <CH_PROG_START>,
"end": <CH_PROG_END>,
"description": <CH_PROG_DESC>
]
},
...
],
"session": {
"token": <TOKEN_ID>,
"expire": <TOKEN_EXPIRE>,
"now": <SERVERTIME>
}
}
|
Описание полученных данных
channels - содержит массив данных
- info - общая информация о канале
- CH_ID - ID канала
- CH_NAME - имя канала
- CH_GROUPS - ID категорий канала перечисленных через запятую
- CH_PROTECTED_FLAG - указывает закрыт ли канал кодом доступа, значение 1 или 0.
- CH_REC_HOURS - наличие архива на канале в часах, 0 - архив отсутствует
- CH_IS_FAVORITE - наличие канала в избранном, значение 1 или 0.
- epg - информация о текущей программе передач. Пустой элемент, если телепрограмма не доступна.
- CH_PROG_TEXT - название текущей передачи
- CH_PROG_START - время начала передачи
- CH_PROG_END - время окончания передачи
- CH_PROG_DESC - описание передачи. Отсутствует, если описание недоступно.
- info - общая информация о канале
[servers] Список доступных серверов
Описание метода
Получение списка доступных серверов
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/servers?token=<TOKEN_ID>
Формат полученных данных
<response>
<servers>
<item>
<id><SERVER_ID></id>
<name><SERVER_NAME></name>
<load><SERVER_LOAD></load>
<power><SERVER_POWER></power>
</item>
...
</servers>
<session>
<token><TOKEN_ID></token>
<expire><TOKEN_EXPIRE></expire>
<now><SERVERTIME></now>
</session>
</response>
|
{
"settings": {
"servers": [
{
"id": <SERVER_ID>,
"name": <SERVER_NAME>,
"load": <SERVER_LOAD>,
"power": <SERVER_POWER>,
},
...
]
},
"session": {
"token": <TOKEN_ID>,
"expire": <TOKEN_EXPIRE>,
"now": <SERVERTIME>
}
}
|
Описание полученных данных
servers - содержит:
- SERVER_ID - ID сервера
- SERVER_NAME - отображаемое имя сервера
- SERVER_LOAD - нагрузка на сервер в процентах
- SERVER_POWER - мощность сервера
[live] Получение ссылки на прямую трансляцию
Описание метода
Метод возвращает краткую информацию по каналу и ссылку на поток его прямой трансляции.
- Ссылка на поток должна быть использована в течении 5 минут
- Ссылка на поток привязана к IP клиента полученного в результате его запроса на сервер API.
- Ссылка на поток привязана к серверу вещания для которого она была получена.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/live?token=<TOKEN_ID>&cid=<CH_ID>&protected=<CODE>
- Обязательные параметры:
- cid - ID телеканала.
- Необязательные параметры:
- protected - код родительского контроля, высылается в активационном письме. По умолчанию равен 0000 (четыре ноля).
Формат полученных данных
<response>
<live>
<channel>
<id><CH_ID></id>
<name><CH_NAME></name>
<protected><CH_PROTECTED_FLAG></protected>
<records><CH_REC_HOURS></records>
</channel>
<url><LIVE_URL></url>
</live>
<session>
<token><TOKEN_ID></token>
<expire><TOKEN_EXPIRE></expire>
<now><SERVERTIME></now>
</session>
</response>
|
{
"live": {
"channel": {
"id": <CH_ID>,
"name": <CH_NAME>,
"protected": <CH_PROTECTED_FLAG>,
"records": <CH_REC_HOURS>
},
"url": <LIVE_URL>
},
"session": {
"token": <TOKEN_ID>,
"expire": <TOKEN_EXPIRE>,
"now": <SERVERTIME>
}
}
|
Описание полученных данных
live - содержит:
- channel - общая информация о канале
- CH_ID - ID канала
- CH_NAME - имя канала
- CH_PROTECTED_FLAG - указывает закрыт ли канал кодом доступа, значение 1 или 0.
- CH_REC_HOURS - наличие архива на канале в часах, 0 - архив отсутствует
- url
- <LIVE_URL> - прямая ссылка на прямую трансляцию
- channel - общая информация о канале
[rec] Получение ссылки на запись
Описание метода
Метод возвращает краткую информацию по каналу, информацию о текущей программе передач на указанную дату и ссылку на архивную запись.
- Ссылка на поток должна быть использована в течении 5 минут
- Ссылка на поток привязана к IP клиента полученного в результате его запроса на сервер API.
- Ссылка на поток привязана к серверу вещания для которого она была получена.
- Запись начинается с времени указанного в параметре time.
- Параметр time может использоваться как способ перемотки.
- Длинна записи = <CH_PROG_END> - <CH_PROG_START>.
- Начало записи = <REC_START_TIME>
- Конец записи = <CH_PROG_END>
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/rec?token=<TOKEN_ID>&cid=<CH_ID>&time=<REC_START_TIME>&protected=<CODE>
- Обязательные параметры:
- cid - ID телеканала.
- time - Время с которого начинается запись.
- Необязательные параметры:
- protected - код родительского контроля для закрытых каналов, высылается в активационном письме. По умолчанию равен 0000 (четыре ноля).
Формат полученных данных
<response>
<rec>
<channel>
<id><CH_ID></id>
<name><CH_NAME></name>
<protected><CH_PROTECTED_FLAG></protected>
<title><CH_PROG_TEXT></title>
<start><CH_PROG_START></start>
<end><CH_PROG_END></end>
<records><CH_REC_HOURS></records>
</channel>
<url><REC_URL></url>
</rec>
<session>
<token><TOKEN_ID></token>
<expire><TOKEN_EXPIRE></expire>
<now><SERVERTIME></now>
</session>
</response>
|
{
"rec": {
"channel": {
"id": <CH_ID>,
"name": <CH_NAME>,
"protected": <CH_PROTECTED_FLAG>,
"title": <CH_PROG_TEXT>,
"start": <CH_PROG_START>,
"end": <CH_PROG_END>,
"records": <CH_REC_HOURS>
},
"url": <REC_URL>
},
"session": {
"token": <TOKEN_ID>,
"expire": <TOKEN_EXPIRE>,
"now": <SERVERTIME>
}
}
|
Описание полученных данных
rec - содержит:
- channel - общая информация о канале
- CH_ID - ID канала
- CH_NAME - имя канала
- CH_PROTECTED_FLAG - указывает закрыт ли канал кодом доступа, значение 1 или 0.
- CH_PROG_TEXT - название текущей передачи
- CH_PROG_START - время начала передачи
- CH_PROG_END - время окончания передачи
- CH_REC_HOURS - наличие архива на канале в часах, 0 - архив отсутствует
- url
- <REC_URL> - прямая ссылка архивную запись
- channel - общая информация о канале
[epg] Работа с телепрограммой
Описание метода
Возвращает постраничный список телеканалов с телепрограммой в зависимости от указанных параметров.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/epg?token=<TOKEN_ID>&gid=<GROUP_ID>&sort=1&limit=20&page=1
- Обязательные параметры:
Обязательных параметров нет, по умолчанию возвращает постраничный список всех телеканалов имеющих телепрограмму с лимитом в 20 каналов начиная с первой страницы.
- Необязательные параметры
- sort - способ сортировки. Доступные значения: 1 - сортировка по умолчанию, 2 - по ID канала, 3 - по имени канала.
- desc_limit - лимит на количество символов в описании к телепередачам. 0 - описания выводится не будут. По умолчанию выводится полное описание при его наличии.
- time - время начала программ передач. Используется в паре с параметром period. Если period не указан, то параметр time игнорируется, возвращается текущая передача для каждого канала.
- period - получаем телепрограмму с начала времени time на количество часов указанных в этом параметре. Если параметр time не указан, временем начала считается начало текущих суток.
- или
- c_to - взаимоисключающий с time и period параметр. Указывает на необходимое количество передач начиная с текущей. Значение от 1 до 20.
- channels - список каналов для которых необходимо получить телепередачу, через запятую.
- или
- gid - ID категории каналов для которых необходимо получить телепередачу. Взаимоисключающий с channels параметр.
- channels - список каналов для которых необходимо получить телепередачу, через запятую.
Примеры запросов
Получить текущую и три следующих телепередачи для каналов с ID 1 и ID 2
http://api.iptv.so/0.8/json/epg?token=<TOKEN_ID>&channels=1,2&c_to=3
Получить телепередачу для канала с ID 1 на 16 сентября 2016 года
http://api.iptv.so/0.8/json/epg?token=<TOKEN_ID>&channels=1&time=1473984000&period=24
Получить текущую программу передач для каналов в группе ID=1 со второй страницы по 12 каналов на страницу c описанием телепередач не более 200-т символов и отсортировать каналы по названию
http://api.iptv.so/0.8/json/epg?token=<TOKEN_ID>&gid=1&period=0&limit=12&page=2&desc_limit=200&sort=3
Формат полученных данных
<response>
<info>
<limit><ITEMS_LIMIT></limit>
<count><ITEMS_COUNT></count>
<pages><ITEMS_PAGES></pages>
<page><ITEMS_CURRENT_PAGE></page>
</info>
<epg>
<channels>
<item>
<id><CH_ID></id>
<name><CH_NAME></name>
<epg>
<item>
<text><CH_PROG_TEXT></text>
<start><CH_PROG_START></start>
<end><CH_PROG_END></end>
<description><CH_PROG_DESC></description>
<recorded>1|0</recorded>
<live>1</live>
</item>
...
</epg>
</item>
...
</channels>
</epg>
<session>
<token><TOKEN_ID></token>
<expire><TOKEN_EXPIRE></expire>
<now><SERVERTIME></now>
</session>
</response>
|
{
"info": {
"limit": <ITEMS_LIMIT>,
"count": <ITEMS_COUNT>,
"pages": <ITEMS_PAGES>,
"page": <ITEMS_CURRENT_PAGE>
},
"epg": {
"channels": [
{
"id": <CH_ID>,
"name": <CH_NAME>,
"epg": [
{
"text": <CH_PROG_TEXT>,
"start": <CH_PROG_START>,
"end": <CH_PROG_END>,
"description": <CH_PROG_DESC>,
"recorded": 1|0,
"live": 1
}
...
]
},
...
]
},
"session": {
"token": <TOKEN_ID>,
"expire": <TOKEN_EXPIRE>,
"now": <SERVERTIME>
}
}
|
[settings] Текущие настройки
Описание метода
Получение списка текущих настроек клиента
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/settings?token=<TOKEN_ID>
Формат полученных данных
<response>
<settings>
<current>
<server>
<id><SERVER_ID></id>
<name><SERVER_NAME></name>
<load><SERVER_LOAD></load>
<power><SERVER_POWER></power>
</server>
<timezone>
<id><TZ_NAME></id>
<gmt><TZ_GMT></gmt>
<country_code><TZ_CC></country_code>
</timezone>
...
</current>
<lists>
<servers>
<item>
<id><SERVER_ID></id>
<load><SERVER_LOAD></load>
<power><SERVER_POWER></power>
</item>
...
</servers>
<timezones>
<item>
<id><TZ_NAME></id>
<gmt><TZ_GMT></gmt>
<country_code><TZ_CC></country_code>
</item>
...
</timezones>
</lists>
</settings>
<session>
<token><TOKEN_ID></token>
<expire><TOKEN_EXPIRE></expire>
<now><SERVERTIME></now>
</session>
</response>
|
{
"settings": {
"current": {
"server": {
"id": <SERVER_ID>,
"name": <SERVER_NAME>,
"load": <SERVER_LOAD>,
"power": <SERVER_POWER>,
},
"timezone": {
"id": <TZ_NAME>,
"gmt": <TZ_GMT>,
"country_code": <TZ_CC>
}
...
},
"lists": {
"servers": [
{
"id": <SERVER_ID>,
"name": <SERVER_NAME>,
"load": <SERVER_LOAD>,
"power": <SERVER_POWER>,
},
...
],
"timezones": [
{
"id": <TZ_NAME>,
"gmt": <TZ_GMT>,
"country_code": <TZ_CC>
},
...
]
}
},
"session": {
"token": <TOKEN_ID>,
"expire": <TOKEN_EXPIRE>,
"now": <SERVERTIME>
}
}
|
Описание полученных данных
settings - содержит:
- current - список текущих настроек пользователя
- server - текущий сервер
- SERVER_ID - ID сервера
- SERVER_NAME - отображаемое имя сервера
- SERVER_LOAD - нагрузка на сервер в процентах
- SERVER_POWER - мощность сервера
- timezone - текущий часовой пояс
- TZ_NAME - имя временной зоны
- TZ_GMT - смещение временной зоны относительно Гринвича
- TZ_CC - двухбуквенный код страны для часового пояса
- server - текущий сервер
- list - списки возможных доступных значений
- servers - список доступных серверов
- timezones - список доступных временных зон
- current - список текущих настроек пользователя
[set] Изменение текущих настроек
Описание метода
Изменение текущих настроек клиента
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/set?token=<TOKEN_ID>&timezone=<TZ_NAME>&server=<SERVER_ID>&new_code=<NEW_CODE>&old_code=<OLD_CODE>
Пример запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/set?token=<TOKEN_ID>&timezone=Europe/Dublin&server=1&new_code=1111&old_code=0000
Возможные параметры:
- timezone - имя временной зоны
- server - ID сервера вещания
- new_code - новый код доступа, должен содержать 4 цифры. Используется в паре с параметром old_code
- old_code - текущий код доступа (код родительского контроля)
Формат полученных данных
<response>
<settings>
<updated>1</updated>
<current>
<timezone>
<id><TZ_NAME></id>
<gmt><TZ_GMT></gmt>
<country_code><TZ_CC></country_code>
</timezone>
<server>
<id><SERVER_ID></id>
<name><SERVER_NAME></name>
<load><SERVER_LOAD></load>
<power><SERVER_POWER></power>
</server>
<code>
<updated>1|0</updated>
</code>
</current>
</settings>
<session>
<token><TOKEN_ID></token>
<expire><TOKEN_EXPIRE></expire>
<now><SERVERTIME></now>
</session>
</response>
|
{
"settings": {
"updated": 1|0,
"current": {
"timezone": {
"id": <TZ_NAME>,
"gmt": <TZ_GMT>,
"country_code": <TZ_CC>
},
"server": {
"id": <SERVER_ID>,
"name": <SERVER_NAME>
"load": <SERVER_LOAD>
"power": <SERVER_POWER>
},
"code": {
"updated": 1|0
}
}
},
"session": {
"token": <TOKEN_ID>,
"expire": <TOKEN_EXPIRE>,
"now": <SERVERTIME>
}
}
|
Описание полученных данных
settings - содержит:
- updated- 1 в случае успеха изменения настроек или 0
- current - список измененных настроек пользователя
- server - текущий сервер
- SERVER_ID - ID сервера
- SERVER_NAME - отображаемое имя сервера
- SERVER_LOAD - нагрузка на сервер в процентах
- SERVER_POWER - мощность сервера в условных единицах
- timezone - текущий часовой пояс
- TZ_NAME - имя временной зоны
- TZ_GMT - смещение временной зоны относительно Гринвича
- TZ_CC - двухбуквенный код страны для часового пояса
- server - текущий сервер
- code - код безопасности
- updated - 1 в случае успеха или 0
[favorites] Избранное
Описание метода
Возвращает массив доступных для клиента ID избранных каналов.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/favorites?token=<TOKEN_ID>
Формат полученных данных
<response> <favorites> <item><CH_ID></item> <item><CH_ID></item> ... <item><CH_ID></item> </favorites> <session> <token><TOKEN_ID></token> <expire><TOKEN_EXPIRE></expire> <now><SERVERTIME></now> </session> </response> |
{
"favorites": [
<CH_ID>,
<CH_ID>,
...
<CH_ID>
],
"session": {
"token": <TOKEN_ID>,
"expire": <TOKEN_EXPIRE>,
"now": <SERVERTIME>
}
}
|
Описание полученных данных
favorites - содержит:
- CH_ID - ID канала
[set_favorites] Работа со списком избранного
Описание метода
Возвращает массив доступных для клиента ID избранных каналов.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/set_favorites?token=<TOKEN_ID>&cid=<CH_ID>&pos=<CH_FAV_POS>&show_current
или
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/set_favorites?token=<TOKEN_ID>&set=<CH_ID>,<CH_ID>,...<CH_ID>&show_current
- Обязательные параметры:
- cid - ID канала.
- Необязательные параметры:
- set - список ID каналов через запятую для установки нового списка избранного из указаных каналов в указанном порядке или 0 для полной очистки списка избранного.
- pos - позиция канала в списке избранного. Отсчет начинается от 1. Если параметр не указан или равен 0, то cid удаляется из списка избранного клиента. Может принимать следующие значения:
- [0-9]+ - позиция в которую нужно переместить\вставить канал в списке;
- 0 или del - удалить канал из списка;
- first - переместить\вставить канал в начало списка;
- last - переместить\вставить канал в конец списка;
- show_current - показать список избранного после изменений
Примечание: set и cid (+pos) являются взаимоисключающими параметрами. Если указан set, то параметры cid и pos будут проигнорированы
Формат полученных данных
<response> <favorites> <updated>1|0</updated> <current> <item><CH_ID></item> <item><CH_ID></item> ... <item><CH_ID></item> </current> </favorites> <session> <token><TOKEN_ID></token> <expire><TOKEN_EXPIRE></expire> <now><SERVERTIME></now> </session> </response> |
{
"favorites": {
"updated": 1|0,
"current": [
<CH_ID>,
<CH_ID>,
...
<CH_ID>
]
},
"session": {
"token": <TOKEN_ID>,
"expire": <TOKEN_EXPIRE>,
"now": <SERVERTIME>
}
}
|
Описание полученных данных
favorites - содержит:
- CH_ID - ID канала
[news] Новости сервиса
Описание метода
Возвращает последние 10 новостей сервиса.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/news?token=<TOKEN_ID>&type=plain
- Необязательные параметры:
- type - тип отображения содержимого. По умолчанию возвращает контент в виде html. Доступные значения: plain - отображение контента в виде текста.
- id - NEWS_ID (ID новости). Отображение одной новости с указанным ID.
Формат полученных данных
<response> <news> <item> <id><NEWS_ID></id> <date><NEWS_DATE></date> <title><NEWS_TITLE></title> <text><NEWS_TEXT></text> </item> ... </news> <session> <token><TOKEN_ID></token> <expire><TOKEN_EXPIRE></expire> <now><SERVERTIME></now> </session> </response> |
{
"news": [
{
"id": <NEWS_ID>,
"date": <NEWS_DATE>,
"title": <NEWS_TITLE>,
"text": <NEWS_TEXT>
},
...
],
"session": {
"token": <TOKEN_ID>,
"expire": <TOKEN_EXPIRE>,
"now": <SERVERTIME>
}
}
|
- NEWS_ID - уникальный ID новости
- NEWS_DATE - дата создания новости
- NEWS_TITLE - название новости
- NEWS_TEXT - текст новости
[error_codes] Коды ошибок
Описание метода
Возвращает все доступные коды ошибок. Авторизация и token не требуются.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/error_codes
Формат полученных данных
<response> <error_codes> <item> <code><ERROR_CODE_ID></code> <msg><ERROR_CODE_MSG></msg> </item> ... </error_codes> <session> <token><TOKEN_ID></token> <expire><TOKEN_EXPIRE></expire> <now><SERVERTIME></now> </session> </response> |
{
"error_codes": [
{
"code": <ERROR_CODE_ID>,
"msg": <ERROR_CODE_MSG>
},
...
],
"session": {
"token": <TOKEN_ID>,
"expire": <TOKEN_EXPIRE>,
"now": <SERVERTIME>
}
}
|
- ERROR_CODE_ID - уникальный номер ошибки
- ERROR_CODE_MSG - текст ошибки